CHECK-KSEF-NUMBER-MISSING
InvoiceIn checks · validation rule
InvoiceIn checksNote
This document is a Polish structured invoice (KSeF FA(2)/FA(3)), but no KSeF number came with it. KSeF assigns that 35-character number when it accepts an invoice, so it is never inside the XML: the receiving KSeF client gets it beside the invoice — in the API response, in the UPO, or in the QR code on a visualisation. From 1 January 2027, art. 108g of the Polish VAT Act requires an active VAT payer paying a structured invoice issued by another active VAT payer — by bank transfer or any other payment instrument that carries a transfer title — to quote that number in the payment title, or a collective identifier (NNNNNNNNNN-IZRRRRMM-…), which either side may generate, when one payment settles two or more invoices. Pass it as ?ksef=… or the X-KSeF-Number header: it is checked against the invoice and returned on payment.ksef_number, ready for the payment run. Nothing is wrong with the invoice — this is a note for the receiving side.
- Field
payment.ksef_number (PL national, not an EN 16931 term)- Rule set
- InvoiceIn checks
- Who has to fix it
- The receiver
This one is on the receiving side: the document itself is fine, but something the payment run needs is missing or does not match — it is fixed in your own integration, not by the supplier.
Check your own invoice
Drop the file that failed. We parse it, run the official rule sets against it and list every finding with a fix — 20 invoices per day, no key, nothing stored.
Open the live demoSame explanation over the API: GET /v1/rules/CHECK-KSEF-NUMBER-MISSING?lang=en