Pojem

Webhook

Automatické oznámenie, ktoré jeden systém pošle druhému pri udalosti — napríklad pri vystavení faktúry.

Aktualizované

Čo to znamená

Webhook je automatické oznámenie, ktoré jeden systém pošle druhému v okamihu, keď sa niečo stane: prišla objednávka, platba bola potvrdená, zmenil sa stav zásielky. Prijímajúca strana má na to pripravenú adresu, ktorá správu spracuje.

Od API sa líši smerom. API sa pýtame my, keď niečo potrebujeme; webhook prichádza sám, bez toho, aby sa systém musel opakovane dopytovať.

Webhook väčšinou nenesie celý záznam, len správu, že sa niečo stalo, a identifikátor objednávky či platby. Podrobnosti si prijímajúci systém dotiahne sám cez API, overený API kľúčom. Tak sa nemusí veriť obsahu, ktorý prišiel zvonka, a údaje sa vždy čítajú z pôvodného zdroja.

Ako to funguje v praxi

V praxi ide o najlacnejší spôsob, ako prepojiť e-shop, platobnú bránu a účtovníctvo takmer v reálnom čase. Doklad vznikne vtedy, keď nastane udalosť, a nie pri nočnom prenose.

Pri návrhu treba počítať s tým, že správa môže doraziť dvakrát alebo v inom poradí. Preto sa spracovanie robí idempotentne - druhé doručenie tej istej udalosti nesmie vytvoriť druhý doklad. To patrí do popisu workflow, nie do hlavy programátora.

Platobná brána pošle e-shopu webhook o zaplatení a objednávka sa označí ako uhradená. Brána však peniaze posiela na účet súhrnne a po odpočítaní poplatkov. Pri účtovaní preto porovnávame súčet potvrdených platieb za obdobie s výplatou na bankovom výpise, aby rozdiel tvorili len poplatky, nie chýbajúce platby.

Na čo si dať pozor

Adresa pre webhook je verejná, takže sa musí overovať podpis alebo tajný kľúč - inak môže ktokoľvek poslať falošné potvrdenie platby. A ak prijímajúci systém nebeží, správa sa stratí: dobrá integrácia má aj kontrolu chýbajúcich udalostí.

Vývojár pre istotu ukladá do logov celý obsah prichádzajúcich webhookov vrátane mien, adries a telefónov zákazníkov. Logy sa potom roky nemažú a vidí ich každý, kto má prístup na server. Z technickej pomôcky sa tak stane nekontrolované spracúvanie osobných údajov, ktoré GDPR nedovoľuje.

Potrebujete pojem vysvetliť na vašej konkrétnej situácii? Konzultácie od 55 € / hodina bez DPH, podľa témy a zložitosti.