Key takeaways
- A message passes through your system, your provider, a route to the operator, the operator’s SMS centre and finally the handset.
- The provider chooses the route; quality differs between routes and between countries.
- The delivery report travels the same way back, and “delivered” does not mean “read”.
- Most failures come from the number, the handset, the sender identity or the content, not from your code.
Step 1: your application makes a request
Your system sends the message to the provider, usually through an HTTPS API or a protocol such as SMPP. The request carries the recipient number, the sender, the text and often an identifier of your own.
A good API checks the request at once and returns a message ID. Keep that ID: it is how you follow the message afterwards and how support finds it.
Step 2: the provider decides how to route it
The provider looks at the destination number, finds the country and the operator, and chooses a route. A provider can have direct connections to operators and routes through partners. Which one is used depends on the country, price, quality and how each route is performing right now.
This choice is invisible to you, but it is where most of the difference between providers sits.
Step 3: the operator network delivers it
The provider hands the message to the operator’s SMS centre (SMSC). The SMSC stores the message and forwards it to the handset when the phone is reachable. If the phone is off or out of coverage, the SMSC tries again for a limited time and then lets the message expire.
Step 4: the delivery report travels back
The operator reports what happened to the provider, and the provider passes it on to you through a webhook or the API. Typical outcomes are delivered, failed and expired.
In general, “delivered” means the operator confirmed that the message reached the handset. It does not mean the person has read it.
Where things usually go wrong
- The number is invalid, no longer in use or in the wrong format
- The phone is switched off or has no coverage until the message expires
- The sender ID is not accepted in that country, or the content is filtered by the operator
- A route is congested or has a fault
- The recipient has blocked the sender
How ZafeConnect fits
ZafeConnect connects to 190+ countries through direct operator connections, complemented by partner direct routes, with intelligent routing and fallback, and reports real operator delivery reports back to you. ZafeConnect reports a message delivery rate of over 98%. That is a reported rate, not a guarantee of delivery.