The delivery engine

Five things happen between your API call and a handset. Four of them are allowed to stop the message, and all five are visible to you afterwards.

  • Direct connections118
  • Median first attempt1.9s
  • Cleared first pass99.4%
  1. 01

    Accepted

    The call lands, the payload is validated, and the message is stamped with the market derived from the destination number rather than from anything you sent.

  2. 02

    Checked

    Consent state, licence status, sender identity registration and the market's own rule set are read in one pass. A failure here returns a refusal, not a queued message.

  3. 03

    Windowed

    If the recipient's local quiet hours are closed the message is held with a release time you can see. Nothing is dropped and nothing is reported as sent.

  4. 04

    Routed

    The primary connection for that market takes it, shaped to a rate the network tolerates. A refusal falls to the second connection, then the third.

  5. 05

    Reconciled

    Carrier receipts, content-class rejections and opt-out replies come back onto the same message record, so one identifier explains the whole life of it.

Three habits that keep routes healthy

Connections in our own name

A reseller hears about a rule change when its own supplier passes it on. We hear it from the network, usually with notice, and the rule set is updated before your traffic meets it.

Failover you can read

Every market lists its primary and two fallbacks, ordered by measured delivery over the last thirty days. When an order changes, the change and its reason appear in your account.

Filtering surfaced early

A template that starts attracting content-class rejections raises an alert inside the hour. Finding it at month end is how a sender identity ends up suspended.

What we refuse to send

A refusal is cheaper than a suspension. The engine returns an error with the rule named, and nothing leaves the platform.

  • Traffic to a market where the licence on file has lapsed or was never supplied
  • A message to a number whose consent record is absent, withdrawn or unevidenced
  • A sender identity that has not been approved for that market, even in a test send
  • Marketing content inside a closed quiet-hours window, unless you tell us to hold it
  • A body missing the opt-out instruction the destination market requires

A refusal, as returned

HTTP 422

{
  "status":  "refused",
  "market":  "SE",
  "rule":    "sender_identity.not_registered",
  "detail":  "Sender 'BRANDNAME' has no approved
              registration in SE. Submitted
              2026-04-11, awaiting network.",
  "action":  "Track it in Compliance Centre,
              or send from an approved identity."
}

Every refusal carries the rule identifier, so the same error can be handled in code rather than read by a person each time.

Bring us a route that keeps failing

Send the message identifier and the market. We will tell you whether it is the content, the identity or the network, usually on the first call.