Interactive Reply Button Message
Reply button messages present up to 3 quick-reply buttons. Tapping a button returns the button id to your webhook. Five scenarios from the Postman collection are documented below.
Folder: Interactive Reply buttons
POST https://apis.rmlconnect.net/wba/v1/messages
Reply buttons
Full interactive reply message with 2 buttons, header, and footer. Note: ttl_seconds is 29, which is below the 30-second minimum — this also serves as a TTL validation test.
POST https://apis.rmlconnect.net/wba/v1/messages
{
"phone": "{phone}",
"type": "send-direct",
"ttl_seconds": 29,
"enable_acculync": false,
"media": {
"type": "interactive_reply",
"body": "Confirm your appointment?",
"button": [
{
"id": "yes",
"title": "Confirm"
},
{
"id": "no",
"title": "Cancel"
}
],
"footer_text": "Reply to confirm",
"header": {
"text": "Appointment"
}
}
}
Notettl_seconds: 29 is intentionally below the 30-second minimum in this test. Remove ttl_seconds or use >= 30 for a valid production request.
Without optional header and footer
Minimal reply button message with 3 buttons. Header and footer omitted.
POST https://apis.rmlconnect.net/wba/v1/messages
{
"phone": "{phone}",
"type": "send-direct",
"enable_acculync": false,
"media": {
"type": "interactive_reply",
"body": "Rate your experience",
"button": [
{
"id": "1",
"title": "Good"
},
{
"id": "2",
"title": "Average"
},
{
"id": "3",
"title": "Poor"
}
]
}
}Button text over 20 characters
Negative test — button title is 21 characters, exceeding the 20-character limit. Should return a validation error.
POST https://apis.rmlconnect.net/wba/v1/messages
Negative test — button title is 21 characters.
{
"phone": "{phone}",
"type": "send-direct",
"media": {
"type": "interactive_reply",
"body": "Choose an option",
"button": [
{
"id": "1",
"title": "Sample text for 21 ch"
}
]
}
}Button title exactly 20 characters
Positive boundary test — button title is exactly 20 characters. Should be accepted.
POST https://apis.rmlconnect.net/wba/v1/messages
Positive boundary test — button title is exactly 20 characters.
{
"phone": "{phone}",
"type": "send-direct",
"media": {
"type": "interactive_reply",
"body": "Choose an option",
"button": [
{
"id": "1",
"title": "Sample text for 20ch"
}
]
}
}More than 3 reply buttons (max = 3)
Negative test — 4 buttons are provided, exceeding the maximum of 3. Should return a validation error.
POST https://apis.rmlconnect.net/wba/v1/messages
Negative test — 4 buttons provided.
{
"phone": "{phone}",
"type": "send-direct",
"media": {
"type": "interactive_reply",
"body": "Pick one",
"button": [
{
"id": "1",
"title": "A"
},
{
"id": "2",
"title": "B"
},
{
"id": "3",
"title": "C"
},
{
"id": "4",
"title": "D"
}
]
}
}Field reference
| Field | Type | Required | Description |
|---|---|---|---|
| media.type | string | Yes | "interactive_reply" |
| media.body | string | Yes | Main message text displayed above buttons. |
| media.button | array | Yes | Array of button objects. Maximum 3. |
| media.button[].id | string | Yes | Unique identifier returned via webhook when the button is tapped. |
| media.button[].title | string | Yes | Button label shown to user. Max 20 characters. |
| media.header | object | No | Optional text header. Max 60 characters. |
| media.footer_text | string | No | Optional footer text. Max 60 characters. |
Updated 12 days ago