Skip to Content
Public APITemplate — No Header

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/message

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/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" ] } }
FieldRequiredNotes
phoneNumberyesUse phoneNumber + countryCode OR fullPhoneNumber
typeyesMust be "Template"
template.nameyesThe template code name — find it next to the info icon at Templates → List in the app
template.languageCodeyesMust match the language the template was approved in (e.g. en, en_US, hi, bg)
template.bodyValuesyes (when body has variables)Array of strings, one per {{1}}, {{2}}, … in the body
template.template_categoryoptionalutility, marketing, authentication — see category lock
callbackDataoptionalUp 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." }