Kirim
API ini menghasilkan kode verifikasi melalui platform EngageLab dan mengirimkannya sesuai strategi saluran yang diatur pada template.
Jika Anda ingin membuat kode verifikasi sendiri, gunakan EngageLab Custom OTP Send API.
Endpoint
POST https://otp.api.engagelab.cc/v1/messages
Autentikasi
Menggunakan HTTP Basic Authentication. Tambahkan Authorization pada Header HTTP:
Authorization: Basic ${base64_auth_string}
Algoritma pembuatan base64_auth_string: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
Parameter Permintaan
Objek permintaan dalam format JSON, pastikan header permintaan menyertakan Content-Type: application/json.
| Parameter | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| to | String | Wajib | Target, bisa nomor ponsel atau email, misal: +8613800138000, support@engagelab.com |
| template | Objek JSON | Wajib | Informasi template, termasuk sub-parameter di bawah ini |
| |_ id | String | Wajib | ID Template |
| |_ language | String | Opsional | Bahasa template, pilihan: default (Bahasa default) zh_CN (Mandarin Sederhana) zh_HK (Mandarin Tradisional) en (Inggris) ja (Jepang) th (Thailand) es (Spanyol) Jika tidak diisi, akan menggunakan "default". |
| |_ params | Objek JSON | Opsional | Nilai variabel kustom template. Jika Anda menambahkan variabel saat membuat template, masukkan nilainya di sini. Jika tidak diisi, key variabel akan dikirimkan apa adanya, misal: {{var}} |
Catatan tentang params
- Untuk template dengan field preset seperti from_id, jika param_vars tidak diisi, pesan akan menggunakan from_id yang diatur pada template.
- Jika param_vars diisi, misal
param_vars:{"from_id":"12345"}, maka saat pengiriman, from_id pada template akan diganti dengan 12345. - Untuk variabel kustom pada konten template, isi nilainya melalui param_vars, misal untuk template
Hi {{name}}, your verify code is {{code}}, gunakanparam_vars:{"name":"Bob"}.
Parameter Respons
Respons Berhasil
| Field | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| message_id | String | Wajib | ID pesan, identitas unik pesan |
| send_channel | String | Wajib | Saluran pengiriman saat ini, misal: whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Catatan: Nilai send_channel yang dikembalikan hanya saluran pada tahap saat ini, bukan saluran akhir ke pengguna. Misal, jika strategi template diatur fallback WhatsApp ke SMS, respons awal API akan menampilkan whatsapp, dan jika gagal, sistem akan mengirim ulang via SMS.
Respons Gagal
Kode status HTTP 4xx atau 5xx, body respons berisi field berikut:
| Field | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| code | int | Wajib | Kode error, lihat Kode Error untuk detailnya |
| message | String | Wajib | Rincian error |
{
"code": 5001,
"message": "sms send fail"
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan internal |
| 2001 | 401 | Autentikasi gagal, token salah 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, periksa format JSON |
| 3002 | 400 | Parameter permintaan salah, cek kembali kebutuhan |
| 3003 | 400 | Parameter permintaan salah, validasi bisnis gagal, cek field message untuk detail error |
| 3004 | 400 | Melebihi batas frekuensi, tidak dapat mengirim ulang ke template & user yang sama dalam masa berlaku OTP |
| 4001 | 400 | Resource tidak ditemukan, misal template tidak ada |
| 5001 | 400 | Pengiriman pesan verifikasi gagal, cek field message untuk detail error |










