Message status reference
Every status a message can hold, and what it means for your bill.
Lifecycle
QUEUED ──▶ SUBMITTED ──▶ DELIVERED │ │ │ ├──▶ FAILED (handset unreachable) │ └──▶ EXPIRED (no receipt in 48h) │ ├──▶ REJECTED (network refused) ── refunded └──▶ CANCELLED (you cancelled) ── hold released
| Status | Terminal | Charged | Meaning |
|---|---|---|---|
QUEUED | No | Reserved | Accepted by us, waiting for a worker. Credit is held, not spent. |
SUBMITTED | No | Yes | A network accepted it. This is the billing moment. |
DELIVERED | Yes | Yes | The handset confirmed receipt. |
FAILED | Yes | Yes | Delivery attempted and failed — phone off, out of coverage. |
REJECTED | Yes | No — refunded | Refused outright: invalid number, or the subscriber blocks bulk SMS. |
EXPIRED | Yes | Yes | A network accepted it but never returned a final receipt within 48 hours. Charged, because acceptance is the billing moment and a missing receipt is not evidence the SMS failed. |
CANCELLED | Yes | No — hold released | You cancelled before it was submitted. Nothing was ever charged, so the reservation is simply released. |
DELIVERED, it is ignored rather than re-firing your webhook.FAILED and REJECTED are different
REJECTED means the network would not even try — the number is invalid or blocked. Nothing was spent on your behalf, so you are refunded.
FAILED means it tried and could not deliver. That attempt cost real money, so it is charged. If you see many failures to one number, the number is probably wrong even though it is well-formed.
Voice call status reference
Calls have their own statuses, their own events, and — importantly — a different billing moment. See Voice calls.
QUEUED ──▶ SUBMITTED ──▶ ANSWERED ── charged │ │ │ ├──▶ NO_ANSWER ── released │ ├──▶ BUSY ── released │ └──▶ FAILED ── released │ └──▶ CANCELLED (you cancelled) ── released
| Status | Event | Charged | Meaning |
|---|---|---|---|
QUEUED | — | Reserved | Accepted by us, waiting to dial. Call time is held, not spent. |
SUBMITTED | — | Reserved | Handed to the carrier and ringing. Still held, not yet spent. |
ANSWERED | voice.call.answered | Yes | They picked up and heard the recording. This is the billing moment. |
NO_ANSWER | voice.call.no_answer | No — released | It rang out. Nobody pays for ringing a phone. |
BUSY | voice.call.busy | No — released | Declined, engaged, unreachable or switched off. Carriers do not distinguish these, so neither do we rather than guess. |
FAILED | voice.call.failed | No — released | The call could not be placed at all. |
CANCELLED | voice.call.cancelled | No — released | You cancelled the campaign before this one dialled. |
A call is charged the recording's full length, not the time spent on the line — someone who answers and hangs up after two seconds still costs the whole recording. And if you left retry on, each re-dial is a separate call that is charged again when answered.