Skip to content

Dodawanie i aktywacja webhooka

Jak dodać adres webhooka w aplikacji inFakt i zweryfikować go, żeby zaczął otrzymywać zdarzenia.

Zaktualizowano

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 żądania POST z treścią JSON i odpowiada kodem 200 lub 201.
  • Dostęp do ustawień konta inFakt.

Kroki

  1. Przygotowanie odpowiedzi na weryfikację

    Podczas weryfikacji inFakt wysyła na podany adres żądanie POST z losowym kodem w polu verification_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);
  2. 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.

  3. Weryfikacja adresu

    Weryfikację uruchamia przycisk Zweryfikuj w szczegółach webhooka. Gdy aplikacja odeśle poprawny verification_code, status zmienia się na Aktywny.

  4. 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.

Następne kroki

Type to search…

↑↓ wybór↵ otwórzEsc zamyka