Submit an SMS sending request
Submit an SMS sending request
curl -X POST "https://api.innosms.com/intsms/v2/om/sms/submit" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"sender": "INNOTEST",
"tdFlag": 1,
"message": "Flash sale today only, up to 50 percent off",
"productType": "market",
"phoneNumbers": "+6591234567,+6591234568,+6591234569",
"validityPeriod": "+000001000000000R"
}'Submission processed; the HTTP status is always 200 and the business code distinguishes acceptance from rejection.
{
"msg": "success",
"code": "000000",
"data": {
"messageId": "ORDER-20261112-0002",
"errorPhone": [
"+6591234568"
]
},
"requestId": "REQ-20261112-0002"
}Documented response example from the spec, not a real request result.
Accepts an SMS submission asynchronously. Two authentication modes are supported: Authorization Bearer API Key (recommended), or CheckSum headers (AppID, Nonce, CurTime, CheckSum) when Authorization is absent. An apiKey-level IP whitelist must be configured and the client IP must match. The HTTP status is always 200; the business result is indicated by the six-digit code, where 000000 means accepted.
Use the InnoPaaS AppKey as a Bearer token. Create or manage keys in Console. API key guide
Authorization
Authorizationstring<bearer>requiredHeader Parameters
X-Custom-TraceIdstringoptionalOptional customer trace ID. When provided it is echoed back in the response header and used as the request identifier.
256Body
application/jsonuidstringoptionalMessage ID in your business system (for example an order number), up to 128 characters. Echoed as data.messageId for multi-recipient submissions.
128senderstringoptionalSender ID, up to 20 characters.
20tdFlagintegeroptionalUnsubscribe flag: 1 enabled, 0 or omitted disabled.
messagestringrequiredSMS content, up to 3000 characters.
3000accountNamestringoptionalAccount name. Optional; defaults to the account bound to the API key.
callbackUrlstringoptionalStatus report callback URL.
productTypestringrequiredProduct type. notify = verification and notification SMS; market = marketing SMS. Case-insensitive; any value other than market is treated as notify.
phoneNumbersstringrequiredRecipient phone numbers in international format (country code plus number), separated by commas for multiple recipients.
validityPeriodstringoptionalMessage expiry as a relative time in the format [+-]YYMMDDhhmmss000R.
Response
application/jsonSubmission processed; the HTTP status is always 200 and the business code distinguishes acceptance from rejection.
msgstringoptionalResult description in English.
codestringoptionalSix-digit business code; 000000 means accepted.
dataobjectnulloptionalSubmission data.
requestIdstringoptionalRequest identifier; echoes the X-Custom-TraceId header when provided.
{
"msg": "success",
"code": "000000",
"data": {
"messageId": "ORDER-20261112-0002",
"errorPhone": [
"+6591234568"
]
},
"requestId": "REQ-20261112-0002"
}Documented response example from the spec, not a real request result.