What actually happens
WhatsApp has progressively withdrawn interactive message templates from clients that are not the official Business Platform. Whether one renders depends on the recipient’s app build and their account — things neither you nor we can inspect before sending, and cannot inspect afterwards either. So on any given send, the recipient may see:- the buttons or menu, working as you designed; or
- a plain-text fallback — your title and description as ordinary text, with no tappable anything; or
- nothing useful at all.
How the API tells you
Every successful response from these two endpoints carries two extra fields:best_effort: true is on the payload every single time, deliberately. A developer reading "status": "sent" and nothing else would reasonably conclude their buttons work — and would find out otherwise from their own customers.
You cannot receive the tap
Even where buttons do render, the response goes into the WhatsApp conversation on the phone. There is no webhook and no endpoint that delivers it to your system. So arow_id or a reply button id is only meaningful to a human reading the chat. It cannot drive your workflow.
What to do instead
1
Write the message so it works as plain text
If the interactive part vanishes, the message must still make sense on its own. Put the instruction in
description, not only in the button labels.Bad: title Confirm your order, buttons Yes / No, nothing else. If the buttons vanish, the customer has no idea what to do.Good: title Confirm your order, description Order #2043 — ₹1,299. Reply YES to confirm or NO to cancel. The buttons become a shortcut, not a requirement.2
Use a typed reply as the real mechanism
“Reply 1 for morning, 2 for afternoon” works on every WhatsApp client on earth, and — unlike a button press — a person can read it on the phone regardless of how the message rendered.
3
Use a link for anything important
A
url button is convenient, but put the same link in the text as well. A link in text is tappable on every client.4
Never use them for anything critical
Payment confirmations, consent, cancellations, medical or legal choices — none of these should depend on a button appearing.