01Statuses
Six words. No ambiguity.
A message moves forward only, so a report is never contradicted later. Final states stay final.
- queuedAccepted and priced, waiting for a route slot.
- sentHanded to the carrier. Billing happens here.
- deliveredThe handset confirmed receipt.
- failedThe carrier could not deliver. Carrier code attached.
- expiredNot delivered within 48 hours.
- rejectedRefused before sending. Never billed.
02Failure reasons
The carrier's code, and what to do about it.
Raw codes differ by carrier; we map them to a short list of reasons so a report tells you whether to clean the list, change the sender or wait.
| Reason | What happened | Typical share | What to do |
|---|---|---|---|
| Unknown number | The number is not assigned to any subscriber. | 1 to 3% | Remove it. It will never deliver. |
| Absent subscriber | Handset off or out of coverage during validity. | 1 to 2% | Retry in a later campaign. Often delivers next time. |
| Handset or memory full | The phone refused the message. | < 0.5% | Retry later. |
| Blocked by carrier filter | Content or sender flagged by the operator. | varies | Check sender rules for the country; avoid URL shorteners on strict routes. |
| Sender not allowed | Alphanumeric sender on a route that requires numeric or registration. | 0% | Prevented before sending: the platform replaces the sender automatically. |
| Unsupported destination | No route for that prefix. | 0% | Rejected at import, not billed. |
03What you can do with a report
Filter, export, push.
-
Filter anything
Status, destination, sender, campaign, date range, carrier reason. Saved filters for the views you check daily.
-
Export in one click
CSV or JSON, per campaign or across filters. Message id, number, status, reason, timestamps, price.
-
Push it instead
Every transition can be delivered to your endpoint as it happens. Same data, no polling.
-
Campaign funnel
Sent, delivered, failed and pending as counts and shares, with the failure breakdown underneath.
-
List hygiene
One click removes unknown numbers from the source list so the next campaign starts cleaner.
-
90 days of history
Per-message records searchable for 90 days. Campaign summaries kept indefinitely.
04Questions, answered
Report questions, answered.
What does each status mean?
Queued: accepted and priced. Sent: handed to the carrier, billed. Delivered: the handset confirmed receipt. Failed: the carrier could not deliver, with its code. Expired: not delivered within 48 hours. Rejected: refused before sending and not billed.
How fast do statuses update?
Sent is immediate. Delivered usually arrives within seconds; some carriers report in batches and can take minutes. Failed carries the carrier code as soon as we receive it. Webhooks push every transition the moment it happens.
What is a carrier code?
The reason a carrier gives for a failure: absent subscriber, unknown number, handset full, blocked by filter. We keep the raw code and add a plain-English label so you can act on it, for example removing unknown numbers from your list.
How long is history kept?
90 days for per-message records, searchable and exportable. Campaign summaries are kept indefinitely. Export what you need to keep for longer.
Can I export reports?
Yes. CSV or JSON, per campaign or filtered across everything: status, destination, sender, date range. The export contains the message id, number, status, carrier code, timestamps and price.
Do reports cost anything?
No. Reports, exports and webhooks are part of every account. You pay for messages only.
Can I see reports for API traffic and panel campaigns together?
Yes. One account, one report. API messages can carry a campaign tag so they group like a panel campaign.
Why is delivered lower than sent?
Because some handsets are off, some numbers are dead and some carriers filter. The failed breakdown shows which reason dominates. A rising unknown-number share usually means the list needs cleaning, not the route.
05More products
Everything else in the toolkit.
One account, one balance, one rate card. Every product below is included; none costs extra.
See the rate card