API Meta-compatible
API ini menerima payload WhatsApp Cloud API yang sama. Ganti base URL, kirim API key Nala, dan
token Meta akan diinject dari vault berdasarkan phone_number_id di path.
Kirim satu pesan
curl -X POST https://api.nalasend.id/meta/v20.0/109384756201/messages \
-H "Authorization: Bearer nala_live_..." \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "628123456789",
"type": "text",
"text": { "body": "Halo" }
}' Body diteruskan byte-for-byte. Response sukses adalah response Meta; Nala menambahkan X-Request-Id dan peringatan bila relevan.
Gunakan Authorization: Bearer nala_... untuk SDK Meta dan integrasi server-to-server.
Broadcast lewat API
Kirim X-Nala-Broadcast: true, ganti to dengan recipients,
dan tambahkan nala_options:
{
"messaging_product": "whatsapp",
"recipients": ["+628123456789", "+628133456789"],
"type": "template",
"template": { "name": "promo_lebaran", "language": { "code": "id" } },
"nala_options": {
"name": "Promo Lebaran",
"idempotency_key": "promo-2026"
}
} Header X-Nala-Broadcast-Name menang atas nala_options.name, dan Idempotency-Key menang atas nala_options.idempotency_key. Hanya type: text dan type: template yang diterima di mode ini.
Urutan validasi
- Ownership nomor —
403 PHONE_NOT_OWNED - Subscription —
402 SUBSCRIPTION_EXPIRED - Entitlement broadcast —
403 ADDON_NOT_ENABLED - Tier 24 jam —
403 MESSAGING_LIMIT_EXCEEDED - Rate limit per nomor —
429 RATE_LIMITED - Kuota pool —
429 QUOTA_EXCEEDED
Single send tetap mengikuti customer service window untuk pesan text. Nala mengirim header peringatan, bukan menebak niat campaign.
