Use cases

SMS notifications for orders and shipping

Tell customers that their order has arrived, has shipped or is ready for pickup, under your shop name rather than an anonymous number. For WooCommerce there is an official plugin; other shops and your own systems connect through Make, Zapier, n8n or the REST API.

MyShopnow
Your order #1024 has shipped. Track it: tsms.cz/a1b2c3

Shipping update with a tracking link, sent the moment the order status changes.

Which order messages are worth an SMS

An SMS arrives on any phone without an app, which makes it the right channel for the moments when the customer is waiting for news:

  • Order received or payment confirmed, so the customer knows the order went through.
  • Shipped, ideally with the tracking link, and ready for pickup.
  • Cancelled, refunded or payment failed, so nobody waits for a parcel that is not coming.
  • A new order for you: an SMS to your own number with order number, amount and payment method.

Keep the text short. One SMS holds 160 characters of the GSM alphabet, which includes German umlauts and ß; an emoji switches the message to 70 characters per part, and every part is charged. Our guide How many characters fit in an SMS? explains the details.

WooCommerce: official plugin

The free plugin TopSMS – SMS notifications for WooCommerce sends an SMS when an order status changes. You enable each status separately (received, pending payment, processing, completed, cancelled, refunded, failed and custom statuses) and edit its text with macros such as {order_number}, {total} or {shop_name}. Each status is announced once per order, even if the order moves back and forth.

Sending runs in the background via Action Scheduler, so checkout does not wait. Phone numbers are converted to international format according to the billing country, and every message is noted on the order. Installation, templates and download: Integrations: WooCommerce.

Shopware, Shopify, PrestaShop and your own system

The current status of each shop platform is on the integrations page. Wherever there is no ready-made plugin yet, two routes work:

  • Without code: the official TopSMS app for Make, or an HTTP module in Zapier or n8n, triggered by a new order or a status change.
  • With one HTTP request: your shop or ERP calls POST /api/sms/send when the status changes. Use the order ID as the Idempotency-Key so that a retry after a timeout never sends the SMS twice.

Help with the connection is free: write to info@topsms.cz and describe your system.

Delivery reports and failed numbers

Every message has a status: delivered, undelivered or expired. Set a webhook URL on your API key and the report arrives at your server, signed with HMAC, without polling. Messages the network rejects are refunded automatically.

Some German networks report “undelivered” straight away when the handset is switched off. In the account settings you can enable automatic retries (up to 6 attempts within 8 hours); each attempt is charged as a new SMS.

Order and shipping messages are transactional. What German law expects for them, and how they differ from marketing SMS, is covered in SMS, GDPR and § 7 UWG.

Shipping SMS from your own code

One request per message, with the order ID as the idempotency key (example from the documentation):

curl -X POST https://www.topsms.cz/api/sms/send \
  -H "Authorization: Bearer CLIENT_ID:SECRET" \
  -H "Idempotency-Key: order-1024-shipped" \
  -H "Content-Type: application/json" \
  -d '{"to": "+4915112345678", "text": "Your order #1024 has shipped. Track it: tsms.cz/a1b2c3", "from": "MyShop"}'

The same key with the same body returns the original response with the header Idempotent-Replayed: true instead of sending again. The key is valid for 24 hours.

Full API documentation →

Frequently asked questions

Is there a plugin for my shop?

For WooCommerce there is an official free plugin. For Shopware, Shopify, PrestaShop and Magento see the integrations page for the current status; until a plugin is available they connect through Make, Zapier, n8n or the REST API.

Can customers see my shop name as the sender?

Yes. Use your approved sender name of up to 11 characters. Until it is approved, messages are sent as TopSMS. Customers cannot reply to a message sent under a name.

What does an order SMS cost?

€0.084 per SMS to Germany, Austria and the rest of the EU, without a monthly fee. The plugin is free; you pay only for the messages sent from your prepaid credit.

How do I avoid sending the same notification twice?

The WooCommerce plugin announces each status once per order. In your own integration, send the order ID and status as the Idempotency-Key header, and a repeated request returns the original response instead of a second SMS.

Do I learn whether the SMS was delivered?

Yes. Each message has a delivery status that you can query, or a webhook pushes delivered, undelivered or expired to your URL. The WooCommerce plugin writes the result to the order note and its SMS log.

Try it with 10 free SMS

Free account, active as soon as you confirm your mobile number. No credit card, no monthly fee, prepaid credit that never expires.

More use cases