Pengiriman OTP
API Pengiriman OTP ini menghasilkan kode verifikasi melalui platform EngageLab dan mengirimkannya sesuai strategi saluran yang ditentukan dalam template.
Jika Anda ingin membuat kode verifikasi sendiri alih-alih menggunakan platform EngageLab, Anda dapat memanggil API EngageLab OTP Custom Verification Code Delivery.
Endpoint
POST https://otp.api.engagelab.cc/v1/messages
Autentikasi
Gunakan HTTP Basic Authentication dan tambahkan Authorization ke header HTTP:
Authorization: Basic ${base64_auth_string}
Algoritme pembentukan base64_auth_string adalah: 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": "+6591234567",
"template": {
"id": "test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
Parameter Permintaan
Objek permintaan dinyatakan dalam format JSON, sehingga header permintaan harus menyertakan Content-Type: application/json.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| to | String | Required | Penerima target: nomor telepon atau alamat email, misalnya +6598765432 atau support@engagelab.com |
| template | JSON Object | Required | Informasi template. Lihat parameter bertingkat di bawah ini. |
| |_ id | String | Required | ID template |
| |_ language | String | Optional | Bahasa template. Bahasa berikut didukung: default: Bahasa default zh_CN: Mandarin Sederhana zh_HK: Mandarin Tradisional en: Inggris ja: Jepang th: Thailand es: Spanyol Jika tidak diberikan, nilai default adalah default (bahasa default). |
| |_ params | JSON Object | Optional | Nilai untuk kunci variabel template kustom. Jika Anda mendefinisikan variabel kustom saat membuat template, tetapkan nilainya di sini. Jika tidak diberikan, kunci variabel akan dikirim secara langsung, seperti {{var}}. |
Catatan tentang params
- Untuk field preset dalam template, seperti
from_id, jika nilai fieldparam_varstidak diberikan, makafrom_idpreset dari template akan digunakan saat pesan dikirim. - Jika nilai field
param_varsdiberikan, sepertiparam_vars:{"from_id":"12345"}, makafrom_iddalam template akan diganti menjadi12345saat pesan dikirim. - Pada saat yang sama, field variabel kustom dalam konten template yang dibuat saat pembuatan template juga ditetapkan melalui
param_vars. Misalnya, jika konten template adalahHi {{name}}, your verify code is {{code}}, maka parameterparam_vars:{"name":"Bob"}diperlukan.
Parameter Respons
Respons Berhasil
| Field | Type | Required | Description |
|---|---|---|---|
| message_id | String | Required | ID pesan yang mengidentifikasi sebuah pesan secara unik |
| send_channel | String | Required | Menunjukkan saluran pengiriman saat ini. Nilai yang mungkin adalah whatsapp, sms, email, atau voice. |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Perlu diperhatikan bahwa nilai send_channel yang dikembalikan tidak merepresentasikan saluran akhir yang digunakan untuk mengirim pesan kepada pengguna. Nilai tersebut hanya menunjukkan saluran yang sedang digunakan saat ini. Misalnya, jika strategi template dikonfigurasi sehingga pengiriman melalui saluran WhatsApp gagal lalu otomatis mencoba ulang melalui saluran SMS, respons API akan mengembalikan nilai whatsapp. Setelah jangka waktu tertentu, begitu kegagalan pengiriman terdeteksi, sistem akan mengirim pesan melalui saluran SMS.
Respons Gagal
Kode status HTTP adalah 4xx atau 5xx, dan body respons berisi field berikut:
| Field | Type | Required | Description |
|---|---|---|---|
| code | int | Required | Kode error. Untuk detail, lihat Kode Error |
| message | String | Required | Detail error |
{
"code": 5001,
"message": "sms send fail"
}
Kode Error
| Kode Error | Kode HTTP | Deskripsi |
|---|---|---|
| 1000 | 500 | Error internal |
| 2001 | 401 | Autentikasi gagal; token yang benar tidak diberikan |
| 2002 | 401 | Autentikasi gagal; token telah kedaluwarsa atau dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin untuk memanggil API ini |
| 3001 | 400 | Format parameter permintaan tidak valid. Harap periksa apakah konten JSON sesuai dengan format parameter yang diperlukan |
| 3002 | 400 | Parameter permintaan tidak valid. Harap periksa apakah parameter permintaan memenuhi persyaratan |
| 3003 | 400 | Parameter permintaan tidak valid. Validasi bisnis terkait gagal. Lihat deskripsi error pada field message untuk detail |
| 3004 | 400 | Batas frekuensi terlampaui. Untuk template yang sama dan pengguna target yang sama, pengiriman tidak dapat dilakukan lagi selama masa berlaku kode verifikasi |
| 4001 | 400 | Sumber daya terkait tidak ada. Misalnya, template yang tidak ada digunakan saat mengirim pesan template |
| 5001 | 400 | Pengiriman gagal (umum/lainnya) |
| 5011 | 400 | Format nomor telepon tidak valid |
| 5012 | 400 | Target tidak dapat dijangkau |
| 5013 | 400 | Nomor telah ditambahkan ke daftar hitam |
| 5014 | 400 | Konten tidak sesuai dengan spesifikasi |
| 5015 | 400 | Pesan dicegat/ditolak |
| 5016 | 400 | Error internal saat pengiriman |
| 5017 | 400 | Tidak memiliki izin untuk mengirim ke Tiongkok daratan |
| 5018 | 400 | Masalah pada telepon (dimatikan/layanan dihentikan) |
| 5019 | 400 | Pengguna telah berhenti berlangganan |
| 5020 | 400 | Nomor tidak terdaftar/nomor tidak valid |










