Integrate order updates with SMS and supported iMessage
Order-update messaging is an integration problem before it's a copywriting problem: the platform that knows the order state (Shopify, WooCommerce, Magento, a custom backend) has to reach the customer's phone reliably, and know whether it did.
The pattern is uniform across stacks: an order-event webhook or hook fires, your handler builds a short message from the order payload, posts it to the SendiMessage API with the order id embedded in the status_callback URL, and delivery events return to mark the notification confirmed on the order. The platform guides linked below show the exact hook for each system.
What this integration enables
Architecture
- Order eventPlatform webhook or hook (paid, fulfilled, delivered)
- Your handlerBuilds the message from the order payload
- SendiMessage APIPOST /send-message with the order id in the status_callback URL
- CustomerSMS, or iMessage on supported lines and destinations
- Webhook eventsDelivery confirmations and replies return; match them by the stored message_handle
Example request
curl -sS https://api.sendimessage.com/v1/send-message \-H "X-API-Key: $SENDIMESSAGE_API_KEY" \-H "X-API-Secret: $SENDIMESSAGE_API_SECRET" \-H "Content-Type: application/json" \-d '{"number": "+15555550123","content": "Your appointment is tomorrow at 10:00 AM."}'# → {# "status": "QUEUED",# "message_handle": "4e828182-a640-483f-bfe9-17ffcaa51d48",# "to": "+14155550123",# "service": null,# "is_outbound": true,# "error_message": null,# "date_sent": null# }
Delivery events and incoming replies
Delivery events let you mark the notification on the order timeline; replies become support conversations tied to the order. Match events back using the message_handle you stored at send time (re-query GET /v2/messages/{message_handle} for authoritative state).
// "outbound" event → your your_store endpoint// Verify the SendiMessage-Signature header (t={timestamp},v1=HMAC-SHA256 of// "{timestamp}.{raw body}", keyed with your webhook secret), then use// GET /v2/messages/{message_handle} for authoritative state and match it to// your order_id in your_store.
Limitations and honest notes
- iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.
- Messages are accepted asynchronously — the API returns status QUEUED and final status arrives via webhook or the message endpoints.
- No official SDK for this ecosystem yet — the example uses plain HTTP against the REST API. Official SDKs are published for JavaScript/TypeScript (npm: sendimessage), Python (PyPI: sendimessage), PHP (Composer: sendimessage/sdk), and Go (github.com/sendimessage/sendimessage-go). Every SDK is dependency-free and covers the full public API surface.
- Send messages only to recipients who expect them. Transactional and operational messaging is the primary use case — unsolicited bulk marketing is not.
Frequently asked questions
Which commerce platforms have guides?
Should order updates use iMessage?
Related integrations
Ready to connect Order Update Messaging?
Request a messaging line and a SendiMessage integration specialist will review your Order Update Messaging workflow and guide the setup.