Skip to content
Wazapin
Esc
navigateopen⌘Jpreview
On this page

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()

Was this page helpful?