Webhooky jsou způsob jak získávat upozornění z Retina o různých událostech. Místo periodického stahování informací přes API si můžete vytvořit webhook a my vám na určenou adresu budeme posílat upozornění o změnách v Retinu v reálném čase.
Webhooky jsou prémiová funkcionalita, která je součástí rozšíření „API & Webhooky“. Pokud máte aktivní rozšíření „API & Webhooky“, tak poté naleznete nastavení webhooků v Nastavení > Webhooky, odsud si můžete vytvořit webhook a monitorovat již existující.
Tvorba webhooku
Přidejte si na vašem serveru novou url adresu, kterou použijete pro přijímání webhooků, např. vas-eshop.cz/webhook-retino, což bude adresa, na kterou vám budeme posílat metodou POST ve formátu JSON upozornění na vybrané události.
Poté přejděte do Nastavení > Webhooky a vytvořte nový webhook a vložte tam tuto nově vytvořenou url adresu z vašeho eshopu a vyberte události, na které chcete být informováni. Webhooky se nastavují na úrovni celého účtu a takže nejsou omezeny na jednotlivé uživatele.
Jakmile budete mít nový webhook vytvořený, můžete zkusit odeslat testovací událost, kterou najdete v detailu tohoto nově vytvořeného webhooku. Po odeslání testovací události se vám zobrazí data odeslaná na váš server, stavový kód odpovědi vašeho serveru a data odeslaná vaším serverem jako odpověď. Tyto údaje jsou velmi užitečné při hledání chyb v integraci.
Zabezpečení
Všechny události odeslané naším serverem na URL adresu vašeho webhooku obsahují hlavičku X-Retino-Secret ve tvaru:
X-Retino-Secret: <token>
Ta slouží k authentizaci požadavku. Tuto hlavičku naleznete v nastavení jednolivých webhooků.
Obnovení tajného tokenu
Pokud máte podezření, že váš token byl kompromitován, můžete v nastavení webhooku takový token obnovit. POZOR, po obnovaní tokenu nebude váš server schopný pravděpodobně po dobu, než nasadíte nový token, přijímat webhooky.
Používejte HTTPS
Důrazně doporučujeme, aby komunikace probíhala přes šifrovaný protokol HTTPS. Pokud váš webhook bude pod protokolem HTTP, budeme vás na to upozorňovat v nastavení webhooků.
Typy událostí
Webhook může být navázán na několik typů událostí zároveň. Každá z událostí odesílá informace o případu, produktech, dopravě a přidružené objednávce.
Událost | Vzniká při |
---|---|
ticket.created | vytvoření nového případu |
ticket.updated | jakékoliv úpravě případu |
ticket.product.created | vytvoření nového produktu v případu |
ticket.product.updated | úpravě produktu v případu |
ticket.shipping.created | vytvoření nové dopravy v případu |
ticket.shipping.updated | úpravě dopravy, nebo aktualizaci stavu |
ticket.refund.created | vytvoření refundace |
ticket.refund.updated | úprava refundace |
retino_credit_note.created | vytvoření dobropisu (viz. Webhooky dobropisů) |
Formát dat
Webhook odesílá data ve formátu JSON. Data obsahují informaci o typu události (event_type), čas vytvoření (created_at) a data o případu, kterého se týkají (ticket).
Format dat případu (ticket) je totožný s modelem Ticket z Tickets API. Při každé události se odešle celá instance případu obsahující přidruženou objednávku, produkty a dopravu.
O doručování webhooků
Retino odesílá webhooky http metodou POST ve formátu JSON. Váš server musí být připraven příjmout tato data a odpovědět na ně v časovém limitu 10 sekund odpovědí se stavovým kódem <= 2xx (200, 201, …) (stavové kódy přesměrování 3xx nejsou akceptovány, protože jde o metodu POST).
Úspěsné doručení
Webhook bude úspěšně doručen, pokud:
- váš server odpoví v časovém limitu 10 sekund
- odpověď bude mít úspěšný stavový kód (2xx)
Opakování doručení
Pokud váš server neodpoví do 10 sekund, nebo odpoví chybovým stavovým kódem, doručení webhooku selže. Náš server se bude snažit doručit takový webhook v intervalu 72h s exponenciální prodlevou.
Pokud doručení jednoho webhooku nebude úspěšné ani po 72 hodinách od vytvoření, budeme vás informovat emailem a zašleme vám všechny relevantní informace.
Pokud během 72 hodin selžou všechny webhooky mířící na jeden endpoint, pak takový endpoint deaktivujeme a budeme vás o této události informovat emailem.