Kirim pesan
Kirim template WhatsApp dari backend kamu dengan request asynchronous yang aman.
Request yang diterima
Gunakan POST /v1/messages dengan scope messages:send. Field penerima adalah to, bukan recipient. Payload pengiriman saat ini harus memakai channel: whatsapp dan content.type: template; hanya template ready yang dapat dikirim.
const response = await fetch("https://api.metaflowhub.com/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.META_FLOW_HUB_API_KEY!,
"Idempotency-Key": "order-123-notification-1",
},
body: JSON.stringify({
channel: "whatsapp",
to: "+6281234567890",
content: {
type: "template",
templateId: "00000000-0000-4000-8000-000000000001",
variables: { first_name: "Ada" },
},
}),
});Response sukses adalah 202 Accepted, bukan bukti bahwa pesan sudah delivered. Simpan dispatchId, baca status, dan gunakan statusUrl atau operasi status. Status publik meliputi queued, processing, sent, delivered, failed, canceled, dan unknown.
Idempotensi dan attachment
Gunakan Idempotency-Key yang sama saat retry karena hasil request belum diketahui. Payload berbeda dengan key yang sama menghasilkan 409; jangan mengubah payload. Bentuk text, image, document, atau channel lain tercantum di schema sebagai rencana kontrak tetapi ditolak untuk delivery saat ini.
Attachment yang dikembalikan melalui capability URL dibaca dengan GET atau diperiksa metadata-nya dengan HEAD. Capability URL adalah secret terpisah dan mendukung byte range; jangan menggantinya dengan API key.
Lihat operasi POST messages dan endpoint attachment.