Skip to main content
Webhooky umožňují SmsManageru ihned posílat události na váš server, jakmile se něco stane (zpráva je doručena, doručení selže nebo příjemce odpoví apod.). Místo opakovaného dotazování API na stav, stačí jen připravit endpoint na vaší straně, který přijímá HTTP POST požadavek obsahující JSON payload. 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

Zavoláno při každé změně stavu odchozí zprávy. Můžete obdržet více událostí na zprávu dle průběhu doručení — například nejprve sent, pak delivered. Hodnoty stavu zahrnují: sending, sent, delivered, undelivered, rejected, failed a seen.

incomingReplyMessage

Zavoláno, když příjemce přímo odpoví na zprávu, kterou jste poslali. Odpověď je spárována dle telefonního čísla a obsahuje referenci na původní odchozí zprávou přes message_id. V této notifikaci obdržíte také kompletní původní payload, který jste vyplnili při odeslání zprávy.

incomingMessage

Spuštěno pro příchozí zprávy, které dorazí na vaše číslo, ale nejsou přímou odpovědí na žádnou konkrétní odchozí zprávu. Příchozí zprávy tímto způsobem dorazí pouze na vyhrazené telefonní čísla.

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
URL může obsahovat i např. HTTP BASIC AUTH ve formátu: https://username:password@www.example.com/webcallback?foo=bar 2. Výchozí pro API klíč — 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
Doporučujeme nastavit 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.
Pozor, jednotlivé události webhooku nejsou seřazeny (to znamená, že můžete obdržet nejdříve delivered a až následně sent) a to buď v jednom HTTP volání nebo ve dvou samostatných. Hodnota timestamp vám v tomto případě pomůže určit správné pořadí.

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

incomingReplyMessage — odpověď na jednu z vašich odchozích zpráv:
incomingReplyMessage payload
incomingMessage — 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 doručení opakuje. 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é nezná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 může poskytovat další popis výsledku doručení nebo nedoruč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.

Jak konkrétně vypadá SmsManager POST 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.