KSeF number: where to find it and can you generate one?
KSeF assigns a number after accepting an invoice. Learn where to find it, how it differs from your invoice number and why an XML generator cannot replace it.
- Category
- Invoicing
- Updated
- Author
- Norman
You can find a KSeF number beside an accepted invoice in KSeF and in its UPO, the official acknowledgement of receipt. KSeF assigns it after accepting the document; you do not create it yourself. Your own invoice number, such as FV/10/2026/15, remains a separate identifier. An XML generator prepares a file for submission but does not itself issue an official KSeF number.
This distinction matters when a customer asks for the number, your software only says “sent”, or your accountant needs to connect a document to its acceptance confirmation. This guide is for businesses operating in Poland, including sole traders using a JDG and companies. It uses Ministry of Finance materials available on 28 October 2026.
Invoice number, KSeF number or session reference?
First establish which identifier you need. Several numbers can appear in the same workflow, and each answers a different question.
| Identifier | What it identifies | Where to look |
|---|---|---|
| Seller’s invoice number | The document within the seller’s numbering system | On the invoice; field P_2 in XML |
| KSeF number | An individual invoice accepted into KSeF | Beside the document in KSeF and in its UPO |
| Session reference | A submission session that can contain documents | In submission history and the session acknowledgement |
The Ministry of Finance explains the two invoice identifiers. The UPO section in part II of the KSeF handbook also distinguishes a session reference from the KSeF number assigned to an invoice.
In a message, “please send the reference number” is therefore ambiguous. Specify whether you need to identify an invoice or investigate a submission issue. Where a session contains several documents, its reference alone does not identify which invoice the recipient should check.
Can you generate a KSeF number before submission?
The Polish search phrase “numer KSeF generator” often combines two different needs: preparing an invoice and obtaining confirmation that KSeF accepted it. A KSeF invoice generator prepares a document. Receiving an official number also requires successful submission to the appropriate KSeF environment.
Do not invent an identifier merely because a form requires a value. Equally, do not ask AI to fill in a missing KSeF number by guessing. It must come from the accepted invoice’s data. A plausible-looking string is not evidence that the document exists in KSeF.
When testing an integration, keep demonstration data separate from business records. A number shown in a test environment does not confirm acceptance into production KSeF. Before investigating further, record which environment and application supplied the information. This avoids searching for a document in the wrong place.
How do you find the KSeF number step by step?
Start with the application in which the invoice was submitted or received. You do not need to create the invoice again to read its identifier.
- Open the correct business context. Check the NIP, especially if you manage several entities.
- Locate the document. Compare the seller’s number, counterparty, date and amount. A similar filename is insufficient.
- Check acceptance into KSeF. Read the number for this invoice rather than the submission session.
- Copy the number unchanged. Do not shorten it or reproduce it from memory. Keep it associated with the correct document.
- Download the UPO when you need confirmation. Compare its information with the selected invoice.
In the government’s Aplikacja Podatnika KSeF, the starting points are “Lista faktur” (invoice list) and “Historia sesji” (session history). The official application manual describes the interface. For a first submission, see our guide to issuing a KSeF invoice for free.
For purchases, check that you are looking at received invoices rather than issued ones. If an invoice is missing, review the date filters and your permissions. An empty list with a narrow filter does not establish that the supplier submitted nothing.
What if you only have XML or a PDF?
Searching an invoice’s XML will not reveal its own assigned KSeF number. Question 7 in the Ministry’s official FAQ confirms that FA(3) has no field for the KSeF number assigned to that same invoice. Read it from the system response or the UPO instead.
A PDF is a visual representation. If you downloaded it before acceptance, check the current version and status in your application. Do not manually edit an old PDF to insert a number found elsewhere. First establish that the confirmation belongs to this particular invoice.
Compare at least the seller’s invoice number, parties, currency and total amount. Two documents from the same supplier can have identical totals. Matching the amount alone does not establish that you have connected the correct identifier.
How do submission and acceptance differ in Norman?
According to Norman’s documentation for KSeF submissions, Sent means KSeF is processing the invoice. Accepted means a number has been assigned. The number appears beside the invoice, and its UPO can be downloaded from the invoice menu or details. This gives you a place to check before answering a customer.
Consider this workflow example: you submit invoice FV/10/2026/15, and the customer immediately asks for its KSeF number. Check that document’s status first. If processing continues, do not present the session reference as the invoice’s KSeF number. After acceptance, copy the assigned identifier and check the associated UPO. This example describes the order of checks, not a promised processing time.
If an error appears, read its cause and follow the application’s instructions. Avoid immediately issuing another invoice for the same sale. Where the result is unclear, investigate the first submission before proceeding. Acceptance into KSeF also does not confirm payment by the customer.
How should you send the number to an accountant or customer?
Label both identifiers explicitly: “seller’s invoice number” and “KSeF number”. Include the date and amount with currency when the recipient needs to locate the invoice within a larger set. For a technical investigation, put the session reference in its own field.
A working register can contain the counterparty, invoice number, KSeF number, acceptance status and location of the UPO. Mark a missing number as awaiting clarification. That is more useful than an apparently complete row containing the wrong identifier.
This register does not confirm that the invoice has been booked or that a JPK report has been submitted. It helps identify documents. Accounting treatment, tax reporting and payment require their own checks.
Example: two similar documents in one folder
Suppose a supplier sends two invoices for successive stages of work. They have the same amount but different seller’s invoice numbers. Your folder also contains two PDFs with unclear filenames. Copying the first visible KSeF number into both rows of a register would create an incorrect association.
Open the first document, read the seller’s number and find its corresponding entry in the system. Assign the retrieved KSeF number to that document only. Repeat for the second invoice, then check that each row leads back to the correct source. This example concerns identification, not whether an expense or input VAT is deductible.
If several people prepare the records, agree how files and confirmations will be labelled and passed on. The next person should be able to reconstruct the connection without guessing which attachment came last. Keep the identifiers issued by the seller and KSeF unchanged.
A final check before closing the task
Confirm four things: the right entity, the right invoice, confirmed acceptance and a number obtained from KSeF. Then retain the connection to the UPO. If you still only have the seller’s number or a session reference, the search for the official invoice identifier is incomplete.
For larger document volumes, organise this workflow in your accounting software: keep the status beside the invoice and the confirmation easy to retrieve. Automation can transfer the data, while KSeF remains the source of the number. Our article on testing AI bookkeeping in Poland explains how to evaluate the wider document workflow.
Frequently asked questions
- Can a KSeF number generator assign a number to a real invoice?
- KSeF assigns the number after accepting the invoice. An XML generator prepares a document for submission. Creating a string that looks like a KSeF number does not register an invoice in the system.
- Where can I find my company’s KSeF number?
- A KSeF number identifies an individual invoice, not a company. A business uses identifiers such as its NIP. Open the relevant invoice or its UPO to find the KSeF number.
- Is the KSeF number inside the invoice XML?
- An invoice’s own KSeF number is not part of its FA(3) XML. The seller’s invoice number appears in field P_2. The XML can refer to another invoice’s KSeF number, for example the invoice being corrected.
Check the KSeF status beside your invoice
Connect KSeF to Norman to work with invoices and their statuses. Once a document is accepted, check its assigned number and download the UPO.