Pengiriman Pesan Kustom
Jika Anda telah membuat konten template kustom di platform OTP, panggil endpoint ini untuk mengirim konten pesan kustom.
Endpoint
POST https://otp.api.engagelab.cc/v1/custom-messages
Autentikasi
Lihat Autentikasi untuk memahami cara melakukan autentikasi API.
Format request
Header request
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body request
{
"to": "+6591234567",
"template":{
"id":"test-template-1",
"params": {
"code": "codevalue",
"var1":"value1"
}
}
}
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 |
| template | JSON Object | Wajib | Informasi template, parameter tingkat kedua di dalamnya lihat di bawah |
| |_ id | String | Wajib | ID template |
| |_ params | JSON Object | Opsional | Parameter template |
| _ |_ code | String | Opsional | Wajib diisi ketika tipe template adalah kode verifikasi. |
| _ |_ var | String | 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 {{var1}} |
Penjelasan tentang params
- Untuk variabel preset template seperti {{brand_name}}, {{ttl}}, {{pwa_url}}, tidak perlu diteruskan, sistem akan otomatis menggantinya dengan konten yang ditentukan saat pembuatan template;
- Jika tipe template adalah kode verifikasi, maka variabel {{code}} wajib diteruskan, jika tidak akan menimbulkan error;
- 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 parameterparams:{"name":"Bob"} - Variabel khusus channel Email: Untuk channel Email, mendukung penimpaan dinamis subjek email (
subject), nama pengirim (from_name), email pengirim (from_mail), dan lainnya melaluiparams. Untuk penggunaan lanjutan yang lebih detail, lihat Buat Template - Penggunaan lanjutan variabel template Email.
Contoh request
1. Mengirim kode verifikasi kustom:
{
"to": "+6591234567",
"template":{
"id":"code-template",
"params": {
"code": "123456"
}
}
}
2. Mengirim konten notifikasi kustom:
{
"to": "+6591234567",
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
3. Mengirim konten marketing kustom:
{
"to": ["+6591234567"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
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 |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
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"
}
Kode error
| 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 |
| 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 |
| 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 |










