What it is
The WhatsApp Messages API sends template, text, image, video, audio, document, sticker, location, interactive, contact, and reaction messages from a connected WhatsApp business phone number.Before you begin
- Store your YCloud API key in
YCLOUD_API_KEY. - Connect a WhatsApp Business Account and phone number to YCloud.
- Collect the sender phone number in E.164 format and either the recipient phone number, BSUID, or parent BSUID.
- Use an
APPROVEDtemplate for ordinary template sends. - Upload media first when the message references a YCloud media ID.
How it works
Choose the endpoint based on when YCloud should submit the message to the WhatsApp Business API.
Both endpoints return a YCloud message object. The initial response does not
confirm final delivery. Later status changes arrive through
whatsapp.message.updated Webhooks.
Direct Send for utility content
Direct Send can submit eligible utility content or convert an existing utility template. It works with either sending endpoint. ThesendDirectly endpoint
controls synchronous submission; it does not enable Direct Send by itself.
Follow Direct Send best practices
for eligibility, requests, template conversion, limits, and account events.
Choose the best send time
Match the send time to the message purpose and the recipient’s local time.- Send OTPs and other time-sensitive messages immediately. Use
POST /whatsapp/messages/sendDirectlywhen your workflow needs the submission result before continuing. - Send transactional updates when the related event occurs, such as a payment, shipment, or appointment change.
- Schedule marketing messages for reasonable hours in the recipient’s time zone. Use your own delivery, read, and conversion data to test different time slots for each audience instead of assuming one universal best hour.
- Start a scheduled campaign with a small recipient group. Check delivery, response, and opt-out results before sending to the rest of the audience.
- Avoid repeated sends when a message is delayed. Store
externalIdand processwhatsapp.message.updatedWebhooks before deciding whether to retry.
Request
Choose either endpoint above, then use the request body that matches the message type. Thefrom value is your connected WhatsApp business phone number. Address
the recipient with to in E.164 format or with recipient set to a BSUID or
parent BSUID.
Common request fields
Provide at least one of
to or recipient. If you include both, YCloud uses
to and ignores recipient.
One-tap, zero-tap, and copy-code authentication templates require a phone
number. Use
to for these template types.Request examples
Template message
Template message
Text message
Text message
Image message
Image message
Video message
Video message
Audio message
Audio message
Document message
Document message
Sticker message
Sticker message
Location message
Location message
Interactive message
Interactive message
Contacts message
Contacts message
Reaction message
Reaction message
Response
A successful response returns the YCloud message object. An initialstatus: accepted means YCloud accepted the send request. It does not mean the
message has been sent by Meta or delivered to the WhatsApp user.
Example response
Response fields
Delivery status
Subscribe towhatsapp.message.updated Webhooks to receive later status changes
such as sent, failed, delivered, or read.
Use GET /whatsapp/messages/{id} when you need to retrieve a message directly.
Limits and troubleshooting
- Ordinary template sends require an
APPROVEDtemplate;ARCHIVEDtemplates cannot be sent as ordinary template messages. - Do not retry an accepted request without an idempotency strategy. A repeated request can send a duplicate message.
- Use the YCloud
id,wamid,externalId, and Webhook status when investigating delivery. - Inspect
whatsappApiErrorwhen a direct request reaches Meta and Meta rejects it.
Direct Send best practices
Send utility content, convert templates, and monitor category and restriction events.
Production best practices
Design status synchronization, bounded retries, consent checks, media reuse,
and throughput controls for a production integration.
Use business-scoped user IDs
Send messages and calls by BSUID, request phone numbers, manage Meta contact
book entries, and process BSUID webhook fields.

