Webhooki konfiguruje się w aplikacji inFakt, a nie przez API. Nowy webhook zaczyna działać dopiero po weryfikacji adresu.
Wymagania
- Publiczny adres
https://w aplikacji integratora, który przyjmuje żądaniaPOSTz treścią JSON i odpowiada kodem200lub201. - Dostęp do ustawień konta inFakt.
Kroki
Przygotowanie odpowiedzi na weryfikację
Podczas weryfikacji inFakt wysyła na podany adres żądanie
POSTz losowym kodem w poluverification_code. Aplikacja musi odesłać ten sam kod w odpowiedzi:import express from "express"; const app = express(); app.post("/webhooks/infakt", express.json(), (req, res) => { if (req.body.verification_code) { return res.status(200).json({ verification_code: req.body.verification_code }); } // Tu obsłuż zwykłe zdarzenia (req.body.event, req.body.resource). res.sendStatus(200); }); app.listen(3000);Dodanie webhooka
Webhook dodaje się w aplikacji inFakt, w Ustawienia → Inne opcje → Webhooki, przyciskiem Dodaj nowy webhook. Formularz zawiera pola:
- Adres URL: adres endpointu w aplikacji integratora.
- Opis: nazwa, która ułatwi rozpoznanie webhooka.
- Zawartość danych: pełne dane albo dane bez informacji poufnych (bez numeru faktury i kwot).
- Zdarzenia: zdarzenia, o których webhook ma powiadamiać.
Przycisk Utwórz webhook zapisuje webhook ze statusem Do weryfikacji.
Weryfikacja adresu
Weryfikację uruchamia przycisk Zweryfikuj w szczegółach webhooka. Gdy aplikacja odeśle poprawny
verification_code, status zmienia się na Aktywny.Zapisanie sekretu
Sekretny klucz HMAC ze szczegółów webhooka zapisuje się w zmiennej środowiskowej aplikacji, np.
INFAKT_WEBHOOK_SECRET. Klucz służy do weryfikacji podpisu.
Weryfikacja
Webhook ma status Aktywny. Po wystawieniu testowej faktury w sandboxie, przy zaznaczonym zdarzeniu draft_invoice_created, endpoint otrzymuje zdarzenie z polem "event": {"name": "draft_invoice_created", ...}.
Gdy weryfikacja się nie powiedzie, należy sprawdzić, czy adres jest publicznie dostępny, ma ważny certyfikat HTTPS i odsyła kod w polu verification_code.