logoDokumen
Cari

Kirim Pesan Kustom

Jika Anda telah membuat konten template khusus di platform OTP, gunakan API ini untuk mengirimkan konten pesan kustom.

Endpoint API

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

Autentikasi

Menggunakan HTTP Basic Authentication untuk verifikasi. Tambahkan header Authorization pada permintaan HTTP:

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Tampilkan blok kode ini di jendela mengambang

base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)

Format Permintaan

Header Permintaan

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Tampilkan blok kode ini di jendela mengambang

Body Permintaan

{ "to": "+8618701235678", "template":{ "id":"test-template-1", "params": { "code": "codevalue", "var1":"value1" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"test-template-1",
      "params": {
        "code": "codevalue",
        "var1":"value1"
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Permintaan

Objek permintaan dalam format JSON, pastikan header permintaan menyertakan Content-Type: application/json.

Parameter Tipe Wajib Deskripsi
to String/Array Ya Penerima tujuan, bisa nomor telepon (misal: +8613800138000) atau email (misal: support@engagelab.com).
template Objek JSON Ya Informasi template. Sub-parameter dijelaskan di bawah ini.
|_ id String Ya ID Template.
|_ params Objek JSON Optional Parameter template.
_ |_ code String Opsional Wajib diisi jika tipe template adalah kode verifikasi.
_ |_ var String Opsional Nilai variabel template kustom. Jika variabel didefinisikan saat membuat template, masukkan nilainya di sini. Jika tidak diisi, key variabel akan dikirimkan apa adanya (misal: {{var1}}).

Catatan tentang params:

  • Untuk variabel preset template seperti {{brand_name}}, {{ttl}}, dan {{pwa_url}}, tidak perlu mengirimkan nilai—sistem akan otomatis menggantinya sesuai pengaturan template.
  • Jika tipe template adalah kode verifikasi, variabel {{code}} wajib dikirimkan; jika tidak, akan terjadi error.
  • Untuk variabel kustom yang Anda definisikan di konten template, masukkan nilainya melalui params. Misal, jika isi template: Hai {{name}}, kode verifikasi Anda adalah {{code}}, maka params:{"name":"Bob"} harus dikirimkan.

Contoh Permintaan

1. Mengirim kode verifikasi khusus:

{ "to": "+8618701235678", "template":{ "id":"code-template", "params": { "code": "123456" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"code-template",
      "params": {
        "code": "123456"        
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

2. Mengirim notifikasi khusus:

{ "to": ["+8618701235678"], "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "notification-template",
        "params": {
            "order": "123456"
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

3. Mengirim konten pemasaran khusus:

{ "to": ["+8618701235678"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "marketing-template",
        "params": {
            "name": "EngageLab",
            "promotion": "30%"
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Respons Berhasil

Field Tipe Wajib Deskripsi
message_id String Ya ID pesan, sebagai identitas unik pesan.
send_channel String Ya Channel yang digunakan untuk pengiriman. Nilai yang mungkin: whatsapp, sms, email, voice.
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
Tampilkan blok kode ini di jendela mengambang

Catatan: Nilai send_channel yang dikembalikan tidak menunjukkan channel akhir ke pengguna, hanya channel yang digunakan pada tahap saat ini. Misalnya, jika strategi template dikonfigurasi fallback ke SMS setelah WhatsApp gagal, API awalnya mengembalikan whatsapp; jika gagal, sistem otomatis beralih ke SMS.

Respons Gagal

Kode status http 4xx atau 5xx, body respons berisi field berikut:

Field Tipe Wajib Deskripsi
code int Kode error. Lihat Kode Error untuk detailnya.
message String Ya Detail error.
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
Tampilkan blok kode ini di jendela mengambang
Kode Error http code Deskripsi
1000 500 Kesalahan internal.
2001 401 Autentikasi gagal: token tidak valid atau tidak ada.
2002 401 Autentikasi gagal: token kedaluwarsa atau dinonaktifkan.
2004 403 Tidak memiliki izin untuk memanggil API ini.
3001 400 Format parameter permintaan tidak valid. Pastikan konten JSON sesuai format.
3002 400 Parameter permintaan tidak valid. Periksa apakah parameter sudah sesuai ketentuan.
3003 400 Validasi bisnis gagal. Lihat field message untuk detailnya.
3004 400 Melebihi batas pengiriman. Untuk template dan user yang sama, kode verifikasi tidak dapat dikirim ulang dalam masa berlaku.
4001 400 Resource tidak ditemukan (misal: template tidak ada).
5001 400 Pengiriman kode verifikasi gagal. Lihat field message untuk detailnya.
icon
Hubungi Sales