API & integrations
Integrations and plugins
For WooCommerce and Shopware 6 there are official plugins. Make, Zapier, n8n and CSV import connect without programming, and for everything else there is the REST API with examples in six languages. We help with the connection free of charge.
What is ready and how to connect
| System | Status | How to connect |
|---|---|---|
| WooCommerce (WordPress) | ready | Official plugin, installation from a ZIP in two minutes. The plugin is awaiting approval on WordPress.org. |
| Shopware 6 (6.6, 6.7) | new | Plugin, installation from a ZIP in the Administration. Version 1.0.0, not yet in the Shopware Store. |
| Make | ready | Official TopSMS app for Make: modules Send an SMS, Send Bulk SMS, Get a Message Status, Get Credit Balance, Watch Delivery Reports. No code. |
| Zapier, n8n | ready | An HTTP module calls our REST API, see below. No code. |
| Claude, Cursor, AI agents | ready | MCP server topsms-mcp: your AI assistant sends an SMS and checks delivery status and credit. |
| PHP applications | ready | Library composer require topsms/topsms-php (GitHub): sending, status and webhooks. |
| Shopify, PrestaShop, Magento | via API | Make/Zapier or the REST API; one-off campaigns via a CSV export of contacts. |
| ERP, CRM, accounting | via API / CSV | REST API (a single HTTP request) or a regular CSV export and bulk sending. |
| Fakturoid, iDoklad | Czech market | SMS invoice reminders for overdue invoices, account connected in the dashboard (Czech). |
| Shoptet | Czech market | TopSMS add-on in preparation in the Shoptet partner programme (Czech). |
| SMPP | on request | For very high volumes, we set up the connection on request. |
Is your system missing? Write to info@topsms.cz, describe what you use and we will suggest the simplest route. We add further connectors according to customer demand.
WooCommerce: official plugin
TopSMS – SMS notifications for WooCommerce is the official TopSMS plugin for WordPress and WooCommerce. Your customer receives an SMS when their order is received, shipped or cancelled, and you receive an SMS about every new order. No programming: install the ZIP, paste your API key and switch on the order statuses that should trigger an SMS.
What the plugin does
- SMS to the customer on an order-status change. Received, pending payment, processing, completed (handed to the carrier), cancelled, refunded, failed payment and custom statuses. You enable each status separately and edit its text. Each status is announced once per order, even if the order moves back and forth between statuses.
- SMS to the owner about a new order. Order number, amount, customer name and payment method right after checkout.
- Templates with macros. Order number, name, amount with currency, status, payment and shipping method, date, shop name and address.
- Custom sender. A Sender ID approved for your TopSMS account, otherwise the default sender TopSMS.
- Phone numbers done right. Numbers entered as “608 123 456”, “0905 123 456” or “00420…” are converted to international format according to the billing country.
- Checkout does not wait. Sending runs in the background via Action Scheduler, which ships with WooCommerce.
- Overview of every message. An order note (including any gateway error) and a log of recent messages under WooCommerce → SMS log. The log cleans itself up after a configurable period.
- Test right in the settings. Buttons “Verify connection” and “Send test SMS”.
- Supports High-Performance Order Storage (HPOS), the classic and the block checkout. Czech localisation included.
Installation and setup in two minutes
- Download the plugin ZIP (version 1.0.2, 37 kB).
- In WordPress open Plugins → Add New → Upload Plugin, choose the ZIP and activate the plugin. WooCommerce must be active.
- In the TopSMS dashboard, API section, create an API key with the
sendandreadpermissions. The account is free; you pay only for sent SMS. - Open WooCommerce → Settings → TopSMS, paste the key in the form
clientId:secretand click Verify connection. You will see your credit balance. - Switch on the order statuses that should trigger an SMS (the defaults are “processing” and “completed”) and adjust the texts if you like.
- Optionally enable the new-order SMS to your own number and send yourself a test SMS.
The plugin is heading for the WordPress.org catalogue; until it passes review, install it from the ZIP above. Updates will be published on this page.
Templates and macros
Default text for the “processing” status:
{shop_name}: dekujeme, prijali jsme vasi objednavku {order_number} ({total}) a pripravujeme ji k odeslani.{order_number}order number{first_name},{last_name}first and last name from the billing address{total}total amount including the shop currency, e.g. €129.00{status}name of the order status{payment_method},{shipping_method}payment and shipping method{order_date}order date{shop_name},{site_url}shop name and address
A message without accented characters holds 160 characters per SMS, a message with accents (Unicode) 70 characters. Longer text is split into several parts and each is charged separately, which is why the default templates are kept short.
Custom sender and price
Your customer sees the name of your shop as the sender (3 to 11 characters, no accents). You request a Sender ID in the dashboard; operators approve new senders in batches, usually about once a month, so allow roughly 3 weeks. Until approval, leave the field empty and the default sender TopSMS is used.
The plugin is free and has no monthly fee. You pay only for the SMS sent from the credit of your TopSMS account according to the price list; a test SMS is charged like any other.
For developers
- Requirements: WordPress 6.5+, WooCommerce 8.0+, PHP 7.4+. Licence GPLv2 or later.
- Sending via
as_enqueue_async_action; without Action Scheduler the message is sent synchronously. - Filters
topsms_wc_recipient_phone,topsms_wc_message_textandtopsms_wc_should_send(recipient, text, suppressing a message), actiontopsms_wc_sms_sentafter every attempt. - Gateway errors also go to WooCommerce → Status → Logs (source
topsms). - The plugin calls the REST API endpoints
/api/sms/sendand/api/credit. It transmits the recipient's phone number, the message text, the Sender ID and the shop address, nothing else. - Don't want the plugin? See the snippet for
functions.phpbelow.
Download
topsms-sms-for-woocommerce-1.0.2.zip (37 kB), released 8 November 2026, tested with WordPress 7.1 and WooCommerce 11.1.
Changes in 1.0.2: German translation (de_DE), including the default SMS templates. Version 1.0.0 was the first release: customer notifications by order status, owner SMS about a new order, templates with macros, Sender ID, number normalisation, background sending, log, test button, Czech translation.
Ran into a problem? Write to info@topsms.cz or open a ticket in the dashboard; we help with the setup free of charge.
WooCommerce without the plugin
A short piece of code in the functions.php of your child theme is enough; it calls our REST API when an order is completed:
add_action('woocommerce_order_status_completed', function ($order_id) {
$order = wc_get_order($order_id);
$phone = str_replace(' ', '', $order->get_billing_phone()); // idealne +420...
wp_remote_post('https://www.topsms.cz/api/sms/send', array(
'headers' => array(
'Authorization' => 'Bearer VAS_CLIENT_ID:VAS_SECRET',
'Content-Type' => 'application/json',
),
'body' => wp_json_encode(array(
'to' => $phone,
'text' => 'Objednavka c. ' . $order->get_order_number() . ' byla vyrizena.',
'from' => 'SenderID',
)),
));
});- You create the API key in the dashboard under API access
- The same principle works for other order statuses, for example
woocommerce_order_status_processing - We adapt the snippet for you free of charge, just write to us
Shopware 6: plugin
TopSMS – SMS für Shopware is our plugin for Shopware 6.6 and 6.7. Your customer receives an SMS when the order is received and when the order, delivery or payment status changes, and you receive an SMS about every new order. Version 1.0.0 is not yet in the Shopware Store; you install it from the ZIP below.
What the plugin does
- SMS to the customer. Order states open (right after checkout), in progress, completed and cancelled; delivery states shipped and partially shipped, with the tracking code; payment state paid. You switch on each event separately and edit its text. Each event is sent at most once per order.
- SMS to the owner about a new order. Order number, amount and customer name right after checkout.
- Phone numbers done right. The number from the billing address is converted to international format according to the billing country (Germany, Austria, Switzerland, Czech Republic, Slovakia and others): “0151 2345678” in a German order becomes
+491512345678. - Checkout does not wait. Sending runs in the background via the Shopware message queue. Temporary gateway errors are retried, and an
Idempotency-Keyprevents a duplicate SMS. - Overview of every message. The result is written to the Shopware log and to the order custom field “Last SMS”. A test mode renders and logs the texts without sending anything.
- Every setting can differ per sales channel. Settings and help texts in German and English.
Shopware: installation and setup
- Download TopSmsShopware-1.0.0.zip (version 1.0.0, 29 kB, released 7 November 2026).
- In the Shopware Administration open Extensions → My extensions → Upload extension, choose the ZIP, then click Install and Activate.
- In the TopSMS dashboard, API section, create an API key with the
sendandreadpermissions. - Open the plugin configuration (… → Configure), enter the API Client ID and the API Secret, optionally your sender name, switch on the events that should trigger an SMS and adjust the texts. With test mode you can check the texts first without sending.
- Make sure the Shopware message queue is processed (a
messenger:consumeworker or the admin worker), as for Shopware e-mails.
Version 1.0.0 has no “Test connection” button in the Administration yet. The connection is checked with the API route POST /api/_action/topsms/test, which returns your credit balance; the README in the ZIP shows the call. Questions: info@topsms.cz.
Shopware: templates and placeholders
Default text for “delivery shipped” (the defaults are in German; you can change them per sales channel):
{shopName}: Ihre Bestellung {orderNumber} wurde versandt. Sendungsnummer: {trackingCode}{orderNumber}order number{firstName},{lastName}first and last name from the billing address{amountTotal},{currency}order total and currency code, e.g. 49,90 EUR{shopName}shop name from the Shopware basic information{trackingCode}tracking code of the delivery; without one, the sentence containing it is left out
For every message the plugin transmits the recipient's phone number, the message text and the sender name to TopSMS, nothing else. The plugin is free (MIT licence); you pay only for the SMS sent, according to the price list.
Make, Zapier and n8n without programming
Make: we have an official app. Add it to your account with one click via this link, enter the Client ID and Secret from the dashboard (API keys) in the connection and use the Send an SMS module in your scenario (or Send Bulk SMS for up to 500 numbers). The Watch Delivery Reports module starts a scenario when a message is delivered or fails: paste its webhook URL in the dashboard next to the API key. Get a Message Status, Get Credit Balance and Make an API Call for any endpoint are available as well.
Zapier and n8n (and Make without our app): an HTTP module is enough. On an event in your system (new order, status change, overdue invoice) it calls our endpoint:
POST https://www.topsms.cz/api/sms/send
Authorization: Bearer VAS_CLIENT_ID:VAS_SECRET
Content-Type: application/json
{
"to": "+420601234567",
"text": "Vase objednavka #1024 je na ceste",
"from": "SenderID"
}- Send the phone number in international format (E.164, e.g.
+49…); a number without a country code is treated as Czech - You get the delivery status via a webhook or by querying the message status
- One-off and marketing messages need no automation: export your contacts to CSV and send a bulk campaign in TopSMS
Webhooks and Verify API
Webhooks push the delivery report of every message to your URL (delivered, undelivered, expired) with an HMAC signature, so you do not have to poll the status. The webhook URL is set per API key in the dashboard. Payload, signature verification and retries are described in the documentation under Webhooks.
Verify API sends and checks one-time verification codes (OTP) for login, registration or order confirmation in two calls, including validity, attempt limits and rate limiting per number. Details under Verify API in the documentation.
Czech market: Shoptet, Fakturoid, iDoklad
For the Czech market we are preparing a TopSMS add-on for Shoptet in the Shoptet partner programme (page in Czech); until its release, Shoptet connects via Make or the REST API.
The Czech accounting tools Fakturoid and iDoklad connect directly: you link the account in the dashboard and overdue invoices trigger an automatic SMS reminder (page in Czech).
ERP, CRM, accounting and other shops
For ERP, CRM and accounting systems and for shop platforms without a plugin (Shopify, PrestaShop, Magento) two routes work in practice: a regular CSV export of the relevant records (overdue invoices, orders, appointments) followed by bulk sending with variables (invoice number, amount), or connecting the system directly to the REST API. Sending an SMS is a single HTTP request; any system that can call a web address can do it.
- CSV export and bulk sending: no changes to your system
- REST API: one POST request, examples for curl, PHP, Python, Node.js, C# and Java
- Describe your system at info@topsms.cz and we will suggest the simplest route
10 test SMS to start, no credit card and no monthly fee.