Export Invoices and B2B Sales Abroad in KSeF
YES — exports go to KSeF when the issuer is a Polish VAT payer established in Poland; the issuer determines the obligation, not the buyer. Exports of goods, intra-Community supplies (WDT) and B2B exports of services (art. 28b) are covered, even at the 0% rate. Exempt: B2C sales abroad, the OSS/IOSS schemes, and entities with no establishment in Poland.
The most common myth about KSeF goes: "exports don't apply to me." Wrong. B2B sales by a Polish VAT payer established in Poland go to KSeF as a structured invoice — even when the buyer is a foreign company. Overlooking this is a classic rollout mistake.
But be careful: this does not mean every invoice has to go to KSeF. The system has clearly defined exemptions — below we separate what is covered from what is not.
Does export go to KSeF?
Yes — the obligation is set by the issuer (a Polish VAT payer established in Poland), not the buyer. Covered are:
- Exports of services to businesses (e.g. SaaS, digital services for a foreign B2B buyer) — yes.
- Intra-Community supplies of goods (WDT) within the EU — yes.
- Exports of goods outside the EU — yes, even at the 0% VAT rate.
In all of these cases the invoice is structured, provided you issue it as a Polish VAT payer established in the country.
What is exempt from KSeF
- B2C sales (invoices to consumers) — voluntary, not mandatory.
- The OSS and IOSS schemes — outside KSeF.
- Foreign entities with no establishment or fixed place of business in Poland — they are not required to use KSeF.
- Self-billing by a foreign customer — outside the system.
Always distinguish B2B vs B2C and the buyer's VAT status and establishment — these decide whether the document goes to KSeF.
Tax number for an EU customer
For a buyer in another EU country, you enter their VAT number with the country prefix (e.g. DE, FR), never a Polish NIP. This is a frequent slip on intra-Community invoices, and it leads to rejection or incorrect accounting.
Foreign currency and złoty
You can issue the invoice in EUR or USD, for example — the net and gross amounts can stay in the foreign currency. But you always show the VAT amount in złoty, at the average NBP rate from the last business day before the tax obligation arises. Details: NBP exchange rates on an invoice.
How the foreign customer sees the invoice
A company outside Poland usually doesn't use KSeF. So:
- You send the invoice to KSeF (KSeF number + UPO).
- You hand the buyer a visualisation of the invoice with a QR code (KOD I) that carries the KSeF number and lets them verify the document. See the QR code in KSeF.
Common pitfalls
- Assuming exports are "outside KSeF" — the costliest mistake; an invoice that is mandatory but issued outside the system does not legally exist.
- Entering the EU buyer's Polish NIP — instead of their VAT number with the country prefix.
- Failing to convert VAT to PLN — net and gross can stay in EUR, but the VAT amount must be in złoty.
- No visualisation with a QR code — a foreign customer needs a readable document outside the system.
Selling globally through Stripe?
If you serve foreign customers through Stripe, KSeF Kit recognises the transaction type and sends the correct structured invoice — with VAT converted to złoty and a QR code (KOD I) on the buyer's visualisation. See the Stripe + KSeF integration.