Automatyczne fakturowanie w n8n po opłaceniu zamówienia

Po zaksięgowaniu płatności sklep wywołuje webhook, a n8n sprawdza, czy zamówienie jest naprawdę opłacone i nie ma jeszcze faktury. Potem wywołuje API fakturowania i zapisuje numer faktury w zamówieniu. Wystarczy sześć nodów i workflow do obsługi błędów, a poranne przepisywanie zamówień znika na dobre.

Dane sprawdzone:

Werdykt w skrócie

Sam workflow jest prosty. Przed stratami chronią dwa zabezpieczenia wokół niego: wystawiaj fakturę tylko po potwierdzonej płatności i nigdy dwa razy do tego samego zamówienia. Zbuduj je najpierw, a reszta to już zwykłe łączenie systemów.

Automatyczne fakturowanie w n8n po opłaceniu zamówienia
KrokNode n8nCo robi
WyzwalaczWebhookOdbiera ze sklepu zdarzenie o opłaceniu zamówienia przez HTTPS, z włączoną weryfikacją podpisu
WeryfikacjaIFPrzepuszcza dalej tylko potwierdzone płatności, a oczekujące i autoryzowane zatrzymuje
DeduplikacjaHTTP RequestOdczytuje rekord zamówienia i przerywa, jeśli ma on już zapisany numer faktury
Przygotowanie danychEdit Fields (Set)Mapuje pozycje, stawkę VAT, dane nabywcy i datę płatności na format wymagany przez API
WystawienieHTTP RequestWysyła fakturę do API, które przekazuje ją też do KSeF, i odczytuje numer oraz link do dokumentu
Zapis zwrotnyHTTP RequestZapisuje numer faktury w zamówieniu, żeby przy następnym przebiegu deduplikacja go zobaczyła
Obsługa awariiError TriggerWyłapuje nieudany przebieg i powiadamia człowieka, zamiast po cichu pominąć zamówienie

Co byśmy wybrali, scenariusz po scenariuszu

  • 1. Zarejestruj webhook

    Dodaj node Webhook, skopiuj jego produkcyjny URL i zarejestruj go w sklepie jako adres powiadomień o opłaconych zamówieniach. Włącz weryfikację podpisu i odrzucaj wszystko, co jej nie przejdzie. Endpoint jest publiczny, więc każde żądanie traktuj jak wrogie, dopóki nie sprawdzisz podpisu.

  • 2. Przepuszczaj tylko potwierdzone płatności

    Node IF, który sprawdza status płatności, jest najważniejszy w całym workflow. Płatność autoryzowana to jeszcze nie opłacona, a oczekująca tym bardziej. Faktura wystawiona przy którymkolwiek z tych statusów oznacza korektę, którą zrobisz ręcznie.

  • 3. Zadbaj o idempotentność

    Odczytaj zamówienie i przerwij, jeśli ma już numer faktury. Nadawcy webhooków ponawiają wysyłkę, a bez tego zabezpieczenia ponowienie wystawi drugą fakturę do tego samego zamówienia. Ten błąd wychodzi zwykle dopiero przy zamknięciu miesiąca.

  • 4. Starannie zmapuj dane

    W nodzie Set przypisujesz stawki VAT, opisy pozycji i dane nabywcy do pól, których oczekuje API fakturowania. Przy polskich fakturach trafia tu też NIP nabywcy, a pomyłki nie poprawisz edycją, tylko korektą.

  • 5. Wystaw fakturę i zapisz jej numer

    Wyślij żądanie do API nodem HTTP Request, odczytaj zwrócony numer faktury i zapisz go w zamówieniu. Od tego zapisu zależy krok 3 przy kolejnym przebiegu, więc nie jest opcjonalny.

  • 6. Wyłapuj awarie

    Workflow z Error Triggerem, który wysyła wiadomość na kanał czytany przez kogoś z zespołu, zamienia cichą awarię w pięciominutową naprawę. Bez niego pierwszym sygnałem problemu jest księgowa, która pyta, gdzie się podział styczeń.

To automatyzacja, którą budujemy najczęściej, i ta, która najbardziej zaskakuje klientów, bo pracy, którą zastępuje, nie widać, dopóki się jej nie policzy. Ktoś co rano otwiera panel sklepu, przegląda opłacone zamówienia i przepisuje je do systemu fakturowego. Przy dwóch minutach na zamówienie dwadzieścia zamówień to czterdzieści minut. Dzieje się to każdego dnia roboczego, to najnudniejsze zajęcie w całym zespole, a błędów jest tyle, ile można się spodziewać po czterdziestu minutach przepisywania liczb.

O tym, czy ten workflow pomaga, czy szkodzi, decydują dwie rzeczy i żadną z nich nie jest integracja z API. Pierwsza to sprawdzenie płatności: dokument wystawiony przy płatności autoryzowanej, ale jeszcze niepobranej, wymaga korekty, a korekty kosztują więcej, niż automatyzacja zaoszczędziła. Druga to idempotentność. Nadawcy webhooków ponawiają wysyłkę po przekroczeniu limitu czasu, a workflow, który wystawia fakturę przy każdym dostarczeniu zdarzenia, a nie raz na zamówienie, będzie po cichu dublował dokumenty, dopóki ktoś nie zauważy tego przy zamknięciu miesiąca. Każde z tych zabezpieczeń to jeden node. Nie ma w nich nic efektownego, ale bez nich workflow narobi bałaganu. O wyborze platformy pisaliśmy w Make vs n8n vs Zapier, a szersze wdrożenia opisuje strona automatyzacji procesów.

KSeF: faktury w Krajowym Systemie e-Faktur

Od 2026 roku faktury między firmami wystawia się w Polsce w KSeF, czyli Krajowym Systemie e-Faktur Ministerstwa Finansów. Faktura ma postać pliku XML według wzoru FA(3), a system nadaje jej numer KSeF. Terminy według oficjalnego serwisu KSeF:

  • 1 lutego 2026: obowiązek wystawiania faktur w KSeF dla firm, których sprzedaż w 2024 roku przekroczyła 200 mln zł (z VAT), oraz obowiązek odbierania faktur w KSeF dla wszystkich;
  • 1 kwietnia 2026: obowiązek wystawiania dla pozostałych firm;
  • do 31 grudnia 2026: poza KSeF mogą jeszcze fakturować firmy, których sprzedaż udokumentowana fakturami nie przekracza 10 000 zł brutto miesięcznie; do tej daty można też wystawiać faktury z kas rejestrujących;
  • 1 stycznia 2027: KSeF obejmuje także najmniejsze firmy i zaczynają obowiązywać kary za błędy w KSeF, odroczone do tej daty.

Faktury dla konsumentów można wystawiać w KSeF, ale nie trzeba. Sklep, który sprzedaje głównie osobom prywatnym, wysyła więc przez system przede wszystkim faktury do zamówień firmowych, z NIP-em nabywcy.

W tym workflow KSeF nie zmienia łańcucha nodów, tylko krok wystawienia. Node HTTP Request wysyła fakturę do API Fakturowni z parametrem gov_save_and_send, a Fakturownia, po autoryzacji KSeF w jej ustawieniach, przekazuje dokument do systemu. Faktura jest wystawiona w dniu przesłania do KSeF, ale numer KSeF (gov_id) nie wraca od razu: API odpowiada najpierw statusem processing, a numer pojawia się po przetworzeniu. Dlatego zapisujemy go w zamówieniu w drugim, krótkim workflow, który odbiera webhook Fakturowni wysyłany po nadaniu numeru. Statusy błędów, takie jak send_error czy duplicate_error, trafiają do tego samego Error Triggera co pozostałe awarie. Przed uruchomieniem produkcyjnym warto przetestować całość w trybie DEMO Fakturowni, który łączy się z przedprodukcyjnym środowiskiem KSeF.

Przy KSeF oba opisane wyżej zabezpieczenia ważą jeszcze więcej. Faktury przyjętej przez system nie da się już edytować ani usunąć, zostaje tylko korekta. KSeF nie sprawdza też danych kontrahenta: fakturę z błędnym NIP-em przyjmie, a naprawa oznacza korektę do zera i nową fakturę dla właściwego nabywcy. Gdy faktura nie trafi do KSeF od razu, na przykład przez brak połączenia, przepisy dopuszczają tryb offline24: dokument dosyła się do systemu najpóźniej następnego dnia roboczego po wystawieniu. Fakturownia oznacza takie faktury statusem offline, więc warto kierować je do tego samego powiadomienia co błędy, żeby ktoś dopilnował terminu.

Źródła

Częste pytania

Z jakimi systemami fakturowymi to zadziała?

Z każdym, który ma REST API do wystawiania faktur, a więc także z polskimi systemami, o które klienci pytają najczęściej, w tym z Fakturownią. Łańcuch nodów się nie zmienia; dla każdego dostawcy inne jest tylko mapowanie danych w nodzie Set.

Co chroni przed wystawieniem dwóch faktur do jednego zamówienia?

Krok deduplikacji. Przed wystawieniem workflow odczytuje zamówienie i przerywa, jeśli jest już na nim numer faktury. Nadawcy webhooków ponawiają wysyłkę po przekroczeniu limitu czasu, więc bez tego sprawdzenia ponowienie tworzy zdublowany dokument.

Czy to zadziała z Baselinkerem albo WooCommerce?

Tak, oba mogą być źródłem zdarzenia o opłaceniu. Udostępniają dane zamówień i potrafią wywołać webhook, więc wyzwalacz i zapis zwrotny dopasowujemy do systemu, który stoi przed fakturowaniem. Część workflow odpowiedzialna za fakturę się nie zmienia.

Co się dzieje, gdy API fakturowania nie odpowiada?

Przebieg kończy się błędem, a workflow z Error Triggerem powiadamia człowieka. Celowo nie ponawiamy na ślepo wywołań API fakturowania, bo częściowo wykonane wystawienie jest gorsze niż opóźnione. Gdy API znowu działa, ponawia człowiek.

Czy mogę to uruchomić na n8n Cloud zamiast na własnym serwerze?

Tak, workflow jest identyczny. Różni się sposób rozliczenia i miejsce przechowywania danych: własny serwer oznacza stały koszt infrastruktury, a chmura opłatę za wykonania i mniej pracy przy utrzymaniu.

Który proces kosztuje Cię najwięcej?

Trzydzieści minut, bezpłatnie. Wychodzisz z konkretnym planem naprawy i kwotą, jaką ten proces kosztuje. Plan zostaje u Ciebie, nawet jeśli wdrożysz go bez nas.

Zamów bezpłatny audyt