Send Template Message — No Header
Send an approved WhatsApp template that has only a body (no header section) and optionally uses body variables. This is the simplest template shape and the right starting point if you’re new to template sends.
Template messages can be sent at any time — they are not bound to the 24-hour customer service window like free-form messages.
Endpoint
POST https://apis.splashifypro.com/api/v1/public/messageHeaders
| Header | Value |
|---|---|
Authorization | Basic YOUR_API_KEY |
Content-Type | application/json |
Request body
{
"phoneNumber": "9999999999",
"callbackData": "order_12345",
"type": "Template",
"template": {
"name": "template_name_here",
"languageCode": "en",
"bodyValues": [
"body_variable_value_1",
"body_variable_value_n"
]
}
}| Field | Required | Notes |
|---|---|---|
phoneNumber | yes | Use phoneNumber + countryCode OR fullPhoneNumber |
type | yes | Must be "Template" |
template.name | yes | The template code name — find it next to the info icon at Templates → List in the app |
template.languageCode | yes | Must match the language the template was approved in (e.g. en, en_US, hi, bg) |
template.bodyValues | yes (when body has variables) | Array of strings, one per {{1}}, {{2}}, … in the body |
template.template_category | optional | utility, marketing, authentication — see category lock |
callbackData | optional | Up to 512 chars, echoed in webhooks |
Example
curl -X POST https://apis.splashifypro.com/api/v1/public/message \
-H "Authorization: Basic YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "9999999999",
"callbackData": "some text here",
"type": "Template",
"template": {
"name": "template_name_here",
"languageCode": "en",
"bodyValues": [
"body_variable_value_1",
"body_variable_value_n"
]
}
}'Successful response — 201 Created
{
"result": true,
"message": "Message created successfully",
"id": "8d620ba1-640f-42ee-a8dd-15363422144b"
}Protect against template recategorisation
Meta periodically recategorises Utility templates as Marketing. Marketing messages are 5–6× more expensive and have noticeably lower delivery rates (50–70%). Pass template_category to lock the send to a category — if Meta has silently re-categorised, the API returns an error instead of a surprise marketing-priced send.
{
"phoneNumber": "9999999999",
"type": "Template",
"template": {
"name": "order_confirmation",
"languageCode": "en",
"template_category": "utility",
"bodyValues": ["John", "ORD-1234"]
}
}If the template’s current category does not match:
{
"result": false,
"message": "Message not sent. Template category mismatch: Expected 'utility', but received 'MARKETING'. Please update the request to match the approved template category."
}