Pengiriman Kode OTP Kustom
Jika Anda ingin membuat kode verifikasi sendiri alih-alih menggunakan kode yang dibuat oleh platform EngageLab, Anda dapat memanggil API ini.
API ini secara khusus digunakan untuk mengirim kode verifikasi yang telah dibuat sebelumnya dan tidak membuat kode verifikasi secara otomatis. Setelah mengirim kode verifikasi, Anda tidak perlu memanggil API verifikasi untuk memvalidasinya.
Jika Anda ingin platform EngageLab membuat kode verifikasi, Anda dapat memanggil API Pengiriman Kode Verifikasi OTP EngageLab.
Endpoint
POST https://otp.api.engagelab.cc/v1/codes
Autentikasi
Gunakan Autentikasi Dasar HTTP dengan menambahkan Authorization ke header HTTP:
Authorization: Basic ${base64_auth_string}
Algoritme pembentukan base64_auth_string di atas adalah: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
{
"to": "+6591234567",
"code": "398210",
"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 | Type | Required | Description |
|---|---|---|---|
| to | String | Required | Target pengiriman: nomor telepon atau alamat email, misalnya +6598765432 atau support@engagelab.com |
| code | String | Required | Kode verifikasi kustom yang akan dikirim |
| template | JSON Object | Required | Informasi template. Lihat parameter tingkat kedua di bawah |
| |_ id | String | Required | ID template |
| |_ language | String | Optional | Bahasa template. Bahasa berikut didukung: default Bahasa default zh_CN Tionghoa Sederhana zh_HK Tionghoa Tradisional en Inggris ja Jepang th Thailand es Spanyol Jika tidak diberikan, nilai default adalah default (bahasa bawaan). |
| |_ params | JSON Object | Optional | Nilai untuk key variabel template kustom. Jika Anda mendefinisikan variabel kustom saat membuat template, tetapkan nilainya di sini. Jika tidak diberikan, key variabel akan dikirim secara langsung, seperti {{var}}. |
Deskripsi params
- Untuk field template preset seperti
from_id, jika nilai fieldparam_varstidak diberikan,from_idpreset dalam template akan digunakan saat pesan dikirim. - Jika nilai field
param_varsdiberikan, sepertiparam_vars:{"from_id":"12345"}, makafrom_idpada template akan diganti menjadi12345saat pesan dikirim. - Field variabel kustom dalam konten template yang dibuat saat pembuatan template juga diberi nilai melalui
param_vars. Sebagai contoh, jika konten template adalahHi {{name}}, your verify code is {{code}}, maka diperlukan parameterparam_vars:{"name":"Bob"}.
Parameter Respons
Respons Berhasil
| Field | Type | Required | Description |
|---|---|---|---|
| message_id | String | Required | ID pesan yang secara unik mengidentifikasi sebuah pesan |
| send_channel | String | Required | Menunjukkan saluran pengiriman saat ini. Nilai yang mungkin: whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
Harap diperhatikan bahwa nilai send_channel yang dikembalikan tidak mewakili saluran akhir yang digunakan untuk mengirimkan pesan kepada pengguna; nilai tersebut hanya mewakili saluran yang sedang digunakan saat ini. Sebagai contoh, jika strategi template dikonfigurasi sehingga pengiriman melalui saluran WhatsApp akan otomatis mencoba ulang melalui saluran SMS jika gagal, maka respons API akan mengembalikan nilai whatsapp. Setelah jangka waktu tertentu, jika kegagalan pengiriman terdeteksi, sistem akan mengirim 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 kesalahan. Untuk detail, lihat Kode Kesalahan |
| message | String | Required | Detail kesalahan |
{
"code": 5001,
"message": "sms send fail"
}
Kode Kesalahan
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Kesalahan 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 kesalahan 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 ditemukan, misalnya saat menggunakan template yang tidak ada untuk 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 masuk daftar hitam |
| 5014 | 400 | Konten tidak sesuai spesifikasi |
| 5015 | 400 | Pesan dicegat/ditolak |
| 5016 | 400 | Kesalahan internal saat pengiriman |
| 5017 | 400 | Tidak ada izin pengiriman untuk Tiongkok daratan |
| 5018 | 400 | Gangguan pada telepon (dimatikan/layanan ditangguhkan) |
| 5019 | 400 | Pengguna telah berhenti berlangganan |
| 5020 | 400 | Nomor tidak terdaftar/nomor tidak valid |










