Logo Site EngageLab Mark Colored TransparentDokumen
Cari

Pengiriman Pesan Kustom

Jika Anda telah membuat konten template kustom di platform OTP, panggil API ini untuk mengirim konten pesan kustom.

Endpoint

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

Autentikasi

Gunakan Autentikasi Dasar HTTP untuk autentikasi, lalu 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)

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": "+6591234567", "template": { "id": "test-template-1", "params": { "code": "codevalue", "var1": "value1" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "params": {
      "code": "codevalue",
      "var1": "value1"
    }
  }
}

            
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 Type Required Description
to String Required Target pengiriman: nomor ponsel atau alamat email, seperti +6598765432 atau support@engagelab.com
template JSON Object Required Informasi template. Lihat parameter bertingkat di bawah
|_ id String Required ID template
|_ params JSON Object Optional Parameter template
_ |_ code String Optional Wajib diisi jika jenis template adalah kode verifikasi
_ |_ var String Optional Nilai dari kunci variabel template kustom. Jika Anda menetapkan variabel kustom saat membuat template, isi nilainya di sini. Jika tidak diberikan, kunci variabel akan dikirim secara langsung, seperti {{var1}}

Catatan tentang params

  1. Untuk variabel template bawaan seperti {{brand_name}}, {{ttl}}, dan {{pwa_url}}, Anda tidak perlu mengirimkannya. Sistem akan secara otomatis menggantinya dengan konten yang ditentukan saat template dibuat.
  2. Jika jenis template adalah kode verifikasi, Anda harus mengirim variabel {{code}}; jika tidak, kesalahan akan dikembalikan.
  3. Jika konten template berisi field variabel kustom yang ditentukan saat template dibuat, isi nilainya juga melalui params. Sebagai contoh, untuk konten template Hi {{name}}, your verify code is {{code}}, Anda perlu mengisi parameter params: {"name":"Bob"}.

Contoh Permintaan

1. Mengirim kode verifikasi kustom

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

            
Tampilkan blok kode ini di jendela mengambang

2. Mengirim konten notifikasi kustom

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "notification-template",
    "params": {
      "order": "123456"
    }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

3. Mengirim konten pemasaran kustom

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

            
Tampilkan blok kode ini di jendela mengambang

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 yang saat ini 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

Perlu diperhatikan bahwa nilai send_channel yang dikembalikan tidak mewakili saluran akhir yang digunakan untuk mengirim pesan kepada pengguna. Nilai ini hanya menunjukkan saluran yang sedang digunakan saat ini. Sebagai contoh, jika strategi yang dikonfigurasi dalam template menentukan bahwa ketika pengiriman WhatsApp gagal, sistem harus otomatis mencoba ulang melalui saluran SMS, respons API akan mengembalikan whatsapp. Setelah kegagalan pengiriman terdeteksi dalam jangka waktu tertentu, sistem kemudian 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 detailnya, lihat Kode Kesalahan
message String Required Detail kesalahan
{ "code": 5001, "message": "sms send fail" }
              
              {
  "code": 5001,
  "message": "sms send fail"
}

            
Tampilkan blok kode ini di jendela mengambang

Kode Kesalahan

Error Code HTTP Code Description
1000 500 Kesalahan internal
2001 401 Autentikasi gagal. Token yang valid 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 dipicu lagi selama masa berlaku kode verifikasi
4001 400 Sumber daya terkait tidak ditemukan. Sebagai contoh, template yang tidak ada digunakan 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 telah ditambahkan ke daftar hitam
5014 400 Konten tidak sesuai dengan spesifikasi
5015 400 Pesan dicegat/ditolak
5016 400 Kesalahan internal saat pengiriman
5017 400 Tidak memiliki izin untuk mengirim ke Tiongkok daratan
5018 400 Masalah pada perangkat seluler (dimatikan/layanan ditangguhkan)
5019 400 Pengguna telah berhenti berlangganan
5020 400 Nomor tidak terdaftar/nomor tidak valid
Icon Solid Transparent White Qiyu
Hubungi Sales