Skip to content

Message sending and statuses

Operation results / Sending

status_code and status_description describe the message status during sending and delivery. HTTP 200 confirms that the request was processed; the JSON array contains a result for every message.

POST /rest/messages/sms and POST /rest/messages/mms return an array of message objects.

Field / value Meaning
status_code: QUEUED The message has been accepted into the sending queue.
status_code: REJECTED The message was rejected; status_description explains why.
status_description Description of the current message state, including any rejection reason.
id Message ID for checking subsequent status in history; it can be null for a rejected message.

Processing involves the sending engine and the telecommunications operator. A message can also be rejected during preparation, before it is passed to the operator.

The example shows two results after the API layer accepted the request. The first message was queued, and the second was rejected during preparation.

Response headers
HTTP/1.1 200 OK
Content-Type: application/json
X-Success-Count: 1
X-Error-Count: 1
A queued message and a rejected message
[
{
"id": 123,
"cid": "order-123",
"type": 1,
"recipient": "+48500100200",
"sender": "STORE",
"parts": 1,
"sent_date": "2026-10-12T10:00:00Z",
"status_date": "2026-10-12T10:00:00Z",
"status_code": "QUEUED",
"status_description": "The message has been accepted",
"unicode": false,
"flash": false,
"price": 0.16
},
{
"id": null,
"cid": "order-124",
"type": 1,
"recipient": "+48500100201",
"sender": "STORE",
"parts": null,
"sent_date": null,
"status_date": null,
"status_code": "REJECTED",
"status_description": "Rejected (Missing message content)",
"unicode": false,
"flash": false,
"price": 0
}
]

The example price is illustrative. The actual price depends on the message and the account’s price list.

  1. Check HTTP status and Content-Type, then read status_code for each item.
  2. Save the id of accepted messages. QUEUED confirms queue acceptance; check subsequent status, including delivery, with GET /rest/messages/{ids} or GET /rest/messages.
  3. For REJECTED, read status_description and check the message rejection descriptions. Resolve the cause before retrying.
  4. X-Success-Count counts messages accepted into the queue; X-Error-Count counts rejected messages. When retrieving history, these headers count found and missing IDs regardless of the message state.

If the sending outcome is uncertain, check history first to avoid sending a message again after it was already accepted. Do not classify rejection causes by comparing the exact status_description text.

These descriptions help interpret the rejection reason in status_description and identify what to correct before retrying.

Entries marked as shared SMS validation describe the common SMS engine. The REST schema does not expose binary content or UDH fields.

20 situations

User account does not exist

Check the user associated with the token and whether they belong to the account.

Invalid message type

Use an SMS type supported by the REST API schema.

The message's recipient number is invalid

Correct the recipient number and use international format.

ECO SMS messages can only be sent to standard Polish recipient numbers

Use a standard Polish phone number or choose an appropriate SMS type.

2Way SMS can only be sent to standard Polish recipient numbers

Use a standard Polish phone number for SMS 2Way.

Missing message content

Provide the SMS text or MMS content.

Shared SMS validationLink ↗

The content of the binary message is invalid

Check the binary content. The standard REST schema does not expose a separate binary SMS type.

Shared SMS validationLink ↗

UDH header is invalid

Check the UDH header. The public REST schema does not include a UDH field.

Shared SMS validationLink ↗

Binary message content is too long

Reduce the binary content size. This belongs to shared SMS validation.

The recipient number is currently unsupported

Check whether the recipient destination is supported and included in the account's price list. Contact support if rejection persists.

The scheduled delivery date of the message may be up to 90 days from now

Use a future sending date no more than 90 days from now.

An unknown error occurred

Check message history and the account balance before retrying. Report the event to support if rejection persists.

There are not enough credits in your account to send this message. Please top up your account and try again.

Top up the account, then retry only the rejected messages.

The subaccount limit defined by your account Administrator has been reached. Please contact your account Administrator.

Ask the account administrator to increase the user's limit.

FLASH message cannot contain UNICODE characters

Disable FLASH or use text that does not require Unicode.

The MMS content is too large. Delete oversized attachments.

Reduce the size of the attachments and the whole MMS.

MMS can only be sent to standard Polish recipient numbers

Use a standard Polish phone number for MMS.

User account has not been verified by provider yet

Wait for the operator to verify your account.

The MMS attachement type format is unsupported.

Check base64 encoding, the actual file format and attachment size.

Message limit exceeded for this phone number within the last 60 seconds.

Wait before sending another message to this number; the limit applies to the last 60 seconds.

Message pricing · Cancellation and deletion