Skip to main content
Webhooky umožňují SmsManageru ihned tlačit události na váš server, jakmile se něco stane — zpráva je doručena, doručení selže nebo příjemce odpoví. Místo opakovaného dotazování API na stav váš endpoint přijímá HTTP POST požadavek obsahující JSON payload popisující událost. Je to nejefektivnější způsob, jak vybudovat sledování zpráv v reálném čase, automatizovat opakování a zpracovávat příchozí zprávy.

Typy webhooků

SmsManager posílá tři typy webhook událostí:

sentMessage

Spuštěno při každé změně stavu doručení odchozí zprávy. Můžete obdržet více událostí na zprávu, jak se pohybuje doručovací rourou — například nejprve sent, pak delivered. Hodnoty stavu zahrnují: sending, sent, delivered, undelivered, rejected, failed a seen (pouze Viber/WhatsApp).

incomingReplyMessage

Spuštěno, když příjemce přímo odpoví na zprávu, kterou jste poslali. Payload spojuje odpověď s původní odchozí zprávou přes message_id.

incomingMessage

Spuštěno pro nevyžádané příchozí zprávy — zprávy, které dorazí na vaše číslo, ale nejsou přímou odpovědí na žádnou konkrétní odchozí zprávu.

Nastavení webhook URL

Doručování webhook můžete nakonfigurovat dvěma způsoby: 1. Callback na zprávu — nastavte pole callback v těle požadavku zprávy. SmsManager posílá všechny události doručení pro danou zprávu na URL, kterou uvedete.
Callback na zprávu
2. Výchozí pro celý účet — nastavte default_callback_url na svém API klíči přes SmsManager REST API. Všechny zprávy odeslané tímto API klíčem budou používat tuto URL, pokud není přepsána polem callback na jednotlivých požadavcích.
Nastavit výchozí callback URL
Během vývoje použijte výchozí callback URL, abyste zachytili události ze všech testovacích zpráv bez nutnosti nastavovat callback v každém požadavku.

Formát webhook payloadu

SmsManager posílá na vaši callback URL pole objektů událostí. Více událostí doručení může být v jednom POST volaní spojeno. Zde je kompletní příklad payloadu sentMessage pro doručenou SMS:
sentMessage payload
Objekt specifický pro kanál (sms, viber, whatsapp_template nebo whatsapp_body) se liší podle hodnoty gateway:

Pole payload

Když do svého původního požadavku zprávy zahrnete objekt payload, SmsManager jej vrátí zpět v každé webhook události pro tuto zprávu. Použijte to k propojení událostí doručení s vašimi vlastními aplikačními daty — ID objednávek, ID uživatelů, názvy kampaní a tak dále — bez nutnosti dohledávat cokoli podle message_id.
Požadavek zprávy s payload
Ve webhook obdržíte stejný objekt payload:
Webhook událost (výňatek)

Sekvence stavu doručení

Typické úspěšné doručení vyprodukuje dvě webhook události v posloupnosti:
Pokud doručení selže, sekvence končí:
Nebo ihned:
Pro Viber a WhatsApp můžete také obdržet událost seen, když příjemce zprávu otevře.
Váš webhook handler musí být idempotentní — SmsManager může ve vzácných případech doručit stejnou událost vícekrát (síťové opakování). Použijte message_id + result jako klíč pro deduplikaci.

Zpracování příchozích zpráv

incomingReplyMessage — odpověď na jednu z vašich odchozích zpráv:
incomingReplyMessage payload
incomingMessage — nevyžádaná příchozí zpráva, která není spojena s konkrétní odchozí:
incomingMessage payload

Osvědčené postupy

  • Ihned odpovězte HTTP 200. SmsManager považuje jakoukoli ne-2xx odpověď za selhání a zopakuje. Vraťte 200 OK co nejrychleji, pak zpracujte payload asynchronně (například do fronty).
  • Zpracujte duplicitní webhooky. Síťové problémy mohou způsobit doručení stejné události vícekrát. Použijte message_id + result jako složený klíč pro deduplikaci událostí před zpracováním.
  • Logujte surové webhook payloady. Uložte surové JSON tělo vedle svých zpracovaných dat, abyste mohli přehrát události při ladění bez závislosti na oknu opakování SmsManageru.
  • Validujte message_id proti vašim záznamům. Ignorujte události pro message ID, které neroz vyznáváte — to chrání proti podvrženým webhook požadavkům.
  • Používejte HTTPS. Vždy vystavujte svůj webhook endpoint přes HTTPS pro ochranu obsahu zprávy a doručovacích metadat při přenosu.

Kódy result_info

Pole result_info poskytuje čitelný popis výsledku doručení. Sleduje formát [kód] Popis, kde číselný kód je specifický pro operatéra a volitelný. Běžné příklady: Používejte result (strojově čitelný enum) ve vaší aplikační logice a result_info pro logování a podporu.

Co SmsManager POSTůje na váš endpoint

Co SmsManager posílá na vaši callback URL

Další kroky

Odeslat SMS

Zjistěte, jak nastavit pole callback na SMS zprávách.

Odeslat Viber

Porozumějte Viber-specifickým stavům doručení a události seen.

Hromadné odesílání

Propojujte dávkové události doručení pomocí message_id přípon indexu.

Ověření telefonu

Použijte Verify API pro OTP toky s HMAC offline proofy.