Skip to content
KSeF Kit

UPO in KSeF — what the official receipt confirmation is

UPO (the official receipt confirmation) confirms that KSeF accepted your invoice and assigned it a KSeF number — formal proof that the invoice was issued. The KSeF number identifies the invoice (art. 2 pkt 32a); UPO proves it was submitted. Without a UPO, the invoice was not issued.

When you send an invoice to KSeF, you get back two things: a KSeF number and a UPO. The UPO — urzędowe poświadczenie odbioru, the official receipt confirmation — confirms that the submission to KSeF succeeded and that the invoice was issued once a KSeF number was assigned. It's the formal proof of acceptance, the equivalent of a delivery receipt.

What is a UPO?

A UPO is the official receipt confirmation — the message KSeF uses to confirm that it accepted your invoice and assigned it a KSeF number. It's formal proof that you met your obligation to issue the invoice. Without a UPO, the invoice was not issued — at best it's still processing, or it was rejected.

KSeF number vs UPO — they're not the same thing

Both matter: the number identifies the document, the UPO proves it was accepted at a specific time.

Why the moment of submission matters

In KSeF, the issue date of an invoice is the date you send it to the system (art. 106na ust. 1 of the VAT Act) — not the date you type into the document itself. That's why the UPO and the timestamp it carries are so important: they fix the moment you formally issued the invoice.

Why keep the UPO

The UPO is your protection in a dispute or an audit. It shows that the invoice reached KSeF, and when. Without it, proving you met your obligation is hard. So:

What if an invoice is rejected

After submission, an invoice moves through these states: sentprocessingaccepted or rejected. If the document has an error, it ends up rejected — and then you don't get a UPO, only a rejection code. That's the signal that the invoice was not issued and needs to be fixed and resubmitted. The UPO only appears once a KSeF number has been assigned.

UPO in practice — automation

In KSeF Kit, once an invoice is accepted, the KSeF number and UPO are written back onto the invoice in Stripe, and you can download the confirmations in bulk as a ZIP — ready-made proof for your accountant. See how to issue an invoice and KOR corrections.

Frequently asked questions

What is UPO in KSeF?

UPO (the official receipt confirmation) confirms that your submission to KSeF succeeded and the invoice was issued once it received a KSeF number. It's the formal proof of acceptance — the equivalent of a delivery receipt.

How does UPO differ from the KSeF number?

The KSeF number identifies the invoice in the system (art. 2 pkt 32a of the VAT Act). UPO confirms that the submission succeeded. The number identifies the document; UPO proves it was accepted.

Do I have to keep the UPO?

Yes. The UPO is your proof that KSeF accepted the invoice. Archive it alongside the invoice — ideally automatically, so it's always on hand if you're audited.