🇵🇱Poland E-Invoice Errors

Polish KSeF validation errors (BR-PL-xx codes) for Poland's upcoming mandatory B2B e-invoicing via KSeF.

31 errors documented

errorKSEF-440ksefbusinessBLOCKED

KSeF Duplicate Invoice Rejection (HTTP 440)

The KSeF system rejected your invoice because it detected a duplicate submission. KSeF checks the combination of seller NIP, invoice number, and invoice date against all invoices submitted in the last 10 years. If a match is found, the API returns HTTP status 440 and the invoice is not accepted.

infoPL-02CIUS-PL (Poland)countryBLOCKED

Polish invoices should be prepared for KSeF

Polish invoices should be prepared for KSeF. This validation rule ensures Invoice compliance with CIUS-PL (Poland).

errorKSEF-010KSeFcountryBLOCKED

KSeF XML schema validation failed

Invoice XML must conform exactly to the FA schema version (FA/1 or FA/2). Even minor deviations cause rejection.

errorPL-R-003ubl-2.1countryBLOCKED

KSeF submission required

Polish invoices must be submitted to KSeF (Krajowy System e-Faktur).

warningKSEF-009KSeFcountryBLOCKED

Bank account not on VAT white list

For split payment (podzielona płatność) invoices, the seller bank account must be registered on the VAT white list (biała lista VAT).

errorPL-R-004ubl-2.1countryBLOCKED

KSeF session token invalid

KSeF API requires valid authentication token.

errorPL-R-006ubl-2.1countryBLOCKED

Currency must be PLN for KSeF

Invoices to Polish KSeF typically require PLN amounts.

errorKSEF-007KSeFcountryAUTO-FIX

KSeF date format invalid — wrong date or timestamp serialisation

KSEF-007 is raised when a date or timestamp in an FA(2)/FA(3) e-invoice does not match the format the KSeF (Krajowy System e-Faktur) XSD requires. The Polish schema uses two different date types: plain calendar dates such as P_1 (data wystawienia / issue date), P_6 (sale date) and the due date must be xs:date in YYYY-MM-DD form, while DataWytworzeniaFa (the technical document creation timestamp in the header) must be a full xs:dateTime with a UTC time-zone designator. Any other shape — a localised 15.04.2026, a slash date, a two-digit year, a date-only value placed in DataWytworzeniaFa, or a timestamp missing its Z / +02:00 offset — is rejected before the business checks even run.

errorBR-PL-02ksefcountryBLOCKED

Invalid KSeF invoice type

Polish KSeF invoices must use valid invoice type codes.

errorKSEF-002KSeFcountryBLOCKED

Invoice date too old for KSeF

Invoice issue date cannot be more than 30 days before KSeF submission date. Older invoices will be rejected by the system.

errorKSEF-003KSeFcountryBLOCKED

Invoice number sequence gap

Invoice numbers must be sequential without gaps within each calendar year. KSeF rejects invoices with numbering gaps or duplicates.

warningPL-R-007ubl-2.1countryINPUT

Split payment annotation required

High-value Polish invoices may require split payment notation.

errorPL-R-005ubl-2.1countryINPUT

Invalid Polish NIP format

Polish NIP must be 10 digits with valid checksum.

errorKSEF-006KSeFcountryINPUT

Unit code not recognized

Unit of measure must be from Polish classification. Common codes include szt. (piece), kg, m, l, usł. (service).

warningKSEF-008KSeFcountryINPUT

GTU code missing

Certain goods/services require GTU (Grupy Towarów i Usług) classification codes. Required for alcohol (GTU_01), fuel (GTU_02), heating oil (GTU_03), tobacco (GTU_04), and other specific categories.

errorBR-PL-01peppol-bis-3countryINPUT

Polish NIP number required

Polish invoices must include the NIP (tax identification number) for seller and buyer.

errorKSEF-004KSeFcountryINPUT

Currency code invalid

Currency must be a valid ISO 4217 code. Use PLN for domestic invoices.

errorKSEF-001KSeFcountryINPUT

KSeF NIP validation failed — bad format or wrong identifier field

KSEF-001 fires when a Polish tax identification number (NIP) on a KSeF e-invoice is malformed or placed in the wrong identifier element. A NIP must be exactly 10 digits and pass the official weighted check-digit test; the KSeF schema field that carries it (Podmiot1/Podmiot2 → DaneIdentyfikacyjne → NIP) accepts digits only — no PL prefix, no spaces, no dashes. A second, very common variant is putting a domestic NIP in the EU VAT field (NrVatUE) or a generic identifier (NrID) instead of the NIP element, which both fails validation and breaks routing of the invoice to the correct party inside KSeF.

errorKSEF-005KSeFcountryINPUT

KSeF VAT rate invalid — StawkaPodatku not in the Ministry of Finance dictionary

KSEF-005 is raised when a VAT rate or tax category on an FA(2)/FA(3) invoice does not match the values the KSeF schema and the Ministry of Finance dictionary allow. KSeF does not accept arbitrary percentages or free-text descriptions: each line's rate must map to an allowed value (currently 23%, 8%, 5%, 0%) or to one of the markers — zw (exempt), np (out of scope), and the reverse-charge handling — declared through P_12 and consistent with the document totals (P_13_x / P_14_x). A non-dictionary percentage, or a marker inconsistent with the amounts reported for that group, is rejected.

errorKSEF-21178KSeF 2.0countryBLOCKED

KSeF UPO (Urzędowe Poświadczenie Odbioru) not found

You requested the UPO (Urzędowe Poświadczenie Odbioru — the official acceptance confirmation) for a KSeF invoice, but the system could not find a UPO matching the provided criteria. Either the invoice has not yet been assigned a UPO, or the search parameters (referenceNumber, KSeF number, sessionReferenceNumber) do not identify a valid invoice.

errorKSEF-21115ksefbusinessINPUT

KSeF error 21115 — invalid authentication certificate

KSEF-21115 ("Nieprawidłowy certyfikat" / invalid certificate) is a gateway error returned during authentication, before any invoice is processed. The KSeF 2.0 API rejected the certificate presented to establish the session, so the connection is never authorised and no document reaches schema or business validation. It is an integration/credential problem, not a fault in the invoice XML — the same certificate fails for every document until it is corrected.

errorKSEF-21181KSeF 2.0businessBLOCKED

Sellers are not identical for all invoices in a KSeF batch

The KSeF 2.0 API rejected a batch session because at least one invoice inside the batch has a Podmiot1 (issuer) NIP that differs from the others. KSeF requires every invoice in a single batch session to belong to the same seller.

errorKSEF-21180KSeF 2.0countryBLOCKED

KSeF session status does not allow this operation

The KSeF 2.0 API rejected your request because the session referenced by referenceNumber is in a state that does not permit the requested action. Typical example: attempting POST /sessions/online/{ref}/invoices while the session status is 415 (closing) or an already-terminal status such as 445 (no valid invoices). The invoice itself was never processed.

errorKSEF-21177ksefcountryINPUT

Invoice issue date is outside the allowed KSeF window

KSEF-21177 is a server-side validation error returned by the Polish Krajowy System e-Faktur (KSeF) when the FA(2) schema element P_1 (data wystawienia / invoice issue date) is outside the window the platform accepts. KSeF rejects invoices whose issue date is in the future, more than the allowed look-back from the submission timestamp, or in a different reporting period than the one the schema header (DataWytworzeniaFa) declares. The mandate-live behaviour since the February 2026 go-live is strict: the platform returns 400 with this code and the invoice is not stored.

errorKSEF-21182KSeF 2.0countryBLOCKED

KSeF concurrent export limit reached

The KSeF 2.0 API rejected your invoice export request because the authenticated entity already has the maximum number of concurrent exports in flight. The message returned is "Osiągnięto limit trwających eksportów" (concurrent export limit reached).

errorKSEF-21401ksefsyntaxINPUT

Document does not conform to the KSeF XSD schema

KSeF error 21401 ("Dokument nie jest zgodny ze schemÄ… (xsd)") is returned when the invoice payload fails XSD schema validation against the FA schema published by the Polish Ministry of Finance. The API rejects the payload before any business validation runs, so no reference number is issued and the invoice is not stored.

errorKSEF-21121ksefsyntaxBLOCKED

KSeF rate limit reached for this endpoint

KSeF error 21121 ("Limit żądań osiągnięty") is returned when the calling context exceeds the per-endpoint request quota published by the Polish Ministry of Finance. The API rejects the request with HTTP 429 and the client must back off before retrying. Quotas are applied per NIP context, per endpoint, and per time window.

errorKSEF-21301ksefsyntaxBLOCKED

Missing authorization for this KSeF operation

KSeF error 21301 ("Brak autoryzacji") is returned when the authenticated token has no permission to perform the requested action in the current NIP context. The most common trigger is attempting to issue a self-billing invoice (samofakturowanie) without an active samofakturowanie authorization on the seller's NIP, but any missing permission — invoice-write, credentials-manage, tax-representative — surfaces the same code.

errorKSEF-21170ksefsyntaxBLOCKED

KSeF interactive session has expired

KSeF error 21170 ("Sesja interaktywna wygasła") is returned when the caller uses a session token whose validity window has elapsed. Interactive sessions have a bounded lifetime set by the Ministry of Finance (currently 2 hours from InitSession, refreshed by activity), and once expired the session cannot be resumed — a fresh authentication challenge is required.

errorKSEF-21116ksefsyntaxBLOCKED

KSeF authentication token is invalid

KSeF error 21116 ("Nieprawidłowy token") is returned when the AuthorisationToken supplied to /online/Session/InitToken does not match a valid, active token issued for the target NIP context. Unlike 21170 (session expired) or 21302 (token inactive), 21116 means KSeF cannot recognise the token at all — wrong value, wrong environment, or wrong context.

warningPL-01CIUS-PL (Poland)countryBLOCKED

Polish sellers should include NIP number

Polish sellers should include NIP number. This validation rule ensures Invoice compliance with CIUS-PL (Poland).

Handle Poland Errors in Your Pipeline

The compliance engine auto-remediates Poland e-invoicing errors with controlled safety policies.