Skip to main content

Introduction

KSeF (Krajowy System e-Faktur) 2.0 is Polandโ€™s mandatory national e-invoicing system operated by the Ministry of Finance. Before you can issue invoices through KSeF on behalf of a party (supplier), the party must be registered with the KSeF system. In this guide youโ€™ll learn how to register a party using the Poland app. Once a party is registered, continue with the companion guide: Poland: Issuing invoices.

Prerequisites

To register a party with KSeF, you will need:

Setup

All of the following steps must be carried out from the Invopop Console.
1

Connect the Poland app

  1. Navigate to Configuration โ†’ Apps
  2. Find Poland in the app discovery list
  3. Click Connect to activate
Connect KSeF app
The initial connection requires no configuration.
2

Configure the party registration workflow

This workflow registers a party in KSeF so you can issue invoices on their behalf. There are two variants, depending on the use case described in the issuing invoices guide:
  • Send only โ€” registers the party with KSeF for sending invoices.
  • Send & receive โ€” additionally subscribes the party to periodic invoice imports via the Cron app.
Choose KSeF environment (Test or Demo)
In Sandbox the Register supplier with KSeF step allows you to configure the environment:
  • 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 more accurately simulates the production environment. It is convenient to create two workflows configured differently to easily switch between the Demo and Test options.
In live workspaces no configuration is available, all suppliers are registered in the KSeF production environment.

Send only

KSeF party registration workflow (send)

Registers a party (supplier) with the KSeF system for sending invoices.

Send & receive

This variant requires the Cron app to be connected and the import and sync workflows to be configured first โ€” both are covered in the issuing invoices guide setup.

KSeF party registration workflow (receive)

Registers a party (supplier) with the KSeF system and subscribes them to periodic invoice imports.

Configure the cron step to start syncing invoices to Invopop

After adding the send & receive workflow (regardless of how you created it), open the Subscribe to periodic KSeF sync step and configure the two fields below. This is what tells the Cron app which workflow to run and how often.
  1. Workflow โ€” select the KSeF Sync Received Invoices workflow you created during the issuing invoices guide setup. The Cron app will trigger this workflow on each tick.
  2. Interval โ€” choose how often KSeF should be checked for new invoices (for example, every hour or every day). Pick a frequency that matches how quickly you need received invoices to appear in Invopop.
Once configured, the step should look like this:
Configured Subscribe to periodic KSeF sync step showing the selected sync workflow and interval

Running

In this section, weโ€™ll provide details on how to register parties (suppliers) in the test, demo, and production environments.

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.
1

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.
2

Run the workflow

In the party entry, click on Select Workflow, choose your KSeF Register Party (Test) workflow, and click Run Workflow.Thatโ€™s it! โœ“ Registration completes automatically. The party is now in Registered state and ready to issue invoices.
At this point, youโ€™re ready to start sending invoices on behalf of the party. Head over to the KSeF issuing invoices guide to continue.

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.
1

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.
2

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
Click Run Workflow. The party will be in Processing state until certificate upload is complete.
3

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.
Supplier entry meta with KSeF registration link
Third-party companies (white label)
Add a webhook after the Register supplier with KSeF step to receive the siloEntryId.
Use the Fetch an Entry endpoint to get the registration link from the meta object:
Send the link_url to your customer.
4

Generate a certificate in KSeF portal

The registration wizard will guide you through these steps:
  1. Visit the KSeF portal
  2. Log in with Trusted Profile (Profil Zaufany)
  3. 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
Save the certificate and private key files, as well as the password. Youโ€™ll need them in the next step.
5

Upload certificate to Invopop

There are two ways to upload the certificate:Web Upload (Wizard)
Return to the registration wizard and upload:
  • Certificate file
  • Private key file
  • Password
KSeF certificate upload form
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.
This approach is ideal for automated integrations where you want to handle certificate generation and upload programmatically without user interaction with the web wizard.
โœ“ Success: The supplier transitions to Registered state and can begin issuing invoices. ร— Failure: See Why did my supplier registration fail? in Polandโ€™s FAQ.
At this point, youโ€™re ready to start sending invoices on behalf of the party. Head over to the KSeF issuing invoices guide to continue.

FAQ

Common reasons for registration failures:
  • Certificate and private key mismatch: Ensure you uploaded both files from the same certificate generation
  • Incorrect password: Verify the password matches what you set during certificate generation
  • Future start date: Certificate start date must be today or in the past
  • Wrong portal environment: Demo certificates wonโ€™t work with production, and vice versa
  • File encoding issues: For API uploads, ensure files are properly base64-encoded
  • Expired certificate: Check that the certificate is still valid
  • Invalid NIP: Verify the Polish Tax ID is correct and has access to KSeF
Check the workflow error logs in the Invopop Console for detailed error messages that can help diagnose the specific issue.
For sandbox testing:
  • Test mode: Generate fake NIPs at http://generatory.it/. These work immediately with self-signed certificates.
  • Demo mode: You need a real NIP with access to the KSeF Demo Portal.
Choose an environment (Test, Demo, or Production). Generate a KSeF certificate from the relevant portal (or use a self-signed cert in Test mode), upload it to Invopop with the matching password, and register the supplier through the KSeF Register Supplier workflow.
A KSeF certificate exported as PKCS#12 (.p12) with password, generated through the KSeF Application Portal (or auto-generated by Invopop in Test mode). The certificate must have InvoiceRead + InvoiceWrite permissions.
The KSeF certificate (PKCS#12 .p12 with password) is stored encrypted at rest. Invopop uses it to authenticate session creation with KSeF on the supplierโ€™s behalf; the password is never returned in API responses.
More available in our Poland FAQ section

Participate in our community

Ask and answer questions about invoicing in Poland โ†’