Mengirim Pesan Teks
Endpoint ini digunakan untuk mengirimkan pesan teks biasa bebas (free-form text) kepada pelanggan. Berdasarkan kebijakan Meta, pesan teks bebas hanya dapat diterima oleh pelanggan jika dikirim di dalam jendela interaksi 24 jam sejak respon/pesan terakhir dari pelanggan masuk.
🛜 1. HTTP Endpoint & Opsi Routing
Kirem menyediakan dua rute untuk mengirimkan pesan WhatsApp. Anda dapat memilih rute berdasarkan kompleksitas jumlah nomor pada proyek Anda:
Opsi A: Routing Otomatis (Default)
POST /v1/messages
- Kegunaan: Sangat praktis untuk proyek yang hanya memiliki satu nomor WhatsApp. Kirem akan secara otomatis mendeteksi dan menggunakan saluran WhatsApp aktif pertama yang terdaftar pada proyek Anda. Anda tidak perlu memasukkan ID nomor apa pun pada URL.
Opsi B: Routing Spesifik (Multi-Nomor)
POST /v1/:phone_number_id/messages
- Kegunaan: Digunakan jika proyek Anda mengelola lebih dari satu nomor WhatsApp. Dengan menyertakan parameter
phone_number_id, Kirem akan mengarahkan pengiriman secara spesifik melalui nomor tersebut. - Keamanan: Kirem akan memvalidasi apakah
phone_number_idtersebut terhubung pada proyek API Key Anda. Jika tidak sesuai, Kirem akan mengembalikan respons403 Forbiddenuntuk keamanan isolasi tenant.
Headers:
Authorization: Bearer <API_KEY>(Wajib)Content-Type: application/json(Wajib)
🔍 Cara Mendapatkan phone_number_id
Ada dua cara mudah untuk mendapatkan nilai phone_number_id yang diperlukan untuk Opsi B:
Metode 1: Lewat Dasbor Kirem (Rekomendasi)
- Masuk ke Dasbor Kirem dan buka menu Channels (Saluran).
- Temukan kartu nomor WhatsApp yang ingin Anda gunakan.
- Di dalam rincian kartu tersebut, Anda akan melihat nilai Phone Number ID (atau External ID). Salin nilai angka tersebut untuk digunakan pada URL API.
Metode 2: Lewat Meta Business Manager
- Masuk ke Meta Business Manager.
- Buka Setelan Bisnis (Business Settings) > Akun WhatsApp (WhatsApp Accounts).
- Pilih akun WhatsApp terkait dan buka tab WhatsApp Manager.
- Pada kolom daftar nomor telepon, Anda akan melihat deretan nomor telepon beserta kolom Phone Number ID di sampingnya. Salin nilai ID angka tersebut.
📦 2. Payload Request (JSON)
Sertakan objek text dengan parameter body berisi pesan Anda.
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "62812345678",
"type": "text",
"text": {
"body": "Halo, terima kasih telah menghubungi kami. Ada yang bisa kami bantu?"
}
}
Penjelasan Parameter:
messaging_product(String - Wajib): Selalu bernilai"whatsapp".recipient_type(String - Wajib): Selalu bernilai"individual".to(String - Wajib): Nomor telepon tujuan pelanggan dalam format internasional tanpa karakter khusus (misal:62812345678).type(String - Wajib): Tipe pesan yang dikirim. Untuk teks biasa, gunakan"text".text.body(String - Wajib): Isi teks pesan Anda (maksimal 4096 karakter). Mendukung format WhatsApp tebal (*teks*), miring (_teks_), coret (~teks~), dan monospace (`teks`).
🚦 3. Format Respons API
Respons Sukses (201 Created)
{
"status": 201,
"message": "Message sent successfully",
"data": {
"messaging_product": "whatsapp",
"contacts": [
{
"input": "62812345678",
"wa_id": "62812345678"
}
],
"messages": [
{
"id": "wamid.HBgLNjI4MTIzNDU2NzhGFgQ0NDMzMzc3RUQ1OEFG"
}
]
}
}
messages[0].id: ID unik pesan WhatsApp yang dikirimkan. Berguna untuk melacak pengantaran (status callback) via webhook.