Logo Site EngageLab Mark Colored TransparentDokumen
Cari

Pengiriman OTP

Endpoint ini membuat kode verifikasi melalui platform EngageLab, dan mengirimkannya sesuai strategi channel yang ditentukan dalam template.

Jika Anda ingin membuat kode verifikasi sendiri tanpa melalui platform EngageLab, Anda dapat memanggil endpoint Pengiriman OTP Kustom EngageLab.

Endpoint

POST https://otp.api.engagelab.cc/v1/messages

Autentikasi

Lihat Autentikasi untuk memahami cara melakukan autentikasi API.

Contoh request

Header request

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 request

{ "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 request

Objek request dinyatakan dalam format JSON, sehingga header request perlu menyertakan Content-Type: application/json.

Parameter Tipe Opsi Keterangan
to String Wajib Target pengiriman, nomor ponsel atau alamat email, +6598765432, support@engagelab.com
end_user_ip String Opsional Alamat IP pengguna akhir. Digunakan saat perlu membatasi batas permintaan dari alamat IP yang sama dalam dimensi waktu yang berbeda, mis.: 10.3.5.7
channel String Opsional Menentukan channel pengiriman pertama. Nilai: sms/voice/zalo/viber. Jika tidak dikirim, routing mengikuti send_channel_strategy template.
template JSON Object Wajib Informasi template, parameter tingkat kedua di dalamnya lihat di bawah
|_ id String Wajib ID template
|_ language String Opsional Bahasa template, mendukung beberapa bahasa berikut:
default bahasa default
zh_CN Mandarin Sederhana
zh_HK Mandarin Tradisional
en Inggris
ja Jepang
th Thai
es Spanyol
jika tidak diisi maka default adalah default (bahasa default)
|_ params JSON Object Opsional Nilai dari Key variabel template kustom
Jika Anda mendefinisikan variabel saat membuat template, isikan nilainya di sini; jika tidak diisi, maka akan dikirim langsung sebagai Key variabel, seperti {{var}}

Penjelasan tentang params

  1. Untuk field preset template seperti from_id, jika nilai field params tidak diteruskan, maka saat pengiriman pesan akan digunakan from_id preset template;
  2. Jika nilai field params diteruskan, seperti params:{"from_id":"12345"}, maka saat pengiriman pesan, from_id template akan diganti menjadi 12345;
  3. Selain itu, untuk field variabel kustom dalam konten template saat pembuatan template, nilainya juga diisi melalui params, misalnya konten template Hi {{name}}, your verify code is {{code}}, maka perlu mengisi parameter params:{"name":"Bob"}
  4. Variabel khusus channel Email: Untuk channel Email, mendukung penimpaan dinamis subjek email (subject), nama pengirim (from_name), email pengirim (from_mail), dan lainnya melalui params. Untuk penggunaan lanjutan yang lebih detail, lihat Buat Template - Penggunaan lanjutan variabel template Email.

Parameter respons

Respons sukses

Field Tipe Opsi Deskripsi
message_id String Wajib ID pesan, mengidentifikasi secara unik suatu pesan
send_channel String Wajib Menunjukkan channel pengiriman saat ini, nilainya whatsapp/sms/email/voice/zalo/viber
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
Tampilkan blok kode ini di jendela mengambang

Perhatikan, nilai**send_channel**yang dikembalikan tidak mewakili channel akhir yang sampai ke pengguna, melainkan hanya mewakili channel yang digunakan pada tahap saat ini; jika strategi template mengonfigurasi channel WhatsApp dan pengirimannya gagal lalu otomatis dikirim ulang melalui channel SMS, maka respons endpoint akan mengembalikan nilai whatsapp, dan setelah beberapa waktu ketika kegagalan terdeteksi, sistem akan menggunakan channel SMS untuk mengirim

Respons gagal

Status code HTTP adalah 4xx atau 5xx, body respons berisi field sebagai berikut:

Field Tipe Opsi Deskripsi
code int Wajib Kode error, lihat penjelasan kode error
message String Wajib Detail error
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
Tampilkan blok kode ini di jendela mengambang

Kode error

Tabel berikut hanya menjelaskan error yang dikembalikan API ini pada tahap autentikasi, validasi sebelum pengiriman, dan pengiriman sinkron. Kegagalan pengiriman asinkron setelah diterima penyedia tidak dikembalikan oleh API ini; dapatkan melalui kueri status pesan atau callback.

Pemanggil harus menggunakan code untuk menentukan jenis error. Gunakan message untuk menampilkan alasan spesifik atau untuk troubleshooting; jangan mengandalkan teks message yang tetap untuk logika bisnis.

Kode error http code Keterangan
1000 500 Error internal
2001 401 Autentikasi gagal, tidak menyertakan token yang benar
2002 401 Autentikasi gagal, token telah kedaluwarsa atau dinonaktifkan
2003 403 IP ini tidak diizinkan mengirim pesan.
2004 403 Tidak memiliki izin untuk memanggil API ini
3001 400 Format parameter request tidak valid, harap periksa apakah konten JSON sesuai dengan format parameter
3002 400 Parameter request salah, harap periksa apakah parameter request memenuhi persyaratan
3003 400 Parameter request salah, validasi bisnis terkait gagal, lihat detail pada deskripsi error di field message
3004 400 Melebihi batas frekuensi, untuk template dan target pengguna yang sama, tidak dapat mengirim ulang dalam masa berlaku kode verifikasi
3005 400 Saldo tersedia akun tidak mencukupi
3013 400 Template belum disetujui atau saat ini tidak tersedia
4001 400 Resource terkait tidak ada, seperti penggunaan template yang tidak ada saat mengirim pesan template
5001 400 Pengiriman gagal (umum/lainnya)
5011 400 Format nomor ponsel tidak valid
5012 400 Target tidak dapat dijangkau
5013 400 Nomor masuk daftar hitam (blacklist)
5014 400 Konten tidak sesuai ketentuan
5015 400 Pesan diblokir/ditolak
5016 400 Error internal pengiriman
5017 400 Tidak memiliki izin pengiriman ke wilayah Tiongkok
5018 400 Ponsel bermasalah (mati/nonaktif)
5019 400 Pengguna telah berhenti berlangganan
5020 400 Nomor tidak terdaftar/nomor kosong
6001 429 Frekuensi pengiriman untuk nomor ponsel yang sama melebihi batas; jendela batas dapat berupa menit, jam, atau hari kalender
6002 429 Frekuensi pengiriman untuk IP pengguna akhir yang sama melebihi batas; jendela batas dapat berupa menit atau jam; hanya diperiksa jika permintaan menyertakan end_user_ip
6003 429 Volume pengiriman harian atau bulanan global aplikasi mencapai batas
6006 403 Pengiriman tidak diizinkan untuk negara atau wilayah saat ini
6007 403 Layanan pengiriman kode verifikasi SMS ditangguhkan; dapat berlaku untuk semua negara/wilayah atau negara/wilayah saat ini
6008 429 Volume pengiriman harian atau bulanan untuk negara atau wilayah saat ini mencapai batas

Catatan error batasan laju dan volume pengiriman

  • 3004 adalah kontrol frekuensi pengiriman OTP template; jendela batas mengikuti konfigurasi template dan mungkin tidak sama dengan masa berlaku kode verifikasi.
  • 6001 dan 6002 adalah kontrol frekuensi keamanan pada dimensi nomor atau IP pengguna akhir.
  • 6003 dan 6008 menunjukkan permintaan ini memicu batas volume pengiriman; setelah mencapai batas dan memasuki status ditangguhkan, permintaan berikutnya mungkin mengembalikan 6007.
  • Saat menerima HTTP 429, jangan segera mencoba ulang secara terus-menerus; coba lagi nanti, dan jika terus muncul, hubungi administrator atau dukungan teknis.
  • 5011 hingga 5019 hanya mencakup kegagalan yang dapat dikenali pada tahap pengiriman sinkron. Status seperti nomor kosong, ponsel mati, atau penolakan operator setelah diterima penyedia masih dapat dikembalikan melalui status pesan asinkron atau callback.
Icon Solid Transparent White Qiyu
Hubungi Sales