Search
Poland

Regional spotlight

Formats? Mandates?
We've got you covered!

  • Overview of B2G, B2B and B2C e-invoicing in Poland.
  • Key formats, networks and channels you may need to support.
  • High-level regulatory and compliance considerations.

Read the Regional spotlight

e-invoicing in Poland

Poland uses KSeF (Krajowy System e-Faktur), the national e-invoicing system, as the centralised platform for all invoice traffic. Both domestic and cross-border invoices are reported to KSeF using the FA(3) structured invoice format defined by the Polish tax authority. For domestic B2B transactions, KSeF is the sole delivery channel — invoices are issued through KSeF, and KSeF handles delivery to the recipient. For cross-border invoicing, invoices are reported to KSeF and additionally sent via the Peppol network when full Peppol address details are provided.

Poland is currently supported only for selected partners. Please contact Maventa Support for more information on how to set this up with your ERP for Polish companies.

Polish company account registration

When registering a new Polish company via the API, the Polish VAT number must be used as the company identifier. At the moment, company registration requires the vendor to have KYC approval from Maventa. Contact Maventa support to get started.

Identifier Description Format Validation
VAT number Polish VAT identifier (NIP) PL1234567890 Structural validation via VIES

KSeF authentication

For Maventa to send and receive invoices on behalf of a Polish company, it must act as that company’s authorised technical operator in KSeF. This requires a KSeF authentication token, which the end customer generates once and the partner submits to Maventa.

There is no separate registration step in KSeF — every Polish company already exists in the system. The end customer only needs to log in and generate an authentication token.

The partner must first be registered as a trusted vendor with Maventa (part of the KYC approval described above). Contact Maventa Support to set this up.

Submitting the token

Collect the KSeF token from each end customer and submit it to Maventa with POST /v1/services/ksef/tokens. Once the token is active, invoices are sent and received automatically — the end customer does not need to log in to the KSeF portal for day-to-day operations.

The KSeF plan is that the token authentication method will expire on 31 December 2026. Plan token renewal with your end customers ahead of this date.

How an end customer generates a KSeF token

Share these steps with your end customers. The token is generated in the KSeF 2.0 Taxpayer Application. Logging in supports several methods: the mObywatel app, e-ID, online banking, a Trusted Profile (Profil Zaufany), or a qualified electronic signature or electronic seal.

Step-by-step: generating a KSeF authorisation token

  1. Log in to the KSeF 2.0 Taxpayer Application using the mObywatel app, e-ID, online banking, a Trusted Profile, or a qualified electronic signature or seal.
  2. Navigate to Tokens (Polish: Tokeny) in the side menu.
  3. Select the required permissions — both wystawianie faktur (issuing invoices) and przeglądanie faktur (viewing invoices).
  4. Generate and copy the token. Copy the token value immediately after it appears — it may not be retrievable again. The value is a long string, for example 20260212-EC-1ECC3F2000....
  5. Share the token securely with the partner through their software integration — never by email or another unencrypted channel. The partner submits it to Maventa via POST /v1/services/ksef/tokens.

Sending in Poland

KSeF reporting and delivery

All invoices sent through Maventa for Polish companies are reported to KSeF. When Maventa sends an invoice to KSeF, the invoice is converted to the FA(3) format — the official KSeF structured invoice schema, mandatory from 1 February 2026. For each successfully submitted invoice, KSeF returns a UPO confirmation and the sender can download both the UPO and the cleared FA(3) document via the API.

Domestic invoices are routed exclusively to KSeF by Maventa — the sender does not need to take any additional steps. KSeF acts as the delivery platform and handles forwarding the invoice to the recipient. No other delivery channel is used for domestic traffic.

Cross-border invoices are reported to KSeF and additionally sent via the Peppol network — but only when the full Peppol address details are provided in the sending API metadata. This means both the recipient’s Peppol endpoint ID and the operator’s Peppol identifier must be explicitly included.

Every invoice that is successfully posted to KSeF gets the DELIVERED action, available via GET /v1/invoices/{id}/actions. The DELIVERED action’s channel_details.external_number field contains the KSeF ID.

If the full Peppol address details are not provided for a cross-border invoice, the invoice is reported to KSeF but is not delivered to the recipient via Peppol or any other channel. The invoice status shows as SENT because KSeF accepted it, even though the invoice has not actually reached the recipient. Maventa does not automatically reroute these invoices — the sender must manually reroute the invoice to email or print if these delivery channels are enabled for the sender account.

Email and print delivery

Email and postal delivery (printing) are available as additional delivery channels but are not applied automatically by Maventa. If an invoice needs to be delivered via email or print — for example when Peppol delivery was not possible or no Peppol address was provided — the sender must reroute the invoice to these channels manually. Printing is handled in Finland, and all postal deliveries are sent from Finland.

UPO — official confirmation of receipt

For every invoice successfully submitted to KSeF, Maventa receives a UPO file (Urzędowe Poświadczenie Odbioru — Official Confirmation of Receipt). The UPO is issued by the Polish tax authority system and serves as formal proof that the invoice was received and registered by KSeF.

The UPO typically contains:

The KSeF ID is also available via GET /v1/invoices/{id}/actions in the field channel_details.external_number.

Downloading the UPO and cleared document

Both the UPO file and the CLEARED_DOCUMENT (the FA(3) file as submitted to KSeF) are listed in the files array of the GET /v1/invoices/{id} response. Each file entry includes an id, filename, type, and mimetype.

File type Description
UPO Official Confirmation of Receipt from KSeF. Available only for sent invoices.
CLEARED_DOCUMENT The FA(3) invoice file as registered with KSeF. Can be downloaded for bookkeeping or legal compliance purposes.

To download a file, use GET /v1/invoices/{id}/files/{file_id} with the id from the file entry.

Why is the UPO important?

The UPO serves as legal evidence that the invoice was delivered to the official KSeF platform. It provides an audit trail for compliance, dispute resolution, and customer support. The UPO can be stored in ERP or invoice management systems as the official delivery confirmation for Polish invoices.

Archiving is the partner’s responsibility. Polish invoices must be archived for 10 years.

Receiving in Poland

For domestic traffic, invoices sent by other Polish companies arrive via KSeF. Maventa retrieves these invoices from KSeF and delivers them to the recipient’s Maventa account, where they can be downloaded. For international traffic, invoices can be received via the Peppol network or directly from other Maventa customers — this requires Peppol SMP registration (see below).

Received cross-border invoices are not currently reported to KSeF. KSeF is primarily the structured invoice system for invoices issued by entities in scope — especially domestic Polish transactions. Invoices from foreign suppliers typically remain outside KSeF unless the supplier has a Polish fixed establishment participating in the supply or voluntarily uses KSeF.

Address Type Description Example address Activation Requirement
Peppol address Official identifier for the Peppol network. Uses the VAT number with scheme 9945. 9945:PL3140678169 Created when the company registers to receive from Peppol

Peppol SMP registration

To receive invoices via Peppol, a Polish company must first be registered in the SMP (Service Metadata Publisher). The SMP registration determines which document formats the company can receive over the Peppol network.

Peppol registration is available for Polish companies using the VAT number with scheme 9945 — for example 9945:PL3140678169.

The following document types are registered in the SMP:

Peppol BIS Billing 3.0 — Invoice

DocumentIdentifier urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1

ProcessIdentifier urn:fdc:peppol.eu:2017:poacc:billing:01:1.0

Peppol BIS Billing 3.0 — Credit Note

DocumentIdentifier urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1

ProcessIdentifier urn:fdc:peppol.eu:2017:poacc:billing:01:1.0

Scanning

Scanning is available in Poland via the AutoScan solution.

For step-by-step instructions on enabling receiving, registering for Peppol, and setting up scanning, see the invoice receiving integration guide.

e-invoicing formats used in Poland

ERP integrations for Polish companies should use Peppol BIS Billing 3.0 for both sending and receiving. This is currently the only format with a guaranteed working conversion to and from the Polish FA(3) format used by KSeF.

Format Standard Notes
FA(3) Polish national standard Official KSeF structured invoice schema defined by the Polish tax authority, mandatory from 1 February 2026. All invoices sent to KSeF are converted to this format.
Peppol BIS Billing 3.0 EN16931 Recommended format for ERP integrations. Used for cross-border Peppol delivery alongside KSeF reporting.

Maventa also supports localised PDF for both sent and received invoices, with the legal invoice data included. The PDF is available in English, Finnish, Swedish, Norwegian (Bokmål and Nynorsk), Dutch, and Polish.

Back to top