Sends to a blocked contact are refused with contact_blocked
Released: October 17, 2026
POST /v1/{phone_number_id}/messages Added
Section titled “POST /v1/{phone_number_id}/messages ”Agents can block a contact on one WhatsApp number from the dashboard inbox. While the contact is blocked, every send to it on that number is refused before it reaches Meta:
error.code | When it fires | Recoverable? |
|---|---|---|
contact_blocked | An agent blocked the recipient on this WhatsApp number in the dashboard. Your other numbers are not affected. | Yes, once the contact is unblocked in the dashboard. Retrying without that will fail the same way. |
{ "error": { "type": "invalid_request_error", "code": "contact_blocked", "message": "This contact is blocked on this WhatsApp number. Unblock it in the dashboard to send messages.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}The same code is returned by the TypeScript SDK (as InvalidRequestError
with code: 'contact_blocked') and by the MCP message send tools.
Block state is dashboard-only: it is not exposed on contact objects and
there is no endpoint to block or unblock a contact. Customer contact.*
webhook payloads do not change.