Integracja danych z Fakturowni za pomocą webhooków

Utworzono: 2015-07-15
Ostatnia aktualizacja: 2025-03-14
Liczba odwiedzin posta: 9117

Webhooki to - obok interfejsu programistycznego API - mechanizm pozwalający na komunikację w czasie rzeczywistym pomiędzy serwerami. Przeznaczony jest głównie dla deweloperów i zaawansowanych Użytkowników. W tym artykule wskażemy, gdzie w Fakturowni dostępna jest opcja konfiguracji webhooków.
 

Instrukcja

Dowiedz się, jak skorzystać z tej funkcji, korzystając z interaktywnego przewodnika.

Czym są webhooki?


Webhooki stanowią mechanizm, który umożliwia jednemu systemowi powiadamianie innego systemu o określonych zdarzeniach w czasie rzeczywistym. Webhooki działają na zasadzie automatycznego wysyłania HTTP POST lub GET żądania do określonego adresu URL, gdy w systemie źródłowym wydarzy się coś istotnego. Webhooki są często używane w aplikacjach webowych do synchronizacji danych między różnymi usługami i systemami.
 

Gdzie skonfigurować webhooki w Fakturowni?


Aby mieć możliwość skonfigurowania webhooków:
.

  1. przejdź do zakładki Ustawienia > Ustawienia konta > Integracja

    Ustawienia konta w aplikacji Fakturownia z zaznaczoną opcją 'Integracja' oraz nazwą konta w systemie.

  2. następnie na liście znajdź sekcję Webhooki
    Ekran ustawień integracji w aplikacji Fakturownia z widocznymi polami do konfiguracji webhooków, logowania oraz integracji z Sugesterem.
     
  3. w dedykowanych polach uzupełnij dane dotyczące webhooków; 
    Ekran konfiguracji webhooków w aplikacji Fakturownia, z trzema typami webhooków: client:create, client:destroy, client:update oraz przyciskiem zapisz.
     
  4. zatwierdź zmiany w ramach konta przyciskiem Zapisz na dole strony. 


Zastosowanie webhooków zmniejsza obciążenie serwera aplikacji, ponieważ potrzebne informacje są automatycznie wysyłane w chwili, kiedy wystąpi określone zdarzenie. Nie ma więc konieczności odpytywania intefejsu API, czy zaszły jakiekolwiek zmiany. Powiadomienia o zdarzeniach są otrzymywane dokładnie w momencie ich zaistnienia, bez konieczności zbyt częstego odpytywania aplikacji.

Webhook posiada:

  • typ, który określa, kiedy webhook ma zostać wysłany (po stworzeniu/zaktualizowaniu/usunięciu klienta);

  • URL, czyli adres URL, pod który wysyłany jest webhook;

  • API token, czyli token uwierzytelniający, który użytkownik może dodać do webhooka i który będzie widoczny pod kluczem 'Api_token'.


Webhook to POST wysyłany na wskazany URL. Struktura musi odpowiadać danym, które mają być przekazywane.

Aby komunikować zmiany w zakresie klientów prześlij odpowiedni POST, np: 

{
client_id: <unikalne ID reprezentujące klienta w bazie Fakturowni>,
client: { <słownik reprezentujący klienta w Fakturowni> },
app_name: 'fakturownia',
api_token: <api_token wpisany w webhooku przez uzytkownika>,
locale: I18n.locale (np. 'pl')
}

 

Faktury


Przykładowy request wysyłany przy utworzeniu faktury:

{
  "id": 111,
  "deal": {
    "name": "Chleb",
    "description": "razowy",
    "price": "12.3",
    "paid": false,
    "url": "https://test.fakturownia.net/f/06-2022/123,
    "date": "2022-07-26",
    "invoice_no": "61/2022",
    "kind": "vat",
    "status": "issued",
    "currency": "PLN",
    "external_ids": {
      "fakturownia": 111
    },
    "client": {
      "name": "Edward",
      "tax_no": "",
      "first_name": "",
      "last_name": "",
      "bank_account": "",
      "bank_account_id": null,
      "register_number": "",
      "skip_webhooks": true,
      "external_ids": {
        "fakturownia": 111
      }
    },
    "skip_webhooks": true
  },
  "app_name": "fakturownia",
  "api_token": "",
  "locale": "pl"
}

Klienci 


Przykładowy request wysyłany przy utworzeniu klienta:

{
  "client": {
    "id": 111,
    "name": "Edward",
    "tax_no": "",
    "post_code": "",
    "city": "",
    "street": "",
    "first_name": "",
    "country": "",
    "email": "",
    "phone": "",
    "www": "",
    "fax": "",
    "street_no": null,
    "kind": "buyer",
    "bank": "",
    "bank_account": "",
    "bank_account_id": null,
    "shortcut": "Edek",
    "note": "",
    "last_name": "",
    "deleted": false,
    "discount": null,
    "payment_to_kind": "",
    "use_delivery_address": false,
    "delivery_address": "",
    "company": true,
    "mobile_phone": "",
    "register_number": "",
    "external_id": "",
    "external_ids": {
      "fakturownia": 111
    },
    "buyer": {},
    "skip_webhooks": true
  },
  "app_name": "fakturownia",
  "api_token": "",
  "locale": "pl"
}


Produkty


Przykładowy request wysyłany przy utworzeniu produktu:
{
  "product": {
    "id": 111,
    "name": "Chleb",
    "code": "",
    "price_net": "10.0",
    "tax": "5",
    "price_gross": "10.5",
    "currency": "PLN",
    "description": "",
    "stock_level": "0.0",
    "disabled": false,
    "external_ids": {
      "fakturownia": 111
    },
    "category_name": null,
    "skip_webhooks": true
  },
  "app_name": "fakturownia",
  "api_token": "",
  "locale": "pl"
}

Sprawdź działanie systemu korzystając z interaktywnej instrukcji

Interaktywny przewodnik poprowadzi Cię krok po kroku na rzeczywistych ekranach Fakturowni, umożliwiając łatwe zrozumienie i wykonanie potrzebnych działań.

Kliknij Start aby rozpocząć, a następnie klikaj w niebieskie pola, lub użyj strzałek w prawym dolnym rogu do nawigowania po instrukcji.


Sprawdź również: 
Konfiguracja i sprzedaż produktów i usług online

Jak wystawić Zamówienie za pomocą żądania API?
Automatyczna fiskalizacja paragonów po utworzeniu przez API
Własne role - dostęp do opcji webhooki
Integracja API co to jest?



Powrót


Komentarze

Avatar sugester medium
wmajchrzak
Dzień dobry.

Czy po wywołaniu Requestu fakturownia oczekuje jakiejś konkretnej odpowiedzi np. Header 200 OK? Zastanawiam się co w przypadku gdy na naszym serwerze pojawi się np. błąd lub zabraknie komunikacji. Czy fakturownia będzie ponawiać ten request do czasu aż dostanie prawidłową odpowiedź?

2019-06-28 09:36


piotr.wajs
piotr.wajs
Odpowiedź główna   Dzień dobry,

dziękuję za zgłoszenie.
Skieruje Pana zapytanie do programistów. Jak tylko otrzymam odpowiedź przekażę ją niezwłocznie.
Pozdrawiam,
Piotr

2019-08-21 16:57


Avatar sugester medium
anonim
czy oznacanie fv jako opłacona, powoduje wysłanie webhook?

2022-08-03 17:22


piotr.wajs
piotr.wajs
Odpowiedź główna   Dzień dobry, 
jak tylko otrzymam informacje od programistów, przekażę ją Państwu. 

2022-08-04 11:06


Avatar sugester medium
anonim
czy można dodac kwotę netto tam?

2022-09-30 14:07


Avatar sugester medium
Bartłomiej Paczek
Dzień dobry,
odnośnie Pana ostatniej odpowiedzi. Gdzie można dodać kod pozwalający na dodanie nowych pól, jako przesyłanych w trakcie wywołania webhooka?

2023-10-18 22:58


Avatar sugester medium
Dominik
Czy webhooki przekazują też informacje o fakturach kosztowych?

2024-06-24 18:41


Kacper_Seta
Kacper_Seta
Odpowiedź główna   Dzień dobry,
nie, dokumenty po stronie Wydatków i dokumenty magazynowe nie wywołują webhooków. Webhooki przekazują informacje o dokumentach przychodowych.

Pozdrawiam,
Kacper

2024-06-25 09:10


Avatar sugester medium
Klak
Czy planujecie rozszerzenie webhookow do pozostałych typów dokumentów? To dość ograniczona lista

2024-09-18 11:58


lukaszs
lukaszs
Odpowiedź główna   Dzień dobry,
dziękuję za przekazaną sugestie. Przekażę ją do działu rozwoju produktu.
Rozszerzenie webhookow do pozostałych typów dokumentów zostanie zgłoszone na kolejkę zadań do realizacji w przyszłości.

W przypadku pytań pozostaję do dyspozycji.

Pozdrawiam,
Łukasz

2024-09-19 09:34


Dodaj komentarz