Odrzucona faktura, korekta i korekta do zera w KSeF: co zrobić w każdym przypadku
Faktura odrzucona przez KSeF (kod 450, 440), błąd w przyjętej fakturze, zły NIP nabywcy, faktura z dwóch systemów naraz. Jak rozpoznać sytuację, co zrobić i jak integracja Base, sklepu i ERP ma to obsłużyć bez dubli.
W KSeF są trzy sytuacje, które w sklepie i w Base wyglądają podobnie („faktura jest zła”), a technicznie i podatkowo są czymś zupełnie innym:
- KSeF odrzucił fakturę. Nie dostała numeru KSeF. Formalnie nie istnieje.
- KSeF przyjął fakturę, ale jest w niej błąd. Ma numer KSeF. Zostaje korekta.
- KSeF przyjął fakturę na złego nabywcę. Ma numer KSeF i trafiła do firmy, która nie powinna jej dostać. Zostaje korekta do zera i nowa faktura.
Większość problemów po wdrożeniu bierze się z pomylenia tych trzech przypadków: ktoś wystawia korektę do faktury, która nie istnieje, albo wysyła drugi raz fakturę, która już ma numer KSeF.
Decyzje podatkowe (kiedy korekta, kiedy nowa faktura, w którym okresie je wykazać) należą do Twojej księgowej. Tu opisujemy, jak rozpoznać sytuację i jak system ma ją obsłużyć.
Jedna tabela, która porządkuje temat
| Sytuacja | Numer KSeF? | Co robisz | Czego nie robisz |
|---|---|---|---|
| Odrzucona, błąd danych lub struktury (np. kod 450) | nie | poprawiasz dane, wysyłasz ponownie | nie wystawiasz korekty |
| Odrzucona jako duplikat (kod 440) | jest, z wcześniejszej wysyłki | odczytujesz numer KSeF i wiążesz z fakturą | nie wysyłasz ponownie pod innym numerem |
| Przyjęta, błąd w kwocie, ilości, stawce, adresie | tak | faktura korygująca z numerem KSeF faktury pierwotnej | nie wystawiasz nowej faktury obok |
| Przyjęta, błędny NIP nabywcy | tak | korekta do zera + nowa faktura na właściwy NIP | nie poprawiasz samego NIP-u korektą |
| Przyjęta, sprzedaż nie doszła do skutku | tak | korekta do zera | nie „usuwasz” faktury, bo się nie da |
| Ta sama sprzedaż ma dwie faktury (np. Base i ERP) | tak, obie | korekta jednej z nich, sposób ustala księgowa | nie zostawiasz obu „bo się wyrówna” |
Dokument jako maszyna stanów
Integracja, która ma to obsłużyć, musi trzymać stan faktury, a nie tylko „wysłana / niewysłana”. Kliknij scenariusz i zobacz, przez które stany przechodzi faktura i co integracja zapisuje w logu:
Diagram stanów: Szkic → Walidacja → Wysłana → Przyjęta (dalej Korygowana albo Wyzerowana i Nowa faktura). Z Wysłanej: W kolejce (timeout, awaria), Odrzucona (kod błędu, wraca do Szkicu), Duplikat 440 (prowadzi do Przyjętej).
Dwie reguły z tego diagramu ratują najwięcej nerwów:
- „W kolejce” to nie „odrzucona”. Timeout albo przerwa w KSeF to stan przejściowy. Integracja nie może w tym czasie uznać, że faktury nie ma, i wystawić nowej pod innym numerem.
- Przyjęta faktura jest tylko do odczytu. Każda zmiana po nadaniu numeru KSeF to nowy dokument (korekta), a nie edycja starego.
Faktura odrzucona: kod 450 i spółka
KSeF sprawdza plik pod kątem struktury FA(3) i reguł logicznych. Najczęstsze powody odrzucenia w e-commerce:
- NIP nabywcy niepoprawny. Literówka w koszyku, NIP z kreskami w złym miejscu, numer VAT UE wpisany w pole NIP.
- Znaki spoza dozwolonych. Emoji w nazwie firmy z Allegro, niełamliwe spacje skopiowane ze strony, spacja w numerze rachunku.
- Brak wymaganego pola albo pole w złym formacie, np. data, waluta, kod kraju.
- Brak uprawnień po stronie wysyłającego: token wygasł albo nie ma uprawnienia do wystawiania faktur dla tego NIP-u.
Odrzucona faktura nie dostała numeru KSeF, więc korekty do niej się nie wystawia. Poprawiasz dane i wysyłasz ponownie. Jeśli faktura była wystawiona w trybie offline, pilnuj terminu dosłania (w trybie offline24 to następny dzień roboczy). Odrzucenie nie zatrzymuje tego zegara.
Co powinna robić integracja:
- walidować przed wysyłką: suma kontrolna NIP-u, dozwolone znaki, obowiązkowe pola. Taniej odrzucić fakturę u siebie niż dostać 450,
- pokazywać odrzucenie człowiekowi: konkretny komunikat przy zamówieniu w Base, nie wpis w logu, którego nikt nie czyta,
- nie zmieniać numeru faktury przy ponownej wysyłce po poprawie, chyba że księgowa zdecyduje inaczej.
Duplikat: kod 440
KSeF rozpoznaje duplikat po numerze faktury. Kod 440 zwykle znaczy, że faktura z tym numerem już jest w KSeF: poprzednia wysyłka przeszła, ale odpowiedź nie dotarła (timeout, restart serwera, przerwane połączenie).
To najczęstszy błąd w integracjach, które ponawiają wysyłkę „na ślepo”. Poprawna reakcja:
- Nie wysyłaj faktury ponownie pod nowym numerem.
- Pobierz z KSeF numer i status istniejącej faktury.
- Zwiąż numer KSeF z fakturą w ERP lub Base i oznacz ją jako przyjętą.
Drugi powód kodu 440: dwa systemy albo dwa konta wysyłają faktury z tą samą numeracją dla jednego NIP-u. Wtedy problemem jest konfiguracja serii, nie sama wysyłka.
Korekta: faktura przyjęta, błąd w treści
Zła cena, ilość, stawka VAT, zwrot części zamówienia, rabat po sprzedaży. Faktura ma numer KSeF, więc zostaje faktura korygująca, która też idzie do KSeF i wskazuje numer KSeF faktury korygowanej.
Technicznie ważne:
- korekta powstaje w systemie, który wystawił fakturę. Faktura z ERP, korekta z ERP. Zwrot obsłużony w Base musi trafić do ERP jako podstawa korekty, a nie skończyć się korektą wystawioną w Base,
- korekty nie wystawisz do faktury bez numeru KSeF. Faktura z trybu offline musi najpierw zostać przyjęta,
- poprawek nie zrobi już nabywca. Przy fakturach w KSeF błędy danych poprawia sprzedawca fakturą korygującą. Jeśli Twój dział obsługi klienta odpowiadał dotąd „proszę wystawić notę korygującą”, ten proces trzeba zmienić razem z księgową.
Korekta do zera: dwie sytuacje, nie więcej
Korekta do zera zeruje wszystkie kwoty faktury. W e-commerce ma sens w dwóch przypadkach.
1. Sprzedaż nie doszła do skutku. Faktura w KSeF, klient anuluje przed wysyłką albo zamówienie było testowe. Korekta do zera zamyka sprawę.
2. Zły nabywca, najczęściej błędny NIP. Tu KSeF zmienił zasady. Faktura z błędnym NIP-em po przetworzeniu trafia do firmy, która ma ten NIP. Ministerstwo Finansów wskazuje, że wtedy trzeba wystawić korektę do zera i nową fakturę na właściwego nabywcę. Dyrektor KIS potwierdził to w interpretacji z 23 czerwca 2026 r. (0113-KDIPT1-2.4012.434.2026.1.AJB). W którym okresie wykazać oba dokumenty, ustala księgowa.
Typowe źródła tego błędu w sprzedaży internetowej:
- kupujący na Allegro wpisał NIP innej firmy z grupy albo z literówką, która przeszła walidację sumy kontrolnej,
- zamówienie z jednego konta Base przypisane do niewłaściwej spółki i faktura poszła ze złego NIP-u sprzedawcy (to samo rozwiązanie, tylko po drugiej stronie),
- integracja dopasowała kontrahenta w ERP po nazwie, a nie po NIP-ie.
Czego nie robić: nie używaj korekty do zera jako „gumki” do błędów w cenie czy ilości przy właściwym nabywcy. Sekwencja faktura, korekta do zera, nowa faktura przy tym samym kliencie wygląda jak ukrywanie zmian i budzi pytania. Do zwykłych błędów służy zwykła korekta.
Dwie faktury do jednej sprzedaży
Najczęstszy dubel w e-commerce: Base wystawia fakturę automatyczną akcją, a ERP wystawia swoją po imporcie zamówienia. Obie trafiają do KSeF, obie są ważne. Jedną trzeba skorygować, a sposób ustala księgowa.
Lepiej do tego nie dopuścić: jedną sprzedaż wystawia jeden system. Jeśli faktury powstają w ERP, wystawianie w Base jest wyłączone dla tych kanałów, a integracja sprawdza przed wystawieniem, czy zamówienie nie ma już dokumentu (klucz idempotencji: numer zamówienia + kanał).
Co integracja musi przenosić z powrotem
Do zamówienia w Base, sklepie lub na marketplace wraca nie tylko numer KSeF:
- status: przyjęta, odrzucona (z komunikatem), w kolejce,
- numer KSeF i data przyjęcia,
- numery korekt powiązane z zamówieniem i zwrotem,
- informacja „do decyzji”, gdy sytuacji nie da się rozstrzygnąć automatem, np. zwrot do faktury, która wciąż czeka w kolejce.
Bez tego obsługa klienta nie wie, co odpowiedzieć na „gdzie moja korekta”, a księgowa szuka dokumentów w trzech systemach.
Uprawnienia i bezpieczeństwo
- token KSeF z uprawnieniem tylko do tego, czego integracja potrzebuje, trzymany w sejfie sekretów, nie w pliku konfiguracyjnym,
- osobne uprawnienia na środowisko testowe i produkcyjne,
- log operacji: kto wystawił korektę, do której faktury, z jakiego powodu. Przy korekcie do zera powód jest obowiązkowy,
- korekty do zera tylko dla wybranych ról. To dokument, który zeruje przychód, nie przycisk dla każdego.
Monitoring
- alert przy każdym odrzuceniu (450) z komunikatem i numerem zamówienia,
- alert, gdy faktura wisi „w kolejce” dłużej niż ustalony próg, zwłaszcza przy fakturach z trybu offline (termin dosłania),
- dzienne rozliczenie: sprzedaż w kanałach, faktury w ERP lub Base, faktury przyjęte w KSeF. Trzy liczby powinny się zgadzać,
- licznik korekt do zera w tygodniu. Nagły wzrost to sygnał, że coś się rozjechało w danych nabywców albo w przypisaniu spółek.
Co przetestować przed startem
- Faktura z błędnym NIP-em nabywcy: walidacja blokuje ją przed wysyłką.
- Faktura z niedozwolonym znakiem w nazwie: odrzucenie widoczne przy zamówieniu w Base z czytelnym komunikatem.
- Timeout przy wysyłce, potem ponowienie: KSeF zwraca 440, integracja pobiera numer, nie powstaje druga faktura.
- Zwrot jednej pozycji: korekta z systemu, który wystawił fakturę, numer korekty w zamówieniu.
- Anulowanie po fakturze: korekta do zera, status zamówienia w Base i na Allegro zaktualizowany.
- Zły NIP nabywcy po przyjęciu: korekta do zera i nowa faktura, obie powiązane z jednym zamówieniem.
- Zamówienie, do którego Base i ERP próbują wystawić fakturę: druga próba zablokowana.
Powiązane
- Pakiety wdrożenia KSeF
- Korekty, zwroty i faktury zakupowe w KSeF
- Integracja KSeF: architektura, idempotencja, tryb offline
- KSeF w Base: natywny moduł czy integracja z ERP
- KSeF w Subiekcie GT i nexo przy sprzedaży przez Base
Opisz, gdzie dziś wystawiasz faktury i jak obsługujesz zwroty. Odpowiemy, co da się ustawić w Base lub ERP, a co wymaga integracji.
Maszyna stanów · kliknij scenariusz
Przewiń diagram w bok →
$ wybierz scenariusz powyżej
Co dalej
Rozpoznajesz problem? Sprawdźmy Wasz przepływ danych.
Audyt konta BaseLinker i wymiany danych z partnerami: 2 500 - 6 000 zł. Wynik to konkretny dokument z rekomendacją architektury i orientacyjnym kosztem kolejnego etapu. Bez zobowiązania kontynuacji u nas.