How to issue an invoice in KSeF in 2026 in Poland — step by step for a sole proprietorship (JDG)
Issuing an invoice in KSeF: FA(3), your own number, the KSeF number, the UPO, permissions, foreign counterparties, offline24, and corrections.
An invoice in KSeF is prepared as XML compliant with the FA(3) structure, sent to the system, and then checked to see whether it was accepted. Only an accepted document receives a KSeF number and a UPO.
KSeF invoice workflow in Poland in 2026
Prepare workflow, permissions and fallback.
Oxyok →First check whether the document is subject to KSeF
The obligation is being rolled out:
- from 1 February 2026 for taxpayers with gross sales exceeding 200 million zł in 2024,
- from 1 April 2026 for the remaining covered taxpayers.
Until the end of 2026 there is a transitional relief for the smallest issuers, if monthly gross sales documented by invoices outside KSeF do not exceed 10,000 zł.
B2C invoices are outside mandatory KSeF. Exclusions also apply to certain foreign taxpayers and to specific documents.
1. Set up access and permissions
The owner of a sole proprietorship (JDG) can authenticate in the Ministry of Finance tools and grant permissions to:
- themselves,
- an employee,
- an accounting office,
- a program or a person handling invoicing.
Do not give your accountant your private Trusted Profile login. Grant them the appropriate permissions in KSeF.
The technical mechanisms of KSeF 2.0 differ from the old KSeF 1.0 environment. You should not build the integration on outdated instructions about the old sessions and tokens without checking the current API documentation.
2. Create an FA(3) invoice
The program creates XML according to the FA(3) logical structure. The document contains, among other things:
- the seller's data,
- the buyer's data and identifier,
- the issue date and the sale date,
- the seller's own invoice number,
- line items, quantities, prices, and rates,
- net, VAT, and gross values,
- the currency and payment data,
- the required annotations.
PKWiU is not mandatory on every line item. The range of fields depends on the transaction.
3. Keep your own number
The KSeF number is an additional identifier. It does not replace the invoice number assigned in the entrepreneur's own series.
An invoice can therefore have both:
- its own number, e.g.
FV/27/07/2026, - a KSeF number assigned by the system after acceptance.
You should not enter a made-up KSeF number pattern into your own numbering.
4. Send and check the status
After submission, the system validates the structure. The result may mean:
- acceptance of the invoice and assignment of a KSeF number,
- processing,
- technical rejection.
A rejected file is not an invoice issued in KSeF. You have to correct the error and resend it.
KSeF checks technical compliance, but does not confirm the tax correctness of the rate, the performance of the service, or the right to a cost.
5. Download the UPO
After the document is accepted, keep:
- the KSeF number,
- the UPO,
- your own invoice number,
- the data linking it to the order or contract.
Merely pressing "send" in the program does not prove the invoice was accepted.
6. Make the invoice available to the buyer
A Polish buyer using KSeF gains access to the invoice in the system. They do not have to accept it.
If the buyer has no access to KSeF — for example, they are a foreign counterparty — the seller provides them with the invoice in an agreed form, together with the required QR code or access data.
A PDF can be a legible visualization, but it does not replace the structured invoice when the issuer is obliged to use KSeF.
7. Fix errors with a correction
Once an invoice is accepted, an error is not removed by editing the document or by the buyer "rejecting" it. The seller issues a correcting invoice.
If KSeF rejected the document technically, you do not correct a non-existent invoice — you fix the file and resend it, keeping the correct numbering and dates.
Foreign currency
An invoice can be issued in a foreign currency. You do not always enter a single exchange rate on it for all taxes.
The VAT shown on a Polish invoice must be stated in PLN under the rules of the VAT Act. The exchange rate for PIT may follow from a separate moment of earning the revenue. The program should keep these rules separate.
An incorrect NIP
An incorrect NIP does not necessarily cause a technical rejection of the XML — it may route the document to the wrong entity or create a defective invoice.
Before sending, check the NIP and the counterparty's data. If an incorrect document has been accepted, apply a correction in accordance with the regulations.
Offline24 mode
In offline24 mode, the invoice is issued outside a live connection to KSeF, provided to the buyer with the proper QR code, and sent to the system within the statutory deadline.
This is not an arbitrary "I'll send it when the internet is back." You have to keep the FA(3) structure, the markings, the dates, and the deadline for sending it in.
Failure or unavailability
The procedure depends on the type of problem:
- choosing offline24 mode,
- unavailability on the taxpayer's side,
- a failure or unavailability announced by the Ministry of Finance.
The deadlines for sending in the documents differ. There is no single universal rule of two business days for every situation.
Invoices from outside KSeF
In 2026, legal paper or PDF invoices may still occur, among others:
- from foreign suppliers,
- for consumers,
- from issuers using the temporary relief,
- in excluded or emergency situations.
Not every invoice without a KSeF number is automatically invalid, and not every cost from such a document is automatically excluded.
Most common mistakes
- Using the FA(2) structure instead of FA(3).
- Replacing your own number with the KSeF number.
- Assuming that KSeF checks the correctness of the VAT rate.
- Expecting a technical rejection for every incorrect NIP.
- Adopting a single currency exchange rate for VAT and PIT without analysis.
- Treating every PDF as invalid.
- No UPO.
- Giving your accountant your private login credentials.
- No QR code in offline mode or for a recipient outside KSeF.
- Applying one procedure to all failures.
Sources
Want to issue invoices without babysitting XML?
Oxyok handles invoicing, receiving, and bookkeeping in KSeF. Bookkeeping costs from 49 zł + VAT per month.
Write to Paweł or see Oxyok bookkeeping.
This material is general in nature. The obligation and the mode depend on the issuer, the buyer, the type of document, and the current availability of the system.
