KSeF

KSeF UPO and invoice status: what happens after you send

What the KSeF UPO is, how an invoice moves through submitted, accepted and rejected, and how to read the status you get back.

Published 2 min readBy Tomek

Overview

The UPO (Urzędowe Poświadczenie Odbioru) is the official proof of receipt that KSeF returns when it accepts a submitted FA(3) invoice. After you send an invoice it moves through a short status cycle — submitted, then accepted or rejected — and the UPO is the confirmation you archive as evidence. Reading that status correctly lets you automate retries and tell customers exactly where their invoice stands.

What the UPO is

KSeF (Krajowy System e-Faktur) is Poland's national e-invoicing platform operated by the Ministry of Finance (Ministerstwo Finansów). When your system submits a structured FA(3) invoice and KSeF accepts it, the platform returns the UPO — the official confirmation that the document was received and accepted for processing. The UPO is not the invoice itself: it is the receipt that proves the invoice entered the KSeF system, and you should archive it next to the invoice.

The status cycle

An invoice submitted through the KSeF API passes through a small set of states. It starts as a draft, then becomes submitted once it reaches KSeF. From there KSeF processes it and returns a final result: accepted, with the KSeF number and UPO, or rejected, with a code and a description explaining why. The official status codes come from the KSeF API specification maintained by the Ministry of Finance, not from the invoice content.

Reading a rejection

When KSeF rejects an invoice, the status carries a code and a description in Polish. Common causes are schema problems — a field that fails the FA(3) validation — or business issues such as a seller NIP that does not match the authenticated context. Read the description against the official KSeF code table rather than guessing, because the same numeric code can mean different things depending on the context.

What to do with the UPO

Store the UPO number and the full response next to the invoice in your records. It is the evidence that the invoice was issued through KSeF, and you will want it for reconciliation, customer support and audit. In the Notaly API the UPO arrives together with the accepted status on the invoice webhook.

Disclaimer

Notaly is not a tax, accounting or legal advisor. This article is general information, not tax advice, and may be outdated. You are responsible for your own VAT compliance; confirm with a qualified accountant where required.

Sources

Source: www.podatki.gov.pl

Frequently asked questions

Is the UPO the same as the invoice?

No. The UPO is the receipt that proves the invoice was received and accepted; the invoice itself is the FA(3) document.

What should I store for an accepted invoice?

Store the invoice, the UPO number and the full KSeF response together, so you have the evidence for reconciliation and audit.

Does a rejected invoice exist in KSeF?

No. A rejected invoice did not enter the system, so there is nothing to cancel — fix the data and send a new document.

Issue your first KSeF test invoice today

Create a sandbox account: API key in seconds, 3 free test invoices on KSeF TEST, no credit card.