Industry
SMS for logistics and delivery
Every handoff in a delivery is a moment someone wants a text. Fire it from your own system the second the status changes, and take the result straight back.
- Transactional sends through the API
- Delivery status pushed back by webhook
- A recipient log for every message
Your parcel from [YOUR STORE] arrives today between 14:00 and 16:00. Follow it here: [LINK]
Sent by API
One per status change
Three messages the scan decides, not the calendar
None of them can wait for somebody to remember. Each one belongs to an event your own system already knows about.
Delivery windows
A two-hour window sent the morning of the drop is what puts somebody behind the door when the van arrives. It goes out per consignment as the route is planned, not as a list at nine.
Pickup-ready alerts
A parcel that reaches the locker or the counter announces itself. The scan changes the status, your system calls the API, and the message leaves in the same breath.
Failed deliveries
When a drop-off fails, a text carrying the next option reschedules it before the customer has to call anyone. A retry is one more status, so it is one more message.
Sent by your own system, not by a person
A delivery update is not a campaign somebody remembers to run. It belongs to one consignment and one moment, so it has to leave from the stack that knows about both: your warehouse system, your routing tool or your order platform calls the transactional endpoint with a number and a body, one message per event, and nothing waits in a queue for approval.
The answer comes back the same way. Delivery webhooks push every status change to your endpoint, so whether the notice arrived is recorded beside the consignment it belongs to instead of in a separate tab nobody opens. What failed is in reporting too, message by message.

From an API key to the first status change
It is one endpoint and one webhook. The rest is deciding which statuses are worth a message.
Create a key for the system that sends
An API key per project, so the depot integration and the customer app are not sharing one credential, and one of them can be revoked without stopping the other.
Fire one message per event
Call the transactional endpoint as the status moves: out for delivery, arriving, delivered, failed. One number, one body, one request, no list to build.
Take the result back on a webhook
Point delivery webhooks at your endpoint and every status change lands in your own system, so a consignment carries whether its notice arrived alongside everything else about it.
Watch the day, not each message
Failures, destinations and the whole day’s sending sit in reporting, with a recipient log to open on the one customer who says nothing ever came.