Send Template (Official WABA)
Gunakan endpoint ini untuk mengirim pesan menggunakan template resmi WhatsApp yang telah disetujui (Meta-Approved Template) melalui Meta WhatsApp Business API (Official WABA) BaBlast.
Endpoint API
POST https://api.bablast.id/waba/send-template
Headers
| Header | Value | Deskripsi |
|---|---|---|
Authorization | Bearer <API_KEY> | Global API Key atau Device/Legacy API Key WABA Anda |
Content-Type | application/json | Format payload request |
Payload Parameter (JSON)
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
sender_code | String | Kondisional | Kode perangkat WABA (misal: SND-WABA01). Wajib untuk memilih sender pada Global API Key multi-perangkat; hilangkan jika API Key sudah terikat ke satu sender. |
phone | String | Ya | Nomor telepon WhatsApp penerima (misal: 6281234567890). |
template_name | String | Ya | Nama kode template yang telah disetujui di Meta. |
language | String | Tidak | Kode bahasa template (default: id). |
parameters | Array | Tidak | Nilai variabel template secara berurutan, misalnya untuk {{1}}, {{2}}. Cocok untuk template teks sederhana. |
components | Array | Tidak | Komponen template Meta lengkap untuk header, body, dan button. Gunakan ini untuk media header atau parameter terstruktur. |
reference_id | String | Tidak | ID transaksi/invoice dari sistem Anda. Alias referenceId dan ref_id juga diterima. |
metadata | Object | Tidak | Objek JSON kustom yang dikembalikan pada webhook status. |
Untuk kompatibilitas, reference_id juga dapat dikirim sebagai metadata.reference_id. Jika tersedia di kedua lokasi, nilai top-level digunakan. Callback selalu mengeluarkannya sebagai data.reference_id, bukan sebagai bagian dari data.metadata.
Contoh Request
Mengirim Template Berisi Variabel
Misalkan Anda memiliki template bernama otp_verification yang disetujui Meta dengan format teks:
Halo {{1}}, kode keamanan akun Anda adalah {{2}}.
curl -X POST https://api.bablast.id/waba/send-template \
-H "Authorization: Bearer bk_live_YOUR_GLOBAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sender_code": "SND-WABA01",
"phone": "6281234567890",
"template_name": "otp_verification",
"language": "id",
"parameters": ["Budi", "582103"],
"reference_id": "REF-2026-001",
"metadata": {
"customer_tag": "VIP"
}
}'
Template dengan Media Header
Untuk template dengan header gambar, video, atau dokumen, kirim components sesuai format Meta:
{
"sender_code": "SND-WABA01",
"phone": "6281234567890",
"template_name": "invoice_ready",
"language": "id",
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"image": {
"link": "https://example.com/invoice-header.jpg"
}
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "INV-2026-9901"
}
]
}
],
"reference_id": "REF-2026-002",
"metadata": {
"invoice_id": "INV-2026-9901"
}
}
Struktur Respons (200 OK)
{
"success": true,
"message": "Template message sent successfully",
"data": {
"success": true,
"messageId": "wamid.HBgNNjI4MTIzNDU2Nzg5MA==...",
"data": {
"messaging_product": "whatsapp",
"contacts": [
{
"input": "6281234567890",
"wa_id": "6281234567890"
}
],
"messages": [
{
"id": "wamid.HBgNNjI4MTIzNDU2Nzg5MA==...",
"message_status": "accepted"
}
]
}
}
}
Respons accepted berarti Meta menerima request. Status akhir seperti terkirim, dibaca, atau gagal dikirim secara asinkron melalui webhook dengan reference_id dan metadata kustom yang sama.
Pencatatan Log WABA: Setiap pengiriman via WABA API resmi akan dicatat ke dalam database log WABA akun Anda dan dapat diinspeksi melalui menu API Message Logs di portal pengembang.