logoDokumen
Cari

API Kirim Pesan

Gunakan Messaging API untuk mengintegrasikan fitur pesan WhatsApp ke sistem bisnis Anda.
Sebelum menggunakan API, silakan masuk ke konsol Kunci API dan buat kunci di halaman tersebut.

Alamat Endpoint

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

Validasi Panggilan

EngageLab REST API menggunakan HTTP Basic Authentication. Tambahkan Authorization di Header HTTP:

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

            
Tampilkan blok kode ini di jendela mengambang

Algoritma pembuatan base64_auth_string: base64(dev_key:dev_secret)

  • Nama Header: "Authorization", nilainya pasangan "username:password" yang sudah di-base64 (dipisahkan titik dua).
  • Pada API WhatsApp, username adalah DevKey dan password adalah DevSecret. Dapatkan di konsol pada menu manajemen konfigurasi - Kunci API.

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

{ "from": "+8613800138000", "to": [ "00447911123456" ], "body": { "type": "template", "template": { "name": "code", "language": "zh_CN", "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "12345" } ] } ] } }, "request_id": "123asdbbqwe9faweg", "custom_args": { "arg1": "string val", "arg2": 123 } }
              
              {
    "from": "+8613800138000",
    "to": [
        "00447911123456"
    ],
    "body": {
        "type": "template",
        "template": {
            "name": "code",
            "language": "zh_CN",
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {
                            "type": "text",
                            "text": "12345"
                        }
                    ]
                }
            ]
        }
    },
    "request_id": "123asdbbqwe9faweg",
    "custom_args": {
        "arg1": "string val",
        "arg2": 123
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Permintaan

Objek permintaan harus dalam format JSON, dengan header Content-Type: application/json.

Parameter Tipe Opsi Deskripsi
from String opsional Nomor pengirim
to Array String wajib Nomor WhatsApp tujuan
body Objek JSON wajib Isi pesan
request_id String opsional ID permintaan kustom
custom_args Objek JSON opsional Informasi kustom yang akan dikembalikan pada callback status pesan

from

Parameter Tipe Opsi Deskripsi
from String opsional Nomor pengirim (nomor perusahaan yang digunakan untuk mengirim pesan). Wajib pakai kode negara. Jika kosong, gunakan nomor pengirim default (wajib dikonfigurasi di konsol).

to

Parameter Tipe Opsi Deskripsi
to Array String wajib Nomor WhatsApp tujuan, wajib pakai kode negara.

body

Isi pesan dengan field berikut:

Parameter Tipe Opsi Deskripsi
type string wajib Tipe pesan: template, text, image, audio, video, document, sticker. Hanya pesan template yang bisa dikirim ke pengguna. Tipe lain hanya bisa dikirim jika pengguna membalas dalam 24 jam terakhir.
template objek opsional Wajib jika type = template. Lihat deskripsi objek template
text objek opsional Wajib jika type = text. Lihat deskripsi objek text
image objek opsional Wajib jika type = image. Lihat deskripsi objek image
audio objek opsional Wajib jika type = audio. Lihat deskripsi objek audio
video objek opsional Wajib jika type = video. Lihat deskripsi objek video
document objek opsional Wajib jika type = document. Lihat deskripsi objek document
sticker objek opsional Wajib jika type = sticker. Lihat deskripsi objek sticker

deskripsi objek text

Pesan teks

Parameter Tipe Opsi Deskripsi
body String wajib Isi teks, maksimal 4096 karakter.

Contoh

{ "from": "8613800138000", "to": "8613800138000", "body": { "type": "text", "text": { "body": "isi-pesan-teks-anda" } } }
              
              {
    "from": "8613800138000",
    "to": "8613800138000",
    "body": {
        "type": "text",
        "text": {
            "body": "isi-pesan-teks-anda"
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek image

Pesan gambar

Parameter Tipe Opsi Deskripsi
id String opsional ID media WhatsApp, harus ada nilai id atau link.
link String opsional Link gambar (http/https), ikuti Persyaratan Format Pesan Media
caption String opsional Deskripsi gambar, maksimal 1024 karakter.

Contoh

{ "from": "8613800138000", "to": "8613800138000", "body": { "type": "image", "image": { "link": "https://img.jiguang.cn/jiguang/public/img/c866bd2.png", "caption": "info caption" } } }
              
              {
  "from": "8613800138000",
  "to": "8613800138000",
  "body": {
      "type": "image",
      "image": {
          "link": "https://img.jiguang.cn/jiguang/public/img/c866bd2.png",
          "caption": "info caption"
      }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek video

Pesan video

Parameter Tipe Opsi Deskripsi
id String opsional ID media WhatsApp, harus ada nilai id atau link.
link String opsional Link video (http/https), ikuti Persyaratan Format Pesan Media
caption String opsional Deskripsi video, maksimal 1024 karakter.

Contoh

{ "from": "8613800138000", "to": "8613800138001", "body": { "type": "video", "video": { "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", "caption": "info caption" } } }
              
              {
  "from": "8613800138000",
  "to": "8613800138001",
  "body": {
      "type": "video",
      "video": {
          "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4",
          "caption": "info caption"
      }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek audio

Pesan audio

Parameter Tipe Opsi Deskripsi
id String opsional ID media WhatsApp, harus ada nilai id atau link.
link String opsional Link audio (http/https), ikuti Persyaratan Format Pesan Media

Contoh

{ "from": "8613800138000", "to": "8613800138001", "body": { "type": "audio", "audio": { "link": "https://file-examples.com/storage/fe5947fd2362fc197a3c2df/2017/11/file_example_MP3_700KB.mp3" } } }
              
              {
  "from": "8613800138000",
  "to": "8613800138001",
  "body": {
      "type": "audio",
      "audio": {
          "link": "https://file-examples.com/storage/fe5947fd2362fc197a3c2df/2017/11/file_example_MP3_700KB.mp3"
      }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek document

Pesan file

Parameter Tipe Opsi Deskripsi
id String opsional ID media WhatsApp, harus ada nilai id atau link.
link String opsional Link dokumen (http/https), ikuti Persyaratan Format Pesan Media
caption String opsional Deskripsi file, maksimal 1024 karakter.
filename String opsional Nama file. Jika tidak diisi, caption akan digunakan sebagai nama file.

Contoh

{ "from": "8613800138000", "to": "8613800138001", "body": { "type": "document", "document": { "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4", "caption": "info caption", "filename": "nama file dokumen" } } }
              
              {
  "from": "8613800138000",
  "to": "8613800138001",
  "body": {
      "type": "document",
      "document": {
          "link": "https://img.jiguang.cn/jiguang/public/videos/432acc5.mp4",
          "caption": "info caption",
          "filename": "nama file dokumen"
      }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek sticker

Pesan stiker

Parameter Tipe Opsi Deskripsi
id String opsional ID media WhatsApp, harus ada nilai id atau link.
link String opsional Link stiker (http/https), ikuti Persyaratan Format Pesan Media

Contoh

{ "from": "8613800138000", "to": "8613800138001", "body": { "type": "sticker", "sticker": { "link": "http://sample-file.bazadanni.com/download/images/webp/sample.webp" } } }
              
              {
  "from": "8613800138000",
  "to": "8613800138001",
  "body": {
      "type": "sticker",
      "sticker": {
          "link": "http://sample-file.bazadanni.com/download/images/webp/sample.webp"
      }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

deskripsi objek template

Pesan template, Anda harus membuat template terlebih dahulu, baik melalui konsol atau API.

Parameter Tipe Wajib Deskripsi
name String wajib Nama template, bisa dilihat di halaman template pesan di konsol. Hanya huruf kecil, angka, dan garis bawah.
language String wajib Kode bahasa template.
components array opsional Jika template memiliki variabel, isi field ini. Hanya satu elemen objek components dalam array.
deskripsi objek template.components
Parameter Tipe Opsi Deskripsi
type String wajib Komponen template yang memuat variabel. Nilai: header, body, footer, button
parameters objek wajib Isi variabel
deskripsi objek template.components.parameters
Parameter Tipe Opsi Deskripsi
type string wajib Tipe variabel: text, currency, date_time, image, video, document. Media (image, video, document) hanya di header.
text string opsional Isi variabel jika type = text.
date_time objek opsional Untuk type = date_time, dapat dilokalkan dan diatur tampilannya.
currency objek opsional Untuk type = currency, dapat dilokalkan dan diatur tampilannya.
image objek opsional Untuk type = image, format sama dengan objek image.
video objek opsional Untuk type = video, format sama dengan objek video.
document objek opsional Untuk type = document, format sama dengan objek document.

Contoh

{ "from": "+8613800138000", "to": [ "00447911123456" ], "body": { "type": "template", "template": { "name": "your-template-name", "language": "zh_CN", "components": [ { "type" : "header", "parameters": [{ "type": "document", "document": { "link": "http(s)://the-url", "filename": "nama-file-dokumen-anda" } }] }, { "type": "body", "parameters": [ { "type": "text", "text": "isi-teks-anda" }, { "type": "currency", "currency": { "fallback_value": "$100.99", "code": "USD", "amount_1000": 100990 } }, { "type": "date_time", "date_time": { "fallback_value": "25 Februari 1977", "day_of_week": 5, "day_of_month": 25, "year": 1977, "month": 2, "hour": 15, "minute": 33 } }, { "type": "date_time", "date_time": { "fallback_value": "25 Februari 1977", "timestamp": 1485470276 } } ] } ] } } }
              
              {
    "from": "+8613800138000",
    "to": [
        "00447911123456"
    ],
    "body": {
        "type": "template",
        "template": {          
            "name": "your-template-name",
            "language": "zh_CN",
            "components": [
              {
                "type" : "header",
                "parameters": [{
                         "type": "document",
                         "document": {
                             "link": "http(s)://the-url",
                             "filename": "nama-file-dokumen-anda"
                       }
                }]
              },
              {
                 "type": "body",
                 "parameters": [
                        {
                            "type": "text",
                            "text": "isi-teks-anda"
                        },
                        {
                            "type": "currency",
                            "currency": {
                                "fallback_value": "$100.99",
                                "code": "USD",
                                "amount_1000": 100990
                            }
                        },
                        {
                            "type": "date_time",
                            "date_time": {
                                "fallback_value": "25 Februari 1977",
                                "day_of_week": 5,
                                "day_of_month": 25,
                                "year": 1977,
                                "month": 2,
                                "hour": 15,
                                "minute": 33
                            }
                        },
                        {
                            "type": "date_time",
                            "date_time": {
                                "fallback_value": "25 Februari 1977",
                                "timestamp": 1485470276
                            }
                        }
                    ]
                }
            ]
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Respons Sukses

Field Tipe Opsi Deskripsi
message_id String wajib ID pesan WhatsApp EngageLab yang unik
request_id String opsional ID kustom yang dikirim saat permintaan, dikembalikan apa adanya
{ "message_id": "cbggf4if6o9ukqaalfug", "request_id": "your-sendno-string" }
              
              {
    "message_id": "cbggf4if6o9ukqaalfug",
    "request_id": "your-sendno-string"
}

            
Tampilkan blok kode ini di jendela mengambang

Respons Gagal

Kode status http 4xx atau 5xx. Isi respons:

Field Tipe Opsi Deskripsi
code int wajib Kode error, lihat deskripsi Kode Error
message String wajib Detail error
{ "code": 3002, "message": "whatsapp.template field must be set correctly when type is template" }
              
              {
    "code": 3002,
    "message": "whatsapp.template field must be set correctly when type is template"
}

            
Tampilkan blok kode ini di jendela mengambang

Kode Error

Kode Error Http Code Deskripsi
1000 500 Kesalahan internal
2001 401 Otentikasi EngageLab gagal tanpa token yang valid
2002 401 Otentikasi di sisi EngageLab gagal. Token telah kedaluwarsa atau dinonaktifkan
2003 400 Otentikasi WhatsApp gagal, silakan hubungi layanan pelanggan EngageLab
2004 403 Anda tidak memiliki izin untuk memanggil API ini. Periksa izin pengiriman pada kunci API
3001 400 Format parameter permintaan tidak valid. Periksa format JSON
3002 400 Parameter permintaan salah. Periksa parameter permintaan
3003 400 Error karena parameter permintaan tidak valid. Lihat detail pada field message
4001 400 Resource terkait tidak ada, misal template tidak ditemukan saat mengirim pesan template

Komentar

Persyaratan Format Pesan Media

Tipe Media Content-Type yang Didukung Batas Ukuran
image image/jpeg, image/png (tanpa latar belakang transparan) 5MB
video video/mp4, video/3gpp (hanya encoding H.264 & audio AAC) 16MB
audio audio/aac, audio/mp4, audio/amr, audio/mpeg, audio/ogg; codecs=opus 16MB
document Semua MIME-type didukung untuk pesan file. Header template hanya PDF 100MB
sticker image/webp Statis: 100KB, Animasi: 500KB

Kode Bahasa

Untuk info lengkap hubungan bahasa dan kode, unduh file berikut:
Template language code.xlsx

icon
Hubungi Sales