Kirim Pesan Kustom
Jika Anda telah membuat konten template khusus di platform OTP, gunakan API ini untuk mengirimkan konten pesan kustom.
Endpoint API
POST https://otp.api.engagelab.cc/v1/custom-messages
Autentikasi
Menggunakan HTTP Basic Authentication untuk verifikasi. Tambahkan header Authorization pada permintaan HTTP:
Authorization: Basic ${base64_auth_string}
base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)
Format Permintaan
Header Permintaan
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"params": {
"code": "codevalue",
"var1":"value1"
}
}
}
Parameter Permintaan
Objek permintaan dalam format JSON, pastikan header permintaan menyertakan Content-Type: application/json.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| to | String/Array | Ya | Penerima tujuan, bisa nomor telepon (misal: +8613800138000) atau email (misal: support@engagelab.com). |
| template | Objek JSON | Ya | Informasi template. Sub-parameter dijelaskan di bawah ini. |
| |_ id | String | Ya | ID Template. |
| |_ params | Objek JSON | Optional | Parameter template. |
| _ |_ code | String | Opsional | Wajib diisi jika tipe template adalah kode verifikasi. |
| _ |_ var | String | Opsional | Nilai variabel template kustom. Jika variabel didefinisikan saat membuat template, masukkan nilainya di sini. Jika tidak diisi, key variabel akan dikirimkan apa adanya (misal: {{var1}}). |
Catatan tentang params:
- Untuk variabel preset template seperti {{brand_name}}, {{ttl}}, dan {{pwa_url}}, tidak perlu mengirimkan nilai—sistem akan otomatis menggantinya sesuai pengaturan template.
- Jika tipe template adalah kode verifikasi, variabel {{code}} wajib dikirimkan; jika tidak, akan terjadi error.
- Untuk variabel kustom yang Anda definisikan di konten template, masukkan nilainya melalui params. Misal, jika isi template: Hai {{name}}, kode verifikasi Anda adalah {{code}}, maka params:{"name":"Bob"} harus dikirimkan.
Contoh Permintaan
1. Mengirim kode verifikasi khusus:
{
"to": "+8618701235678",
"template":{
"id":"code-template",
"params": {
"code": "123456"
}
}
}
2. Mengirim notifikasi khusus:
{
"to": ["+8618701235678"],
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
3. Mengirim konten pemasaran khusus:
{
"to": ["+8618701235678"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
Parameter Respons
Respons Berhasil
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| message_id | String | Ya | ID pesan, sebagai identitas unik pesan. |
| send_channel | String | Ya | Channel yang digunakan untuk pengiriman. Nilai yang mungkin: whatsapp, sms, email, voice. |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Catatan: Nilai send_channel yang dikembalikan tidak menunjukkan channel akhir ke pengguna, hanya channel yang digunakan pada tahap saat ini. Misalnya, jika strategi template dikonfigurasi fallback ke SMS setelah WhatsApp gagal, API awalnya mengembalikan whatsapp; jika gagal, sistem otomatis beralih ke SMS.
Respons Gagal
Kode status http 4xx atau 5xx, body respons berisi field berikut:
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| code | int | Kode error. Lihat Kode Error untuk detailnya. | |
| message | String | Ya | Detail error. |
{
"code": 5001,
"message": "sms send fail"
}
| Kode Error | http code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan internal. |
| 2001 | 401 | Autentikasi gagal: token tidak valid atau tidak ada. |
| 2002 | 401 | Autentikasi gagal: token kedaluwarsa atau dinonaktifkan. |
| 2004 | 403 | Tidak memiliki izin untuk memanggil API ini. |
| 3001 | 400 | Format parameter permintaan tidak valid. Pastikan konten JSON sesuai format. |
| 3002 | 400 | Parameter permintaan tidak valid. Periksa apakah parameter sudah sesuai ketentuan. |
| 3003 | 400 | Validasi bisnis gagal. Lihat field message untuk detailnya. |
| 3004 | 400 | Melebihi batas pengiriman. Untuk template dan user yang sama, kode verifikasi tidak dapat dikirim ulang dalam masa berlaku. |
| 4001 | 400 | Resource tidak ditemukan (misal: template tidak ada). |
| 5001 | 400 | Pengiriman kode verifikasi gagal. Lihat field message untuk detailnya. |










