Register suppliers and issue electronic invoices through Poland’s KSeF 2.0 system
Sandbox Only - KSeF 2.0 Production Environment Not Yet AvailableKSeF 2.0 is currently only available in the sandbox environment. The production environment is expected to launch in February 2026 for large taxpayers. This guide uses sandbox credentials and test data.
KSeF (Krajowy System e-Faktur) 2.0 is Poland’s mandatory national e-invoicing system operated by the Ministry of Finance. The system uses the FA(3) XML schema format for structured invoice data and provides real-time clearance for all B2B invoices.Invoices are encoded in FA(3), a strict XML format that enforces standardized fields for domestic and cross-border transactions. The KSeF system validates all submitted invoices in real-time and assigns a unique KSeF ID upon successful clearance.This guide covers two key processes:
Party Registration: Registering suppliers in the KSeF system
Invoice Issuance: Creating and sending FA(3) invoices through KSeF
Example Register supplier for KSeF workflow with states
Copy
Ask AI
{ "name": "Register for KSeF", "description": "Register a party in KSeF", "schema": "org/party", "steps": [ { "id": "f6ca2240-fb6b-11f0-b2f4-37a8eb8f9eb9", "name": "Set State", "provider": "silo.state", "summary": "Set state to `processing`{.state .processing}", "config": { "state": "processing" } }, { "id": "e2cd6770-fb6b-11f0-b2f4-37a8eb8f9eb9", "name": "Register for KSeF", "provider": "gov-pl.register" }, { "id": "f0b45d30-fb6b-11f0-b2f4-37a8eb8f9eb9", "name": "Set State", "provider": "silo.state", "summary": "Set state to `registered`{.state .registered}", "config": { "state": "registered" } } ], "rescue": [ { "id": "ebf99440-fb6b-11f0-b2f4-37a8eb8f9eb9", "name": "Set State", "provider": "silo.state", "summary": "Set state to `error`{.state .error}", "config": { "state": "error" } } ]}
Before starting, review the workflows guide to understand the general setup process.In Console, create a new workflow and choose Empty Party workflow as the base. Then name the workflow with a descriptive label such as “KSeF Register Party”.The new workflow will need to perform these steps:
Set State - To Processing
Register Party in KSeF (Poland) - Registers the party with KSeF
Set State - To Registered
Finally, in the Error Handling area, add the Set State action and select Error.
Before starting, review the workflows guide to understand the general setup process.In Console, create a new workflow and choose Empty Invoice workflow as the base. Then add the following steps:
Set State - To Processing
Add sequential code - Add the desired sequence for your invoices
Sign Envelope - Signs the GOBL document preventing further modifications
Generate FA(3) XML - Generates the FA(3) XML
Send FA(3) XML to KSeF - Sends the FA(3) XML to KSeF
Set State - To Sent
In the Error Handling section, add a Set State step with the state set to Error to capture and flag failed submissions.
For Sandbox: You can use fake Polish Tax IDs (NIP) generated from http://generatory.it/. The sandbox environment doesn’t validate against real company data.
In the Invopop Console, navigate to Parties → Suppliers and click + New Supplier.Create a party entry with the following minimum information:
Click Build, ensure there are no errors, and click Save.
2
Run the Registration Workflow
Once the party is created, find and click the Select Workflow button on the party details page.Select the KSeF Register Party workflow created during setup and click Run Workflow.
In the sandbox environment, registration completes immediately. No additional steps are required to start issuing invoices.
The party will now be in the Registered state and ready to issue invoices through KSeF.
Once a party is registered, you can issue invoices on their behalf. The following examples show partial GOBL documents you can copy and paste directly into the Invopop Console or store via the API as silo entries.
GOBL Invoices sent to KSeF require the following properties:
Click Select Workflow and choose the KSeF Send Invoice workflow
Click Run Workflow
The invoice will be validated, converted to FA(3) XML format, and sent to KSeF. Upon successful clearance, it will receive a unique KSeF ID.
For international transactions, the invoice is created and cleared in KSeF just like domestic invoices. Because the foreign recipient cannot log into KSeF, delivery happens outside the platform (via email, EDI, etc.) with the KSeF QR code included for verification.