Pengiriman SMS API
Jika Anda ingin mengotomatisasi pengiriman SMS notifikasi dan pemasaran tanpa membuatnya melalui platform EngageLab, Anda dapat menggunakan API ini. Tentukan ID template SMS dan penerima yang dituju, maka sistem akan secara otomatis mengirimkan SMS berdasarkan isi template tersebut.
Konfigurasi Platform
Sebelum memanggil API, pastikan Anda telah menyelesaikan konfigurasi berikut di konsol SMS EngageLab:
Pengaturan Template SMS: Sebelum memanggil API, kunjungi Halaman Manajemen Template untuk menyesuaikan dan mengirimkan template SMS. Template hanya bisa digunakan setelah disetujui dan Anda memperoleh ID template.
Konfigurasi API Key: Buka Halaman API Key untuk membuat kunci autentikasi API Basic.
Proses Pemanggilan
Ikuti langkah berikut untuk memanggil API pengiriman SMS. Jika ada pertanyaan, silakan hubungi layanan pelanggan.
URL Pemanggilan
POST https://smsapi.engagelab.com/v1/messages
Autentikasi Pemanggilan
Gunakan HTTP Basic Authentication untuk verifikasi. Tambahkan Authorization pada HTTP Header:
Authorization: Basic ${base64_auth_string}
Algoritma pembuatan base64_auth_string: base64(dev_key:dev_secret)
Format Permintaan
Header Permintaan
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
{
"to": [
"923700056581"
],
"template": {
"id": "1233",
"params": {
"content": "Kode verifikasi: 039487. Kode ini akan kedaluwarsa dalam 5 menit. Anda sedang mencoba membuat akun Anda."
}
}
}
Parameter Permintaan
Objek permintaan menggunakan format JSON, pastikan header permintaan menyertakan Content-Type: application/json.
| Nama | Lokasi | Tipe | Wajib | Deskripsi | Catatan |
|---|---|---|---|---|---|
| Authorization | header | array[string] | Tidak | ||
| to | body | array[string] | Ya | Daftar ID Tujuan | Nomor ponsel tujuan |
| plan_name | body | string | Tidak | Nama Rencana | Opsional, default "-" jika tidak diisi |
| schedule_time | body | integer | Tidak | Waktu Terjadwal | Tidak wajib untuk pengiriman non-terjadwal, timestamp |
| template | body | object | Ya | ||
| id | body | string | Ya | ||
| params | body | object | Ya | ||
| custom_args | body | object | Tidak | Parameter Kustom |
Jika Anda memiliki variabel kustom saat membuat template, silakan isi nilainya di sini. Jika tidak diisi, kunci variabel akan dikirimkan apa adanya, misal {{var1}}.
Penjelasan untuk params
Untuk konten template dengan field variabel kustom, tetapkan nilainya melalui params. Misal, jika isi template: Hi {{name}}, selamat datang di EngageLab, maka params:{"name":"Bob"}.
Contoh Permintaan
1. Mengirim Konten Notifikasi Kustom:
{
"to": ["+8618701235678"],
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
2. Mengirim Konten Pemasaran Kustom:
{
"to": ["+8618701235678"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
Respons
Kode status HTTP adalah 200, dan body respons berisi field berikut:
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| plan_id | string | Wajib | ID Rencana |
| total_count | integer | Wajib | Jumlah target yang diterima |
| accepted_count | integer | Wajib | Jumlah target valid yang diterima |
| message_id | string | Opsional | Dikembalikan untuk pengiriman tunggal dengan ID pesan terkait |
Contoh Sukses (Satu Target)
{
"plan_id": "1972488990548348928",
"total_count": 1,
"accepted_count": 1,
"message_id": "1972488990804201472"
}
Contoh Sukses (Beberapa Target)
{
"plan_id": "1972484198153367552",
"total_count": 2,
"accepted_count": 2
}
Contoh Sukses (Tugas Terjadwal)
{
"plan_id": "1972492618659033088",
"total_count": 1,
"accepted_count": 1,
"schedule_info": {
"task_id": 1972492621368553472
}
}
Contoh Gagal
{
"plan_id": "1972490061974913024",
"total_count": 1,
"accepted_count": 1,
"message": "err xxxx",
"code": 1
}
Kesalahan Pengiriman
Kode status HTTP adalah 200, dan body respons berisi field berikut:
| Field | Tipe | Deskripsi |
|---|---|---|
| plan_id | string | Wajib |
| total_count | integer | Wajib |
| accepted_count | integer | Wajib |
| message | string | Wajib |
| code | integer | Wajib |
{
"plan_id": "string",
"total_count": 0,
"accepted_count": 0,
"message": "string",
"code": 0
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan Internal |
| 2001 | 401 | Autentikasi gagal, token salah |
| 2002 | 401 | Autentikasi gagal, token kedaluwarsa atau dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin untuk memanggil API ini |
| 3001 | 400 | Format parameter permintaan tidak valid, periksa apakah sesuai format JSON |
| 3002 | 400 | Parameter permintaan tidak valid, periksa apakah sudah sesuai ketentuan |
| 3003 | 400 | Parameter permintaan tidak valid, validasi bisnis gagal, lihat field message |
| 3004 | 400 | Melebihi batas frekuensi, tidak dapat mengirim template yang sama ke user yang sama dalam masa berlaku kode verifikasi |
| 4001 | 400 | Resource tidak ditemukan, misal menggunakan template yang tidak ada untuk pengiriman pesan |
| 5001 | 400 | Pengiriman pesan kode verifikasi gagal, lihat field message untuk detailnya |










