Choose type buttons, list, product or productList and supply the matching payload. Product messages require a connected catalog and retailer IDs from that catalog. Product lists accept 1–10 sections and at most 30 product IDs in total; section titles are at most 24 characters. Other interactive payloads on the same request do not replace the payload required by type.
Supported channels for this REST operation: WhatsApp only. Use a conversation ID from a relevant conversation response for that workspace and channel; do not substitute a contact ID. A target accepted by another endpoint does not imply this operation supports that channel. The customer-service/reply window and channel permissions must still allow the send.
- Status code 200 means the message was accepted by WATI, not delivered yet.
- To know if a message is failed, listen to the Session Message Failed webhook.
- To know if a message is sent successfully, listen to Delivered/Read/Reply webhooks.
Permissions
For API access tokens and OIDC tokens, satisfy at least one of: api, wati_integration:write, conversationsv3:write. API access tokens may satisfy a listed scope through the configured scope hierarchy; OIDC tokens are checked against their scope claims. Legacy JWT authentication does not use this scope check. Authentication, role, tenant, and applicable feature or plan checks still apply. For HTTP 403, check the credential type, applicable scopes, roles, and workspace access; 403 does not always mean a missing scope. Authentication/authorization failures do not guarantee a JSON response body.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
401The request is unauthorized.
429Too many requests. Either the rate limit has been exceeded or usage limits have been reached.

