Integracja danych z Fakturowni za pomocą webhooków
Ostatnia aktualizacja: 2024-09-19
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.
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:
.
- przejdź do zakładki Ustawienia > Ustawienia konta > Integracja;
- następnie na liście znajdź sekcję Webhooki;
- w dedykowanych polach uzupełnij dane dotyczące webhooków;
- 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" }
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ż:
Powrót
Komentarze
wmajchrzak
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
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
anonim
2022-08-03 17:22
piotr.wajs
jak tylko otrzymam informacje od programistów, przekażę ją Państwu.
2022-08-04 11:06
anonim
2022-09-30 14:07
Bartłomiej Paczek
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
Dominik
2024-06-24 18:41
Kacper_Seta
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
Klak
2024-09-18 11:58
lukaszs
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