⚡Quick answer -
Send a POST request that contains these required fields:
- waba_id (your WhatsApp Business Account ID)
- phone_number_id
- customer_country_code
- customer_number
- data (defines the message type and content)
- myop_ref_id (your internal reference)
Use data.type = "text" or "image" for basic messages. For templates set data.type = "template", pass dynamic values in context.body, and (optionally) attach header.media_url after uploading the file via GET /chat/media/upload.
Watch for two critical errors: CHAT_0302 (WABA disabled) and 403 “Invalid company ID!”.
A successful call always returns:

{"status": "success", "code": "200", "message": "Message Sent"}
When should I use this guide?
Use this article whenever you need one place to copy-paste the exact JSON and field names for:
- Text messages
- Image messages
- Template messages (including media uploads and dynamic variables)
1. Prerequisites & Required IDs
2. Core request template
{
"waba_id": "<YOUR_WABA_ID>",
"phone_number_id": "<YOUR_PHONE_NUMBER_ID>",
"customer_country_code": "<ISO_CODE>",
"customer_number": "<RECIPIENT_NUMBER_WITHOUT_COUNTRY_CODE>",
"myop_ref_id": "<YOUR_REFERENCE>",
"data": { /* see sections 3–5 */ }
}
3. Sending a Text Message
HTTP method: POST
{
"waba_id": "<YOUR_WABA_ID>",
"phone_number_id": "<YOUR_PHONE_NUMBER_ID>",
"customer_country_code": "1",
"customer_number": "5551234567",
"myop_ref_id": "order-98765",
"data": {
"type": "text",
"context": {
"body": "Hello! Your order has shipped."
}
}
}
4. Sending an Image Message
HTTP method: POST
{
"waba_id": "<YOUR_WABA_ID>",
"phone_number_id": "<YOUR_PHONE_NUMBER_ID>",
"customer_country_code": "1",
"customer_number": "5551234567",
"myop_ref_id": "order-98765",
"data": {
"type": "image",
"link": "https://example.com/tracking.png",
"filename": "tracking.png",
"caption": "Order #98765 status",
"mime_type": "image/png"
}
}
Required image-specific fields: link, filename, caption, mime_type.
5. Sending a Template Message
5.1 Determine required variables
Send the template once in a live-chat session; every placeholder you see is a variable you must supply.
HTTP method: POST
{
"waba_id": "<YOUR_WABA_ID>",
"phone_number_id": "<YOUR_PHONE_NUMBER_ID>",
"customer_country_code": "1",
"customer_number": "5551234567",
"myop_ref_id": "promo-2025",
"data": {
"type": "template",
"context": {
"body": ["{{1}}", "{{2}}"]
},
"header": {
"media_url": "<OPTIONAL_MEDIA_URL>"
}
}
}
- Use the body array to pass dynamic values.
- Add header.media_url only if the approved template header expects media.
- Method: GET
- Endpoint:
/chat/media/upload - Include required headers and the file as form-data.
Add this block inside data:
6. Listing All Templates for Your WABA
HTTP method: GET Endpoint: /chat/templates?waba_id=<YOUR_WABA_ID>
7. Replying to a specific message
Add the reply_to field with the original message ID
"reply_to": "INCOMING_MESSAGE_ID"
8. Error codes
Flip-side: A request will also fail if any prerequisite field is missing or if the referenced template is not approved.
9. When does this NOT work?
The request will fail if any required field (listed in the Prerequisites table) is missing or empty, or if the template you reference has not been approved.
Keywords - WhatsApp API, send text, send image, template message, waba_id, phone_number_id, media upload, message sent
Related Articles
Can I send Heyo bulk WhatsApp messages in Hindi?
⚡Quick answer - Yes. Create a Hindi template in the Heyo app, submit it for Meta approval, and once approved, you can use it in any bulk campaign. 1. Prerequisites • A live WhatsApp Business Account already connected to Heyo. • The Heyo mobile app ...
How do I set up my WhatsApp Business API (WABA) account with Heyo?
⚡Quick answer - You must (a) hold an active Heyo Lite or Pro subscription, (b) own a verified Facebook Business Manager (FBM) with an active Facebook Page, and (c) use a Heyo-issued virtual number (personal mobile numbers do not work). Launch the ...
Why aren’t my WhatsApp messages getting delivered in the Heyo app?
⚡Quick answer - Failures stem from Meta marketing limits, recipient issues (blocked, opted out, invalid), template rejections, or account service issues. Run the utility-template test, alternate-number test, and review dashboard error codes to ...
What should I know to set up, test, publish, and integrate MyOperator BOT—including WhatsApp Business and Facebook Business Manager?
⚡Quick answer - • MyOperator BOT lets selected businesses (high-WhatsApp usage) build up to five AI chatbots that work 24/7, support custom flows, API “Functions”, human handover, and nudges. • Core setup = create a bot, upload up to 5 knowledge-base ...
Can I delete or edit WhatsApp messages sent through Heyo?
⚡Quick answer - No. Meta’s WhatsApp Business Platform does not permit deleting or editing messages once delivered. If you send an error, send a follow-up correction. 1 Why deletion isn’t possible WABA prioritises message integrity; recall/edit is ...