Connect KSeF to Flowtly Workspace

Once you connect KSeF, Flowtly Workspace sends your sales invoices to Poland's National e-Invoice System (Krajowy System e-Faktur) and fetches the invoices other companies issue to you. This tutorial takes you from an empty E-Invoicing card to your first invoice with a KSeF number and an UPO, in about ten minutes.

Why KSeF matters now

KSeF is a Polish statutory obligation, so this tutorial is for organisations that invoice as a Polish taxpayer.

  • Receiving invoices through KSeF has been mandatory for all taxpayers since 1 February 2026.
  • Issuing invoices in KSeF became mandatory on 1 February 2026 for taxpayers whose 2024 sales exceeded PLN 200 million, and on 1 April 2026 for all other taxpayers.

Some reliefs apply to the smallest issuers. Check the Ministry of Finance's KSeF pages, or ask your accountant, for the rules that apply to your company.

Flowtly Workspace connects to KSeF 2.0 and always to the production environment: there is no test mode in the app, so every invoice you send is a real filing.

Before you start

  • In Flowtly Workspace: administrator rights, an active subscription that includes invoicing, and your company's complete billing data: NIP, billing name, street, postal code, city and country. Have your REGON ready too.
  • In KSeF: a way to authenticate as your company (a qualified signature, a qualified seal or Trusted Profile, Profil Zaufany) and the right to manage permissions for that NIP. If your accounting office handles KSeF for you, now is the time to contact them.

Step 1: Complete your company details

Go to Settings → Finance & Business → Invoicing settings and, in the Billing data section, fill in the NIP, Billing name, Street line, postal code, City and Country. Do this first: without all six fields, the e-invoicing switch in step 5 stays locked. Enter your REGON in the same section. It does not lock the switch, but the invoice check in step 6 requires it.

Tip: The E-Invoicing token field is not greyed out; it simply does not appear on the E-Invoicing card until your NIP is saved. If you cannot see it, go back to Billing data.

Tip: You can enter the NIP with or without the PL prefix. Flowtly Workspace removes the prefix before sending anything to KSeF.

Step 2: Generate a token in the KSeF Taxpayer Application

Sign in at ap.ksef.mf.gov.pl in your company's context (its NIP), using a qualified signature, a qualified seal or Trusted Profile. In the left-hand menu, choose Tokens → Generate token. Give the token a name, for example "Flowtly Workspace", and tick three permissions: issuing invoices, viewing invoices and viewing permissions.

Tip: All three permissions are required. Issuing invoices alone is not enough: without viewing invoices and viewing permissions, the connection to Flowtly Workspace will not work. If a permission is missing, generate a new token with all three.

Tip: Generate a token for Flowtly Workspace alone rather than reusing your accounting office's. You can then revoke it without cutting anyone else off.

Tip: KSeF shows the token only once. Copy it and paste it straight into Flowtly Workspace. Do not save it in a document, a chat or a screenshot: the token lets anyone issue invoices on your company's behalf. If it has ended up somewhere it should not be, revoke it under Tokens → Token list and generate a new one.

Step 3: Paste the token into Flowtly Workspace and save

Back in Flowtly Workspace, on the same Invoicing settings page, find the E-Invoicing card, paste the token into the E-Invoicing token field and save. Flowtly Workspace authenticates with KSeF and stores the token encrypted.

Tip: You only do this once. A KSeF session expires after a while, but Flowtly Workspace renews it from the saved token, so you do not need to paste it again.

Step 4: Check the connection status

On the same card, E-Invoicing auth status should read CONNECTED. If you see an error instead, the message comes from KSeF.

Tip: The three most common causes are a token generated for a different NIP, a token without the permissions from step 2, and a token that has already been revoked. In each case, generate a new token and repeat step 3.

Tip: If you could not save in step 3, check your subscription: invoicing has to be active.

Step 5: Turn on e-invoicing

Only now can you switch on Enable E-Invoicing. Flowtly Workspace unlocks it only when the status is CONNECTED and the company details from step 1 are complete.

Tip: If the switch does not respond although the status is CONNECTED, go back to step 1 and check all six fields. Country or postal code is the one most often missing, and one empty field is enough to lock it.

Tip: The same card has Hide contact details on e-invoices. When it is on, the seller's phone number and the buyer's email address are left off the e-invoices Flowtly Workspace generates, PDF and KSeF alike. The contact data stays on the client record.

Step 6: Prove the connection by sending one invoice

Open any issued invoice and choose Validate and send via E-invoicing. If anything is missing, Flowtly Workspace lists exactly what to complete before the e-invoice is generated. The usual gaps are the client's NIP or its tax ID type, the client's country, or an issue date in the future, which KSeF rejects.

Tip: Once an invoice has been sent via e-invoicing, it can no longer be edited, and Flowtly Workspace will not delete it. To change it, issue a correction. Check the details before you send.

Tip: If the check points at your company rather than the client, choose Edit company details to go to Invoicing settings. The REGON or part of the billing address is usually what is missing.

Step 7: Download the UPO

From the invoice, choose Download E-Invoicing UPO. The UPO (Urzędowe Poświadczenie Odbioru, the official confirmation of receipt) is your proof that KSeF accepted the invoice. The KSeF number also appears on the invoice, and once the invoice is submitted, its PDF is the document KSeF holds.

Tip: Keep the UPO with your accounting records. It is the UPO, not the invoice itself, that confirms the date KSeF received the document.

What you have now

  • E-Invoicing auth status reads CONNECTED, and your first invoice has a KSeF number and an UPO. From now on, you send sales invoices to KSeF straight from Flowtly Workspace.
  • The other direction works too: invoices issued to your company are fetched from KSeF into Incoming invoices, where they can go through your approval workflow.
  • The KSeF connection belongs to the whole organisation, so you set it up once, however many projects you run. Fetched invoices arrive in Incoming invoices without a project; you assign one later in the invoice's cost allocation, and one invoice can be split across several projects, line by line if you need to.

Learn more