Logo Site EngageLab Mark Colored TransparentDokumen
Cari

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}
              
              Authorization: Basic ${base64_auth_string}

            
Tampilkan blok kode ini di jendela mengambang

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
              
              POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Tampilkan blok kode ini di jendela mengambang

Body Permintaan

{ "to": "+6591234567", "template": { "id": "test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "language": "default",
    "params": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

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

  1. Untuk field preset dalam template, seperti from_id, jika nilai field param_vars tidak diberikan, maka from_id preset dari template akan digunakan saat pesan dikirim.
  2. Jika nilai field param_vars diberikan, seperti param_vars:{"from_id":"12345"}, maka from_id dalam template akan diganti menjadi 12345 saat pesan dikirim.
  3. Pada saat yang sama, field variabel kustom dalam konten template yang dibuat saat pembuatan template juga ditetapkan melalui param_vars. Misalnya, jika konten template adalah Hi {{name}}, your verify code is {{code}}, maka parameter param_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" }
              
              {
  "message_id": "1725407449772531712",
  "send_channel": "sms"
}

            
Tampilkan blok kode ini di jendela mengambang

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" }
              
              {
  "code": 5001,
  "message": "sms send fail"
}

            
Tampilkan blok kode ini di jendela mengambang

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
Icon Solid Transparent White Qiyu
Hubungi Sales