Send buttons
Send interactive button messages on WhatsApp.
Let customers tap up to three quick replies instead of typing — ideal for yes/no questions, confirmations, and simple choices inside an active chat.
At a glance
| Item | Detail |
|---|---|
type |
buttons |
| Channel support | Official and unofficial |
| Unofficial | May be delivered as formatted fallback text |
| Session | Typically used inside the customer service window |
Request body
| Field | Required | Description |
|---|---|---|
channel_id |
Yes | Sender channel ID |
to |
Yes | Recipient phone number |
type |
Yes | buttons |
content.body |
Yes | Message text above the buttons |
content.buttons |
Yes | Array of { "id", "title" } |
Example
curl -X POST "https://api.wazapin.com/v1/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel_id": "wzp_abc123",
"to": "6281234567890",
"type": "buttons",
"content": {
"body": "Would you like to proceed?",
"buttons": [
{"id": "btn_yes", "title": "Yes"},
{"id": "btn_no", "title": "No"}
]
}
}'import { WazapinClient, buttonsMessage } from "@wazapin/sdk";
const wazapin = new WazapinClient({ apiKey: process.env.WAZAPIN_API_KEY! });
await wazapin.messages.send(
buttonsMessage({
channel_id: "wzp_abc123",
to: "6281234567890",
body: "Would you like to proceed?",
buttons: [
{ id: "btn_yes", title: "Yes" },
{ id: "btn_no", title: "No" },
],
}),
);import requests
requests.post(
"https://api.wazapin.com/v1/messages",
headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"channel_id": "wzp_abc123",
"to": "6281234567890",
"type": "buttons",
"content": {
"body": "Would you like to proceed?",
"buttons": [
{"id": "btn_yes", "title": "Yes"},
{"id": "btn_no", "title": "No"},
],
},
},
timeout=30,
).raise_for_status()