Skip to main content
The Message Status endpoint returns delivery status for messages you’ve sent, looked up either by messageId or by mobileNumber with a date range.

Endpoint

Headers

string
required
API key issued by OneXtel, used for authentication.

Choosing a lookup

You must supply either messageId or mobileNumber — never both.
Passing messageId and mobileNumber in the same request returns an error. Supplying neither does too — one of the two is always required.

Request body

The request body is a JSON object.
string
required
Channel to query — whatsapp, rcs, or sms.
Verified against the live API (Aug 2026): when looking up by messageId, the channel value is not validated — whatsapp, wa, sms, an arbitrary string, and omitting the field entirely all return the same record. A message ID is already unique, so the channel adds nothing. It is still worth sending the correct value: it is likely to matter for mobileNumber lookups, where the same number can appear on more than one channel.
integer
Tenant administrator ID. Scopes the query to a tenant.
integer
TUC ID. Scopes the query to a specific account under the tenant.
Verified: taId and tucId are optional. Requests omitting both return the same result, because the API key already identifies the account. They appear in requests from tenant-level callers, where they scope the lookup to one account under the tenant.
array
Array of message IDs to look up. Required unless mobileNumber is supplied, and mutually exclusive with it.
array
Array of recipient mobile numbers, with country code. Required unless messageId is supplied, and mutually exclusive with it.
string
Start of date range, formatted YYYY-MM-DD HH:mm:ss — for example "2025-12-17 00:00:00". Mandatory when querying by mobileNumber.
string
End of date range, formatted YYYY-MM-DD HH:mm:ss — for example "2025-12-17 23:59:59". Mandatory when querying by mobileNumber.
integer
default:"0"
Page number for paginated results.
integer
default:"10"
Number of records to return per page.

Example request

Response

array
One object per matching message.
integer
Total number of records matching the query, across all pages.

Record fields

string
Unique message identifier — the same value returned when the message was sent.
string
Recipient number.
string
Current delivery state.
string
Outcome code. 000 is delivered; anything else is a failure reason — see SMS error codes.
string
Human-readable description of failedErrorCode.
integer
Timestamp in epoch milliseconds at which the platform received the status.
integer
Credits consumed by the message.
integer
Whether a button in the message was clicked.
integer
Whether a tracked URL in the message was clicked.
string
Custom reference set on the original send, echoed back. customParam1 through customParam5.
failedErrorCode here is the same code set as the SMS error codes table, despite the field name — it carries 000 on success too, not only on failure.

Errors

An invalid or missing API key returns HTTP 400 with the body: