REST API vs SMPP: kdy který použít na SMS
Praktické srovnání HTTP REST a SMPP protokolu. Latence, propustnost, integrace. Doporučení podle objemu a use case.
REST API i SMPP umějí to samé — odeslat SMS. Ale každý je vhodný pro jiný typ aplikace. Tento článek vysvětluje rozdíly a kdy zvolit který.
REST API — moderní HTTP přístup
REST API znamená posílat SMS přes obyčejné HTTPS volání. Tak to vypadá v TypeScriptu:
const res = await fetch('https://api.topsms.cz/v1/send', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: '+420608030884',
text: 'Vaše objednávka 12345 byla expedována.',
}),
})
Výhody:
- Snadná integrace — každý jazyk umí HTTP, žádné speciální knihovny nepotřebujete
- Stateless — žádné permanentní spojení k udržování
- Firewall friendly — port 443, jako každý web
- Auto-retry je triviální — vaše aplikace zopakuje request při timeout
- Logging out of the box — všechno vidíte v access logu
Nevýhody:
- Latence ~200-500 ms per request (HTTP roundtrip + auth + queueing)
- Propustnost limitována — typicky 50-200 SMS/sekundu na 1 connection
- Overhead — každá SMS = nový HTTP request s headers
SMPP — průmyslový SMS protokol
SMPP (Short Message Peer-to-Peer) je binární protokol navržený speciálně pro SMS. Funguje na permanentním TCP spojení mezi vaší aplikací a SMSC operátora.
Výhody:
- Velmi nízká latence — typicky 50-150 ms per SMS
- Vysoká propustnost — 500-2000 SMS/sekundu na jedno připojení (TopSMS limit)
- Real-time delivery reporty — server tlačí stav doručení okamžitě, bez polling
- Binární protokol — efektivní bandwidth (kratší pakety než JSON)
- Žádný overhead per zpráva — auth jednou, posíláte ad libitum
Nevýhody:
- Komplexnější — potřebujete SMPP knihovnu (PHP: smpp/smpp, Node: smpp, Python: jasmin-sms)
- Persistentní spojení — musíte řešit reconnect, heartbeat, bind sessions
- Firewall — typicky port 2775, někdy 8775 — IT musí povolit
- Stavová — pokud spojení padne, ztrácíte queue
Decision matrix
| Use case | Doporučený protokol | Důvod |
|---|---|---|
| E-shop notifikace (objednávka, doručení) | REST API | Nízký objem (10-1000/den), jednoduchá integrace |
| OTP / 2FA | REST API | Latence 200-500ms je akceptovatelná, vyšší propustnost není třeba |
| Hromadné kampaně 10k+ příjemců | SMPP (volitelně) | Propustnost rozhoduje; REST API funguje, ale pomaleji |
| Velkoobchod 100k+ SMS/den | SMPP | Latence + propustnost — REST by saturoval HTTP overhead |
| Banky / OTP s SLA < 1 s | SMPP | Garantovaná latence pod 200ms |
| Notifikační systém (logistika, healthcare) | REST API | Pro většinu use cases stačí |
| Interní firemní systém (Pohoda, Helios) | REST API | Plugin / integrace přes HTTP |
Konkrétní čísla z TopSMS
| Metrika | REST API | SMPP |
|---|---|---|
| Latence (send → SMSC) | 200-400 ms | 50-150 ms |
| Max throughput / connection | 100 SMS/s | 1000 SMS/s |
| Delivery reporty | Webhook (push) nebo polling | Real-time (binary) |
| Připojení | HTTPS, stateless | TCP port 2775, persistent |
| Knihovny | curl, fetch, axios | smpp-node, kannel, jsmpp |
| Implementace | 1 hodina | 1-2 dny (první integrace) |
Hybridní přístup
V praxi není volba "buď REST nebo SMPP" exkluzivní. Mnoho velkých firem používá obojí:
- REST API pro běžné notifikace (objednávky, OTP)
- SMPP pro nárazy (kampaně, peak hours)
TopSMS oba protokoly nabízí současně na stejném účtu. Můžete začít s REST a přidat SMPP, až vám REST nestačí.
Doporučení podle objemu
- < 10 000 SMS/měsíc → REST API stačí
- 10 000 - 100 000 SMS/měsíc → REST API funguje; SMPP přínos < 5 % rychlosti
- > 100 000 SMS/měsíc → zvažte SMPP, ušetří 50-70 % času při kampaních
- > 1 milion SMS/měsíc → SMPP nezbytné
Začněte s REST
90 % našich klientů začíná s REST API a nikdy nepotřebuje přejít na SMPP. Integrace zabere hodinu, knihovny existují pro každý jazyk:
- PHP — Guzzle / cURL
- Python — requests
- Node.js — axios / fetch
- Java — OkHttp / RestTemplate
- Go — net/http
- C# — HttpClient
Hotové pluginy pro WooCommerce, Shoptet, PrestaShop, Pohoda — bez programování.
Dokumentace: REST API · SMPP · Pluginy
V dalším článku: jak SMS šetří hodiny v call centru — 5 konkrétních use cases s ROI čísly.