Send WhatsApp message
POST/message-server/whatsapp/send
Sends a WhatsApp message. The content can be:
- A Meta-approved template (
template) - A free-form message (
body) — only within the 24h window from the user's last message
The template and body fields are mutually exclusive: one of the two is required.
Fallback: If the message cannot be delivered via WhatsApp, fallback to RCS (fallbackRcs) and/or SMS (fallbackSms) can be configured. The fallbacks apply only if your account supports mixed-channel sending; otherwise they are ignored.
Tracked links: For templates with {shortLinkT1} in the body, insert the shortLinkT1 placeholder in the placeholders map with the actual destination URL. The URL buttons of templates created with trackButtonLinks: true are tracked automatically: there is nothing to pass.
Request
Responses
- 202
- 400
- 401
- 500
- 511
Request accepted. Check results.whatsapp.accepted to verify whether the message was accepted.
Note: accepted: true means the message was accepted for sending, not that it was delivered. Delivery confirmation arrives via webhook.
With fallbacks, results also carries rcs and/or sms: those messages are prepared now and sent only if the previous channel fails. In that case results.whatsapp.accepted and results.rcs.accepted are always true, and only the SMS can be rejected at this stage. Results of the channels not involved are omitted, and so is reasons when the message is accepted.
Invalid request. Fields that fail validation are listed in data, one list of messages per invalid object; a body that cannot be read gives data: "Invalid request body". A number, template or RCS agent that your account cannot use gives message and code instead.
Missing or invalid credentials. The body is empty.
Unexpected error while handling the message
The calling IP address is outside the IP ranges configured for your account