Skip to main content
SmsManager posílá webhook události na váš server jako HTTP POST požadavky, kdykoliv se stav zprávy změní nebo přijde příchozí zpráva. Cílovou URL nakonfigurujete buď na zprávu (přes pole callback) nebo na úrovni účtu s výchozí callback URL. Události jsou doručovány jako JSON pole — SmsManager může více událostí spojit do jednoho POST — takže váš handler musí vždy iterovat přes pole, i když očekáváte pouze jednu událost. Vždy vraťte HTTP 200 pro potvrzení přijetí; pokud je váš server nedostupný, SmsManager může doručení opakovat.
Webhook payloady jsou vždy pole. I doručení jedné události je zabaleno v [...]. Ujistěte se, že váš handler prochází každou položku v poli.

Souhrn webhook událostí


Událost sentMessage

SmsManager posílá událost sentMessage při každé změně stavu odchozí zprávy. Obvykle obdržíte počáteční událost sent nebo sending krátce po API volání a následně finální událost stavu doručení.

Reference polí

string
Jedinečný identifikátor původního API požadavku, který tuto zprávu odeslal.Příklad: "bc36f3d1-d284-463a-921b-a3560c154649"
string
Jedinečný identifikátor této zprávy. Když byla zpráva odeslána přes POST /messages, toto ID má tvar <base_id>-<index_příjemce> (např. e27ff0ac-87b5-4e1d-b644-5fc6029e2a11-0).Příklad: "e27ff0ac-87b5-4e1d-b644-5fc6029e2a11"
string
Kanál, který doručil (nebo se pokoušel doručit) zprávu. Jedna z: sms, viber, whatsapp_text, whatsapp_template, rcs.
integer
Unix timestamp události stavu.Příklad: 1700000000
object
Vlastní objekt payload, který jste připojili k původnímu požadavku zprávy, vrácený nezměněn. Použijte to k propojení události s vašimi vlastními záznamy.Příklad: { "campaign_id": "winter-sale" }
string
Vždy "outgoing" pro události sentMessage.
object
Příjemce této události.
string
Aktuální stav doručení zprávy. Možné hodnoty:
string
Nepovinné — pole může chybět nebo být prázdné. Doplňující informace k výsledku ve formátu [kód] Popis. SmsManager ho vyplňuje u zamítnutých zpráv, například "[307] Insufficient credit". Může obsahovat i chybu od poskytovatele kanálu, například "[131042] There was an error related to your payment method". Úplný seznam hodnot najdete v přehledu chyb.
object
Přítomné, když gateway je sms. Obsahuje detaily fakturace a směrování pro tuto SMS.
object
Přítomné, když gateway je viber. Obsahuje stejná podpole jako objekt sms: sender, country, operator, price_czk, price_eur, count.
object
Přítomné, když gateway je whatsapp_template. Obsahuje stejná podpole jako objekt sms.
object
Přítomné, když gateway je whatsapp_text. Obsahuje stejná podpole jako objekt sms.

Příkladový payload


Událost incomingReplyMessage

SmsManager posílá událost incomingReplyMessage, když příjemce přímo odpoví na zprávu, kterou jste odeslali. Událost obsahuje request_id, message_id a payload vaší původní odchozí zprávy, takže můžete odpověď okamžitě spojit s jejím kontextem.
Objektem params._incoming můžete zprávě při odeslání nastavit automatické odpovědi podle klíčového slova nebo tlačítka a vlastní callback pro její příchozí události. Ten dostává odpovědi, klepnutí na tlačítka WhatsApp a RCS i opt-out klíčová slova navíc k hlavnímu poli callback. Klepnutí na tlačítko nese objekt whatsapp nebo rcs se stisknutým tlačítkem. Postup popisuje návod Automatické odpovědi a příchozí zprávy.

Reference polí

string
request_id původní odchozí zprávy, na kterou tato odpověď reaguje.
string
message_id původní odchozí zprávy, na kterou tato odpověď reaguje.
object
Objekt payload z vaší původní odchozí zprávy, vrácený pro korelaci.
string
Kanál, na kterém odpověď přišla. Jedna z: sms, viber, whatsapp, rcs. Poznámka: pro WhatsApp je hodnota gateway vždy whatsapp — pro příchozí zprávy se nedělí na whatsapp_text nebo whatsapp_template.
integer
Unix timestamp okamžiku, kdy příjemce odpověď odeslal. Pokud tato informace není k dispozici, je to čas, kdy SmsManager odpověď přijal.
string
Vždy "incoming" pro události incomingReplyMessage.
string
Telefonní číslo osoby, která odpověděla. V některých zemích není plně podporováno zasílání alfanumerických odesílatelů.
string
Číslo nebo ID odesílatele, které obdrželo odpověď (vaše virtuální číslo nebo jméno odesílatele).
string
Text odpovědi. Pokud zpráva obsahuje jen médium s popiskem, je zde popisek média.
object
Nepovinné. Příloha odpovědi, například obrázek, dokument nebo sdílená poloha. Posílá se jen tehdy, když zpráva médium obsahuje. Popis polí najdete v sekci Objekt media.

Příkladový payload


Událost incomingMessage

SmsManager posílá událost incomingMessage, když přijde nová příchozí zpráva na jedno z vašich čísel, která není odpovědí na žádnou konkrétní odchozí zprávu — například zákazník píšící přímo na vaše dlouhé číslo nebo krátký kód.

Reference polí

string
Kanál, na kterém zpráva přišla. Jedna z: sms, viber, whatsapp, rcs.
integer
Unix timestamp okamžiku, kdy odesílatel zprávu odeslal.
string
Vždy "incoming" pro události incomingMessage.
string
Telefonní číslo osoby, která zprávu poslala.
string
Vaše číslo nebo ID odesílatele, které zprávu přijalo.
string
Text příchozí zprávy. Pokud zpráva obsahuje jen médium s popiskem, je zde popisek média.
object
Nepovinné. Příloha zprávy, například obrázek, dokument nebo sdílená poloha. Posílá se jen tehdy, když zpráva médium obsahuje. Popis polí najdete v sekci Objekt media.

Příkladový payload


Objekt media

Události incomingReplyMessage a incomingMessage obsahují objekt media, když příchozí zpráva z WhatsAppu nebo RCS nese přílohu. Může jít o obrázek, video, audio, dokument, nálepku, sdílenou polohu nebo kontaktní karty. U souborů SmsManager uloží přílohu na trvalou veřejnou URL v poli url. Pokud se soubor uložit nepodaří, url chybí a místo něj je nastaveno pole error. Ostatní metadata dorazí i tak.

Reference polí

string
Typ přílohy. Jedna z: image, video, audio, document, sticker, location, contacts.
string
Trvalá veřejná URL uloženého souboru. Chybí, pokud se soubor nepodařilo uložit — pak je nastaveno error.
string
MIME typ souboru, jak ho nahlásil kanál.Příklad: "image/jpeg"
string
Původní název souboru (u dokumentů).
string
Popisek odeslaný spolu s médiem. Pokud zpráva nemá text, doručí se popisek také jako body.
integer
Velikost souboru v bajtech, pokud je známa.
boolean
Zda je nálepka animovaná. Pouze u nálepek (sticker).
string
Trvalá veřejná URL uloženého náhledu. Pouze u RCS.
object
Sdílená poloha. Pouze když type je location.
object[]
Sdílené kontaktní karty v podobě, v jaké je poskytl kanál. Pouze když type je contacts.
string
ID média nebo zprávy přidělené poskytovatelem kanálu.
string
Nastaví se místo url, pokud se soubor nepodařilo uložit. Jedna z: download_failed, too_large, no_token.

Příkladový payload s médiem


Konfigurace webhook URL

Webhook URL můžete nastavit na dvou úrovních: 1. Callback na zprávu Zahrňte pole callback v těle požadavku POST /message nebo POST /messages:
Callbacky na zprávu přepisují výchozí na účtu pro tu konkrétní zprávu. 2. Výchozí callback URL na účtu Nastavte záložní URL, která přijímá události pro všechny zprávy, které neurčují vlastní callback. Můžete ji aktualizovat přes SmsManager REST API:
Vždy odpovídejte s HTTP 200 při přijetí webhook události. Pokud váš server vrátí chybový stav nebo je nedostupný, SmsManager může doručení opakovat. Rychlé vrácení 200 (před prováděním pomalého zpracování) udržuje váš webhook endpoint spolehlivý.