Send a message
/api/v1/sms/messages
Sends one SMS using one of your approved templates.
Request
curl -X POST https://api.splashifypro.com/api/v1/sms/messages \
-H "Authorization: Bearer sms_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"to": "9876543210",
"dlt_template_id": "1234567890123456789",
"variables": ["482913", "10"]
}'Response
{
"success": true,
"accepted": true,
"message_id": "0f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
"status": "sent",
"parts": 1,
"unicode": false,
"charged": 0.18,
"balance_after": 1250.32
}A rejected message returns 200
This surprises people, so it is worth stating plainly.
If the request was well-formed and we processed it, the status is 200 even
when the network refused the message. accepted is false and message
explains it.
Why not 4xx
A 4xx would tell your code it sent a bad request, when what actually happened may be a
configuration problem on our side that your retry logic cannot fix. Retrying a well-formed request
against a problem that is not yours just produces load. Branch on accepted.
{
"success": false,
"accepted": false,
"message_id": "0f1c2d3e-...",
"status": "rejected",
"message": "That mobile number does not look valid. Check it and try again.",
"charged": 0
}A message that is not accepted is never charged, and the text says so where the cause was not yours.
When the request itself fails
Other refusals arrive as 400 with a specific message: a template not yet
approved, a sender ID not yet approved, or a DLT chain not yet verified. Each
names what to fix, and none of them is retryable until you fix it.
Sending to a list
There is no bulk endpoint yet. Send one request per recipient, and:
- Keep to the rate limit. A
429means slow down, not fail. - Store every
message_id. Reconciling a campaign without them is guesswork. - Check your balance first with
GET /balance, rather than finding out halfway through.
Accepted is not delivered
The response tells you the network took the message. Whether it reached a handset comes later, through Message status or a delivery webhook.