Automatic KSeF Invoices for Online Stores: Written Guide

In Poland an invoice to a business buyer is valid only as a structured document accepted by KSeF, the Krajowy System e-Faktur. GoRoute: KSeF Faktury builds that document from each paid order where the buyer gave a NIP, sends it to KSeF with the merchant’s own token, puts the KSeF number and status on the order, gives the buyer a PDF with the verification QR code, and turns refunds into corrective invoices.

This page is the recording written out, chapter by chapter, for anyone who would rather read than watch. Watch the recording on its own page.

Why does KSeF matter for B2B sales in Poland? (0:00)

KSeF is the Ministry of Finance’s national e-invoicing system. An invoice to a business buyer is valid only as a structured FA(3) document accepted by KSeF, which gives it a KSeF number and issues an official receipt, the UPO. It is required for business buyers in 2026, with penalties from 1 January 2027; invoices to consumers can go through KSeF but do not have to. More on the Poland page and at ksef.podatki.gov.pl.

What is the problem the app removes? (0:06)

Without it, every business order means opening the Ministry’s KSeF application and typing the invoice in by hand: the buyer’s NIP, every line, every amount, then waiting for the number and sending the buyer something. It is slow, it is where mistakes come from, and the invoice is often late.

How is it set up? (0:14)

Three steps, once.

StepWhat you doWhy
1. ConnectConnect your store to your GoRoute accountGoRoute files on your behalf and keeps the records
2. NIPAdd your company’s NIPIt is the seller on every invoice
3. TokenPaste the KSeF token you create in the Ministry of Finance’s KSeF applicationInvoices are sent to KSeF under your own token; GoRoute stores it encrypted

Until the token is there, orders from business buyers wait rather than going out without an invoice.

When a paid order carries the buyer’s NIP, GoRoute builds the structured FA(3) invoice from the order and sends it to KSeF with your token. An order in another currency is converted at the National Bank of Poland rate. KSeF answers with the invoice’s number and the official receipt, and both are kept with the order.

What shows on the order? (0:34)

The KSeF number and the status, right on the order. If KSeF rejects the invoice, the reason is shown straight away so it can be fixed and issued again; the buyer is emailed only once KSeF has accepted it.

What does the buyer get, and what about refunds? (0:44)

The buyer gets a PDF with the KSeF number and the KSeF verification QR code. A refund becomes a corrective invoice (faktura korygująca) on its own; a refund made before the original has its KSeF number waits for that number first, so the correction always refers to an accepted invoice.

Which product is this? (0:52)

GoRoute: KSeF Faktury, the Shopify app, is in Shopify’s review; its step-by-step guide is in Polish. For ERPs, marketplaces and other platforms, the GoRoute API files with KSeF today from the same JSON invoice it uses for Peppol.

What the recording does not cover

Invoices to consumers (they can be switched on, and are not required), KSeF’s offline and emergency modes, and pricing. The longer Verifactu and KSeF explainer covers what the law asks and how corrections work in both Spain and Poland; the Poland page and the documentation cover the rest.

KSeF for online stores: questions

Is KSeF mandatory for an online store in Poland?

For invoices to business buyers, yes: an invoice to a business is valid only as a structured document accepted by KSeF. It is required for business buyers in 2026, with penalties from 1 January 2027. Invoices to consumers can go through KSeF but do not have to.

Does a consumer order get a KSeF invoice?

Not by default. The app issues a KSeF invoice when the buyer gives a NIP at checkout. Consumer invoices can be switched on if you want them in KSeF too.

Where does the KSeF token come from?

You create it in the Ministry of Finance's KSeF application and paste it into the app once. Invoices are sent to KSeF under your own token, and GoRoute stores it encrypted.

What happens if KSeF rejects an invoice?

The rejection and KSeF's reason are shown on the order straight away. Fix the cause and issue the invoice again; nothing is emailed to the buyer until KSeF has accepted it.

What happens on a refund?

A corrective invoice (faktura korygująca) is issued on its own and sent to KSeF. A refund made before the original invoice has its KSeF number waits for that number first.

Is the app available now?

GoRoute: KSeF Faktury for Shopify is in Shopify's review. For other platforms the GoRoute API files with KSeF today.

Where to go next