Przejdź do treści

Webhooki

Co się stało, bez pytania.

KRONENWERK wywołuje Twój adres, gdy w księgach zajdzie subskrybowane zdarzenie. Każda dostawa jest podpisana i ponawiana aż do przyjęcia.

Zdarzenie Kiedy jest wysyłane
invoice.issued

Faktura została wystawiona: numer jest zużyty, dokument zarchiwizowany i niezmienny.

invoice.paid

Faktura została w pełni rozliczona — przez płatność, niezależnie od sposobu jej zapisania.

invoice.cancelled

Faktura została anulowana: istnieje dokument korygujący, który w pełni ją znosi. Nic nie jest usuwane.

purchase.recorded

Zarejestrowano fakturę zakupu lub wydatek, z dostawcą, datą i kwotami.

payment.recorded

Zarejestrowano płatność, z kierunkiem, kwotą, dniem i dokumentem, który rozlicza.

bank.transaction.imported

Zaimportowano transakcję bankową; czeka na dopasowanie.

kronenwerk.test

Dostawa testowa uruchamiana przez Ciebie, by sprawdzić własną weryfikację.

Weryfikacja, w całości.

Kolejność ma znaczenie: najpierw znacznik czasu, potem skrót. Odtworzona stara dostawa ma nienaganny skrót i zdradza ją tylko wiek. Porównuj w stałym czasie, na surowych bajtach.

# KRONENWERK-Signature: t=1775462400,v1=9f86d0…
t, v1 = parse(header)                       # t=<unix seconds>, v1=<hex hmac>
if abs(now() - t) > 300: reject()        # replay window, checked first
expected = hmac_sha256(key=endpoint_secret, msg=f"{t}.{raw_body}").hexdigest()
if not constant_time_equals(expected, v1): reject()
accept()                                    # then dedupe on Idempotency-Key
Nagłówek KRONENWERK-Signature: t=1775462400,v1=…
Okno powtórzeń 5 minut
Próby dostarczenia 6

Licz się z duplikatami.

Każda dostawa niesie nagłówek idempotentności z identyfikatorem zdarzenia. Odpowiedź, która do nas nie dotrze, wywoła kolejną próbę z tym samym identyfikatorem — zapamiętaj go, a drugie wejście nic u Ciebie nie zmieni.

Ponowienia

Sześć prób, a potem trafia to do dziennika.

Jeśli twój odbiorca nie odpowie powodzeniem, KRONENWERK ponawia próbę: po trzydziestu sekundach, potem za każdym razem dwa razy dłużej, do sześciu prób. Potem dostawa liczy się jako nieudana i stoi w dzienniku z czasem, statusem i fragmentem odpowiedzi, skąd możesz wysłać ją ręcznie. Nic nie jest ponawiane w nieskończoność.