KSeF number: check whether an invoice number is valid

Paste the KSeF number from an invoice or receipt confirmation. The validator splits it into tax ID, date and identifier and computes the checksum before you use it in a transfer or ledger.

Example from the KSeF 2.0 API documentation. Paste a number from the UPO, the invoice or a transfer title.

KSeF number

Valid

Structure and checksum match. Only KSeF can show whether the invoice exists.

Typeinvoice
Issuer tax ID5265877635
Date accepted by KSeF26 August 2025
CRC-8 checksumAF / expected AF

Prepared by Radif Partners · Method · VAT Act, regulations and ministry notices checked on 25 October 2026

The KSeF number is the identifier the system assigns to every invoice it accepts. It always has 35 characters in four parts separated by hyphens: the issuer's 10-digit tax ID (NIP), the date of acceptance as year, month and day, a 12-character hexadecimal technical identifier and a 2-character checksum. The checksum is a CRC-8 computed over the first 32 characters, so a copying mistake almost always breaks it. The number has legal weight: under Article 106na(3) of the Polish VAT Act the invoice is received on the day the number is assigned, and from 1 January 2027 an active VAT payer paying another active VAT payer for a KSeF invoice by bank transfer must give it in the transfer reference, under Article 108g. The validator checks the structure and the checksum on the spot, without connecting to KSeF; it does not confirm that an invoice with that number exists in the system.

What the number is made of

The structure is described on the ministry page on the KSeF number and in the KSeF 2.0 API documentation. The example from the documentation:

5265877635-20250826-0100001AF629-AF

PartCharactersIn the example
issuer tax ID10 digits5265877635
date of acceptance8 digits, YYYYMMDD20250826
technical identifier12 characters: digits and letters A to F0100001AF629
CRC-8 checksum2 hexadecimal charactersAF

With three hyphens that makes 35 characters. The checksum uses polynomial 0x07 with an initial value of zero, over the 32 characters before the last hyphen. For the example it comes out as AF, as in the number.

Where the number has legal effect

  • Day of receipt. Under Article 106na(3) of the VAT Act it is the day the number is assigned, which matters for VAT deduction.
  • Official receipt confirmation. The number appears in the confirmation the system issues once it accepts the invoice; see the page on transaction confirmation.
  • Transfer. From 1 January 2027 you give the number in the reference of a transfer paying a KSeF invoice when both parties are active VAT payers (Article 108g), whatever the amount and whether or not split payment is used.
  • QR code. This number is printed under code I of an invoice issued online, as the QR code guide explains.

When there is no number yet

An offline invoice gets its number only after sending. Work out how long you have here:

Send the invoice to KSeF by

Send the invoice to KSeF by

28 December 2026

Counted from23 December 2026
Working days1
Days off skipped24 December 2026 (Christmas Eve), 25 December 2026 (Christmas Day), 26 December 2026 (Second day of Christmas), 27 December 2026
QR codes when handing it over outside KSeFtwo: OFFLINE and CERTIFICATE
Work out when the number is assigned →

The number appears in the header of the downloaded file and in the invoice reader, which shows it alongside the party details.

The number in your books and correspondence

It is worth recording the KSeF number in your purchase and sales records next to the invoice number assigned by the issuer. These are two different identifiers: the number in field P_2 comes from the seller’s own numbering, while the KSeF number comes from the system and is unique across Poland. Give both when talking to a trading partner, in a complaint and for a correction. A corrective invoice must state the KSeF number of the invoice it corrects, so without it the correction will be rejected or incomplete.

When you pay several invoices in one transfer, you can use the collective identifier from KSeF instead of listing every number. The validator on this site checks individual numbers; the collective identifier has a different structure.

The validator also helps when importing data from a bank or accounting software: paste the number from a transfer reference and you see at once whether it was cut short or garbled by a banking system that truncates long references.

Common questions

Why does the date in the KSeF number differ from the invoice issue date?

Because the number holds the date the system accepted the invoice, not the date in field P_1. For an invoice issued online they are usually the same day. For an offline invoice sent the next working day or after a failure, the date in the number is later, and that date decides the day of receipt.

Must the KSeF number go in the reference of every transfer?

From 1 January 2027 every active VAT payer paying a KSeF invoice by transfer to another active VAT payer gives the number (Article 108g). With a direct debit the duty lies with the issuer. Before then it is good practice that helps the supplier match the payment. When one transfer pays several invoices, you give all their numbers or the collective identifier.

What does a checksum error in the number validator mean?

That one of the first 32 characters or the last two was copied wrongly. The usual culprits are zero versus the letter O, one versus the letter I, or a missing hyphen. Copy the number from the file or the confirmation rather than retyping it from a printout. The validator shows which part is worth checking first.

Does an offline invoice have a KSeF number as soon as it is issued?

No. The number exists only after the invoice is sent to the system, which is why the word OFFLINE, not a number, is printed under the QR code of an offline invoice. Once the invoice is accepted you will find the number in the official receipt confirmation and in KSeF, and a buyer in the system sees it with the invoice.

Keep going

Official sources for this page

Prepared by

Publisher of free KSeF tools: obligation and deadline check, FA(3) invoice reader, PLN 10,000 limit counter and offline modes, all in your browser

Updated on · Editorial policy · Contact

As of 2026, laws and ministry notices checked on