curl -X POST https://api.huduma.cloud/api/v3/outgoings/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "HUDUMA SMS",
"callbackUrl": "https://your-app.example/sms-callbacks",
"envelopes": [
{ "number": "255766298542", "message": "Order #1042 confirmed.", "thirdPartyRef": "order-1042" },
{ "number": "255712345678", "message": "Order #1043 confirmed.", "thirdPartyRef": "order-1043" }
]
}'
{
"status": "202 ACCEPTED",
"code": 202,
"message": "Messages queued",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ7F2A9C41",
"path": "/api/v3/outgoings/send",
"data": {
"balance": 4978,
"outgoings": [
{
"id": 918273645,
"senderId": "HUDUMA SMS",
"recipient": "255766298542",
"message": "Order #1042 confirmed.",
"credits": 1,
"status": "SENT",
"thirdPartyRef": "order-1042"
}
]
}
}
{
"status": "402 PAYMENT REQUIRED",
"code": 402,
"message": "Insufficient credits",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ2B8E1D77",
"path": "/api/v3/outgoings/send",
"errors": ["Balance 3 is below the 12 credits required"]
}
API reference
Send SMS
Queue one or more messages for delivery.
POST
/
api
/
v3
/
outgoings
/
send
curl -X POST https://api.huduma.cloud/api/v3/outgoings/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "HUDUMA SMS",
"callbackUrl": "https://your-app.example/sms-callbacks",
"envelopes": [
{ "number": "255766298542", "message": "Order #1042 confirmed.", "thirdPartyRef": "order-1042" },
{ "number": "255712345678", "message": "Order #1043 confirmed.", "thirdPartyRef": "order-1043" }
]
}'
{
"status": "202 ACCEPTED",
"code": 202,
"message": "Messages queued",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ7F2A9C41",
"path": "/api/v3/outgoings/send",
"data": {
"balance": 4978,
"outgoings": [
{
"id": 918273645,
"senderId": "HUDUMA SMS",
"recipient": "255766298542",
"message": "Order #1042 confirmed.",
"credits": 1,
"status": "SENT",
"thirdPartyRef": "order-1042"
}
]
}
}
{
"status": "402 PAYMENT REQUIRED",
"code": 402,
"message": "Insufficient credits",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ2B8E1D77",
"path": "/api/v3/outgoings/send",
"errors": ["Balance 3 is below the 12 credits required"]
}
Each entry in
envelopes carries its own message text, so a single call can send
different messages to different recipients.
Request
string
required
The approved sender ID recipients will see. Maximum 11 characters. Must be
registered and approved on your account — see Sender IDs.
object[]
required
string
deprecated
Accepted and echoed back for compatibility with the older platform, but nothing
is posted to it. Delivery information is obtained by polling — see
Delivery status. Do not build a flow that waits on it.
Every envelope is charged separately, because each carries its own message. Sending
the same text to 500 recipients costs 500 credits (more if the text spans several
parts) — it is not billed once for a shared body.
Response
integer
Credits remaining after this request.
object[]
curl -X POST https://api.huduma.cloud/api/v3/outgoings/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"senderId": "HUDUMA SMS",
"callbackUrl": "https://your-app.example/sms-callbacks",
"envelopes": [
{ "number": "255766298542", "message": "Order #1042 confirmed.", "thirdPartyRef": "order-1042" },
{ "number": "255712345678", "message": "Order #1043 confirmed.", "thirdPartyRef": "order-1043" }
]
}'
{
"status": "202 ACCEPTED",
"code": 202,
"message": "Messages queued",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ7F2A9C41",
"path": "/api/v3/outgoings/send",
"data": {
"balance": 4978,
"outgoings": [
{
"id": 918273645,
"senderId": "HUDUMA SMS",
"recipient": "255766298542",
"message": "Order #1042 confirmed.",
"credits": 1,
"status": "SENT",
"thirdPartyRef": "order-1042"
}
]
}
}
{
"status": "402 PAYMENT REQUIRED",
"code": 402,
"message": "Insufficient credits",
"timestamp": "2026-08-22T12:00:00Z",
"reqId": "REQ2B8E1D77",
"path": "/api/v3/outgoings/send",
"errors": ["Balance 3 is below the 12 credits required"]
}
⌘I