Blog
Wystawianie i odbieranie faktur

Faktura korygująca w KSeF: jak ją wystawić

6 min czytania

Faktury wysłanej do KSeF nie da się edytować ani usunąć, więc błąd poprawiasz fakturą korygującą: osobnym plikiem FA(3) z RodzajFaktury = KOR, który wskazuje oryginał. Kwoty na korekcie wpisujesz jako różnicę względem oryginału, nie jako nową wartość.

Zasady wynikają z art. 106j ustawy o VAT i są takie same jak przed KSeF, zmienił się tylko format. Program do fakturowania (Fakturownia, inFakt, wFirma i inne) wypełni większość pól sam po wybraniu opcji „wystaw korektę”. Poniżej pokazujemy, co robi w Twoim imieniu.

Art. 106j ustawy o VAT

Co możesz skorygować, a czego nie

Korektą poprawisz prawie wszystko: kwoty netto, VAT i brutto, ilość, cenę, stawkę VAT, opis towaru lub usługi, datę sprzedaży, nazwę i adres nabywcy. Wyjątkiem jest NIP nabywcy. Jeśli wpisałeś NIP innej firmy, potrzebujesz korekty zerującej i nowej faktury (sekcja niżej).

Korekta kwoty krok po kroku

Przykład: Ania, graficzka na JDG, wystawiła 1 kwietnia 2026 fakturę FV/001/04/2026 na 5 000 zł netto (23% VAT) za identyfikację wizualną. Powinno być 4 500 zł, więc różnica to −500 zł netto.

Krok 1: typ faktury KOR

W XML pole RodzajFaktury ma wartość KOR zamiast VAT.

Krok 2: przyczyna korekty

PrzyczynaKorekty to krótki opis, np. „Błędna cena usługi”. Schemat go nie wymaga, ale urząd skarbowy może poprosić o wyjaśnienie, a kontrahent od razu widzi, o co chodzi.

Krok 3: okres korekty TypKorekty

To pole decyduje, w której deklaracji VAT ujmiesz korektę, więc ma realne skutki podatkowe:

  • 1: korekta skutkuje w dacie ujęcia faktury pierwotnej (wstecz),
  • 2: korekta skutkuje w dacie jej wystawienia (bieżąco),
  • 3: korekta skutkuje w innej dacie, w tym gdy daty różnią się dla poszczególnych pozycji.

Przy prostej korekcie kwoty zwykle wybiera się 2. Większość programów dobiera wartość sama; jeśli Twój tego nie robi, ustal ją z księgową.

Krok 4: odniesienie do oryginału DaneFaKorygowanej

Podajesz datę wystawienia oryginału (DataWystFaKorygowanej), jego numer (NrFaKorygowanej) i informację o numerze KSeF. Tę ostatnią wybierasz dokładnie w jednym z dwóch wariantów:

SytuacjaCo ustawić
Oryginał przeszedł przez KSeFNrKSeF = 1 + pole NrKSeFFaKorygowanej z numerem KSeF oryginału
Oryginał wystawiony przed KSeFNrKSeFN = 1 (bez NrKSeFFaKorygowanej)

Podanie obu pól naraz kończy się odrzuceniem faktury. Numer KSeF ma postać NIP-DATA-XXXXXXXXXXXX-ZZ; kopiuj go, zamiast przepisywać, bo przy literówce system nie powiąże korekty z oryginałem. W przykładzie oryginał przeszedł przez KSeF, więc ustawiamy NrKSeF = 1 i podajemy jego numer.

Krok 5: kwoty jako różnica

To najczęstsza pomyłka przy korektach. Kwoty na korekcie to różnica między tym, co było, a tym, co powinno być:

  • oryginał: 5 000 zł netto, 1 150 zł VAT, 6 150 zł brutto,
  • powinno być: 4 500 zł netto, 1 035 zł VAT, 5 535 zł brutto,
  • na korekcie wpisujesz: −500,00 zł netto, −115,00 zł VAT, −615,00 zł brutto.

Korekta metodą różnicy jest doliczana do oryginału w księgach obu stron. Jeśli wpiszesz 4 500 zamiast −500, faktura w sumie opiewa na 9 500 zł.

Ta sama zasada dotyczy pozycji (FaWiersz): P_11 to różnica, a pola opisowe, jak P_7 (nazwa towaru lub usługi), podajesz w stanie po korekcie. Istnieje też metoda „stan przed/po” z polem StanPrzed (dwa wiersze: dane pierwotne i poprawione). Tu opisujemy prostszą metodę różnicy.

Krok 6: sprawdź plik przed wysyłką

Korekta ma więcej wymaganych pól niż zwykła faktura, więc łatwiej coś przeoczyć. Jeśli Twój program nie waliduje korekt i masz gotowy plik XML, wrzuć go na ksefuj.to, żeby sprawdzić zgodność z wymaganiami MF, w tym spójność pól odniesienia do oryginału.

Korekta do zera, gdy NIP nabywcy jest pomylony

Struktura FA(3) nie pozwala podmienić NIP-u nabywcy w zwykłej korekcie. Musisz wystawić dwa dokumenty:

  1. Korektę zerującą: wszystkie kwoty ze znakiem minus, równe oryginałowi, tak że oryginał plus korekta daje 0 zł.
  2. Nową fakturę z prawidłowym NIP-em i kwotą.

To jedyny scenariusz, w którym potrzebujesz dwóch dokumentów, i żaden program nie zrobi tego jednym kliknięciem. Korekta zerująca nie anuluje faktury: oryginał i korekta zostają w KSeF na zawsze, a ich suma wynosi zero. Jeśli taką fakturę dostałeś od kogoś innego, zobacz co robić z fałszywą fakturą w KSeF.

Korekta faktury sprzed KSeF

Jeśli korygujesz fakturę sprzed 1 kwietnia 2026, w DaneFaKorygowanej ustawiasz NrKSeFN = 1, bo oryginał nie ma numeru KSeF. Sama korekta musi być w FA(3): schemat FA(2) wygasł 31 stycznia 2026 i KSeF nie przyjmie go w żadnej formie, nawet dla faktury z czasów FA(2). Różnice między schematami opisaliśmy w artykule FA(2) vs FA(3).

Przykład XML

Korekta Ani Kowalskiej (FV/001/04/2026, −500 zł netto, 23% VAT):

<?xml version="1.0" encoding="UTF-8"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/">
  <Naglowek>
    <KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
    <WariantFormularza>3</WariantFormularza>
    <DataWytworzeniaFa>2026-04-02T10:00:00Z</DataWytworzeniaFa>
  </Naglowek>
  <Podmiot1>
    <DaneIdentyfikacyjne>
      <NIP>5214567890</NIP>
      <Nazwa>Ania Kowalska Grafika</Nazwa>
    </DaneIdentyfikacyjne>
    <Adres>
      <KodKraju>PL</KodKraju>
      <AdresL1>ul. Kwiatowa 12</AdresL1>
      <AdresL2>00-123 Warszawa</AdresL2>
    </Adres>
  </Podmiot1>
  <Podmiot2>
    <DaneIdentyfikacyjne>
      <NIP>7891234560</NIP>
      <Nazwa>Klient Sp. z o.o.</Nazwa>
    </DaneIdentyfikacyjne>
    <Adres>
      <KodKraju>PL</KodKraju>
      <AdresL1>ul. Handlowa 5</AdresL1>
      <AdresL2>30-002 Kraków</AdresL2>
    </Adres>
    <JST>2</JST>
    <GV>2</GV>
  </Podmiot2>
  <Fa>
    <KodWaluty>PLN</KodWaluty>
    <P_1>2026-04-02</P_1>
    <P_2>FV/001K/04/2026</P_2>
    <P_13_1>-500.00</P_13_1>
    <P_14_1>-115.00</P_14_1>
    <P_15>-615.00</P_15>
    <Adnotacje>
      <P_16>2</P_16>
      <P_17>2</P_17>
      <P_18>2</P_18>
      <P_18A>2</P_18A>
      <Zwolnienie><P_19N>1</P_19N></Zwolnienie>
      <NoweSrodkiTransportu><P_22N>1</P_22N></NoweSrodkiTransportu>
      <P_23>2</P_23>
      <PMarzy><P_PMarzyN>1</P_PMarzyN></PMarzy>
    </Adnotacje>
    <RodzajFaktury>KOR</RodzajFaktury>
    <PrzyczynaKorekty>Błędna cena usługi</PrzyczynaKorekty>
    <TypKorekty>2</TypKorekty>
    <DaneFaKorygowanej>
      <DataWystFaKorygowanej>2026-04-01</DataWystFaKorygowanej>
      <NrFaKorygowanej>FV/001/04/2026</NrFaKorygowanej>
      <NrKSeF>1</NrKSeF>
      <NrKSeFFaKorygowanej>5214567890-20260401-000001000001-49</NrKSeFFaKorygowanej>
    </DaneFaKorygowanej>
    <FaWiersz>
      <NrWierszaFa>1</NrWierszaFa>
      <P_7>Projekt graficzny — identyfikacja wizualna</P_7>
      <P_8B>1</P_8B>
      <P_9A>-500.00</P_9A>
      <P_11>-500.00</P_11>
      <P_12>23</P_12>
    </FaWiersz>
  </Fa>
</Faktura>

W tym pliku liczą się cztery miejsca: RodzajFaktury = KOR, blok DaneFaKorygowanej z odniesieniem do oryginału, ujemne P_13_1, P_14_1 i P_15 (różnica, nie nowa wartość) oraz FaWiersz z ujemnym P_11.

Schemat XSD FA(3) — CRD FAQ MF — KSeF 2.0

Jeśli korekta wraca z błędem, sprawdź najczęstsze błędy walidacji FA(3).