Introduction
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
- Invoice Import: Importing received invoices from KSeF
Prerequisites
To issue invoices through KSeF, you will need:| Environment | Requirements |
|---|---|
| Invopop Sandbox Test mode | Test Polish Tax ID (NIP) You can generate fake NIPs for testing at http://generatory.it/. In test mode, a self-signed certificate will be generated automatically, and you can start sending invoices immediately. |
| Invopop Sandbox Demo mode | Real Polish Tax ID (NIP) and credentials to access the KSeF Demo Portal Demo mode follows the same registration process as production but operates in the demo environment. |
| Invopop Live | Valid company NIP and credentials to access the KSeF Portal You will need to generate a certificate through the KSeF portal. Registration will automatically target the KSeF production environment. |
Setup
There are five key processes to prepare:- Connect the Poland app
- Configure a party registration workflow
- Configure an invoice sending workflow
- Configure an invoice import workflow
- Configure an invoice sync workflow
Connect the Poland app
- Navigate to Configuration โ Apps
- Find Poland in the app discovery list
- Click Connect to activate

Configure party registration workflow

- Test: Self-signed certificate generated automatically, no manual steps required
- Demo: Requires manual certificate generation from the demo portal.
Test is more convenient while Demo is more accurate simulating the production environment. It is convenient to create two workflows configured differently to easily switch between the Demo and Test options.
- Template
- Code
- Build from scratch
Configure invoice sending workflow
Configure invoice import workflow
This workflow imports individual invoices from KSeF when they are received. It will be automatically triggered by the polling service when new invoices are detected.
- Template
- Code
- Build from scratch
Configure invoice sync workflow
This workflow syncs all received invoices for a party within a specific time range. It creates import jobs for each invoice found.Configure the Sync received invoices from KSeF step to reference the import workflow you created in the previous step. The sync workflow will create a job for each invoice and send it to the import workflow.

- Template
- Code
- Build from scratch
Configure app for automatic polling
To enable automatic import of received invoices, configure the Poland app with your sync workflow:
- Navigate to Configuration โ Apps
- Find the Poland app and click Configure
- In the Sync Workflow field, select the sync workflow you created in the previous step
- Click Save

The polling service will now automatically check KSeF for new invoices based on the interval you configured during party registration. When new invoices are found, they will be imported using your configured workflows.
Running
In this section, weโll provide details on how to register parties (suppliers) and issue invoices on their behalf.Register a Party for Test Environment
Choose test mode when you want to quickly test the KSeF integration without dealing with real certificates or authentication. Certificates are generated automatically, allowing you to start sending invoices immediately without any manual certificate generation.
Create the Party
In the Invopop Console, navigate to Parties โ Suppliers and click + New Supplier.Use fake Polish Tax IDs (NIP) generated from http://generatory.it/:Click Build, ensure there are no errors, and click Save.
Register a Party for Demo/Production Environment
In sandbox workspaces, choose Demo mode when you want to simulate the real production flow with KSeF authentication in a safe demo environment.
Create the Party
Use real Polish Tax IDs (NIP) with access to the KSeF Demo Portal or KSeF Portal:Click Build, ensure there are no errors, and click Save.
Run the Workflow
On the party details page, click Select Workflow:
- For Demo: Choose your KSeF Register Party (Demo) workflow
- For Production: Choose your KSeF Register Party (Production) workflow
Access the Registration Link
Get the registration link to begin certificate generation:Your own company
In Console, go to the supplier entry โ Meta tab โ click the gov-pl.invopop.com link to launch the registration wizard.
Third-party companies (white label)
In Console, go to the supplier entry โ Meta tab โ click the gov-pl.invopop.com link to launch the registration wizard.Add a webhook after the Register Party in KSeF step to receive theSend the
In Console, go to the supplier entry โ Meta tab โ click the gov-pl.invopop.com link to launch the registration wizard.

In Console, go to the supplier entry โ Meta tab โ click the gov-pl.invopop.com link to launch the registration wizard.Add a webhook after the Register Party in KSeF step to receive the
siloEntryId.Use the Fetch an Entry endpoint to get the registration link from the meta object:link_url to your customer.Generate a Certificate in KSeF Portal
The registration wizard will guide you through these steps:
-
Visit the KSeF portal
- Demo: KSeF Demo Portal
- Production: KSeF Portal
- Log in with Trusted Profile (Profil Zaufany)
-
Generate the certificate
- Navigate to certificate generation section
- Enter certificate name and password (save the password!)
- Download the private key (automatically generated)
- Select โAuthentication in the KSeF systemโ
- Set start date to today or earlier (future dates will fail)
- Download the certificate file
- Video tutorial: Certificate generation
Upload Certificate to Invopop
There are two ways to upload the certificate:Web Upload (Wizard)
Return to the registration wizard and upload:
Click Upload and verify certificate. The system validates and securely stores your credentials.API Upload
Upload the certificate programmatically using the Upload KSeF certificate endpoint.โ Success: The supplier transitions to Registered state and can begin issuing invoices.
ร Failure: See Why did my supplier registration fail? in Polandโs FAQ.
Return to the registration wizard and upload:
- Certificate file
- Private key file
- Password

Upload the certificate programmatically using the Upload KSeF certificate endpoint.
This approach is ideal for automated integrations where you want to handle certificate generation and upload programmatically without user interaction with the web wizard.
Send an Invoice
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.B2B Standard Invoice
B2B Standard Invoice
B2B Reverse Charge Invoice
B2B Reverse Charge Invoice
For reverse charge invoices, the process is the same but the customer will have a EU VAT ID:
B2B Credit Note
B2B Credit Note
- Click Build to validate
- Click Save to store in the silo
- Click Select Workflow and choose the KSeF Send Invoice workflow
- Click Run Workflow
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.
Import Received Invoices
Once youโve configured the import and sync workflows, Invopop will automatically poll KSeF for new received invoices based on the polling interval you set during party registration.How Automatic Import Works
- Polling Service: Invopop checks KSeF at your configured interval (1 hour, 1 day, 1 week, or 1 month)
- Sync Workflow: When new invoices are detected, the sync workflow queries KSeF for all invoices received since the last poll
- Import Jobs: For each invoice found, a job is created using your import workflow
- Import Workflow: Each job downloads the FA(3) XML from KSeF, converts it to GOBL format, and stores it in your Invopop silo
- Organization: Imported invoices are automatically placed in the configured folder (typically โInvoices ยท Expensesโ) with a
Registeredstate
Polling Intervals: You can set different polling intervals for each party during registration. If you donโt want to automatically receive invoices for a specific party, set the polling interval to โno pollingโ during registration.
Manual Import
If you need to import invoices outside of the automatic polling schedule, you can manually trigger imports using the Invopop API.Manual import with workflow arguments is only available via API. The Console UI does not currently support passing custom arguments to workflow jobs.
-
Get Invoice Details from the KSeF portal:
- KSeF Number: The unique invoice identifier (e.g.,
1234567890-20260120-ABCD1234-EF) - Supplier NIP: The Polish Tax ID of the invoice issuer
- KSeF Number: The unique invoice identifier (e.g.,
- Create a job via API using the Create a Job endpoint:
- Determine the date range you want to sync (from and to dates)
- Create a job via API using the Create a Job endpoint with your sync workflow:
Error Handling and Notifications
We strongly recommend adding notification steps to your workflows to alert you of import failures:- In the Import Workflow: Add email or Slack notifications to the error handling section
- In the Sync Workflow: Add notifications for when the sync process encounters issues
GOBL Addon Reference
Detailed information about the FA(3)-specific extensions and validations can be found in: You can also use the GOBL Builder to create custom invoices with the Polish regime and FA(3) addon.๐ต๐ฑ Invopop resources for Poland
๐ต๐ฑ Invopop resources for Poland
| Compliance | Compliance timeline |
| Apps | |
| Guides | Poland Guide |
| FAQ | Poland FAQ |
| GOBL |
Poland FAQ
Find answers to frequently asked questions about invoicing in Poland โ
Participate in our community
Ask and answer questions about invoicing in Poland โ