Blog
Issuing and receiving invoices

Invoicing a foreign buyer in KSeF

7 min read

An invoice to a foreign buyer goes through KSeF (Poland's National e-Invoicing System) just like a domestic one, even if the buyer has no Polish NIP and will never log in. In the buyer's data you never put a foreign number in the NIP field: for EU companies use KodUE + NrVatUE, for everyone else KodKraju + NrID, and when there is no number, BrakID.

The buyer won't receive the invoice from KSeF, so send them a readable copy (a PDF with the QR code) by email or post. Below: the fields for each buyer type, VAT rates and annotations. Since 1 April 2026 every taxpayer issues invoices in KSeF, VAT-registered and VAT-exempt alike (the largest companies since 1 February). Until the end of 2026 you may still issue an invoice outside KSeF if your invoiced sales in that month stay at or below 10,000 PLN gross.

EU buyer with a VAT-EU number

In the Podmiot2 block (the buyer) use the pair KodUE + NrVatUE, not NIP. A foreign number in the NIP field gets the invoice rejected.

  • KodUE: two-letter EU country prefix (DE, NL, FR)
  • NrVatUE: the VAT number without the country prefix (123456789, not DE123456789)
  • Nazwa: the buyer's full company name

In the address give KodKraju (the same code as in KodUE; required), AdresL1 (street and number) and AdresL2 (postcode and city).

Check the number in the European Commission's VIES system before issuing the invoice. An inactive number causes problems with settling WDT (intra-EU supply of goods) or intra-EU services.

Example, an invoice to a German company:

<Podmiot2>
  <DaneIdentyfikacyjne>
    <KodUE>DE</KodUE>
    <NrVatUE>123456789</NrVatUE>
    <Nazwa>Berlin Design GmbH</Nazwa>
  </DaneIdentyfikacyjne>
  <Adres>
    <KodKraju>DE</KodKraju>
    <AdresL1>Musterstraße 1</AdresL1>
    <AdresL2>10115 Berlin</AdresL2>
  </Adres>
  <JST>2</JST>
  <GV>2</GV>
</Podmiot2>

JST and GV are mandatory in every Podmiot2 block. For foreign buyers enter 2 ("not applicable"), otherwise the invoice fails validation.

VIES — VAT number verification

EU buyer without a VAT number

A private individual, a freelancer on a flat-rate scheme or a company not registered for VAT has no number to enter. Instead of KodUE + NrVatUE use BrakID = 1 (the buyer has no identification number). Nazwa stays mandatory. An invoice for a private person (a consumer) doesn't have to go through KSeF (art. 106ga(2)(4) of the VAT Act); you may issue it there voluntarily, see our post on invoices for private persons.

<Podmiot2>
  <DaneIdentyfikacyjne>
    <BrakID>1</BrakID>
    <Nazwa>Anna Müller</Nazwa>
  </DaneIdentyfikacyjne>
  <Adres>
    <KodKraju>DE</KodKraju>
    <AdresL1>Hauptstraße 5</AdresL1>
    <AdresL2>80331 München</AdresL2>
  </Adres>
  <JST>2</JST>
  <GV>2</GV>
</Podmiot2>

Without a VAT-EU number you can't apply the 0 WDT rate to goods or np II to intra-EU services. Taxation rules may differ in that case, so discuss it with your accountant.

Non-EU buyer

A client from the USA, Switzerland, Canada or the UK (not in the EU since Brexit) has no KodUE or NrVatUE. You have two options.

The buyer has a foreign tax identifier. Use KodKraju + NrID in the DaneIdentyfikacyjne block. They are two separate sibling elements, not nested.

  • KodKraju: ISO country code (US, GB, CH, NO)
  • NrID: the foreign identification number (EIN in the US, UTR in the UK, UID in Switzerland)

KodKraju appears twice: in DaneIdentyfikacyjne (tax identification) and in Adres (registered address). Both are required.

<Podmiot2>
  <DaneIdentyfikacyjne>
    <KodKraju>US</KodKraju>
    <NrID>12-3456789</NrID>
    <Nazwa>US Design Inc.</Nazwa>
  </DaneIdentyfikacyjne>
  <Adres>
    <KodKraju>US</KodKraju>
    <AdresL1>123 Main Street</AdresL1>
    <AdresL2>New York, NY 10001</AdresL2>
  </Adres>
  <JST>2</JST>
  <GV>2</GV>
</Podmiot2>

The buyer has no identifier. As with an EU buyer without a number, use BrakID = 1:

<DaneIdentyfikacyjne>
  <BrakID>1</BrakID>
  <Nazwa>John Smith Freelance</Nazwa>
</DaneIdentyfikacyjne>

VAT rates on foreign invoices

The rate depends on what you sell (goods or services) and to whom (EU or non-EU buyer).

Transaction typeRate (P_12)Net amount fieldWhen to use
WDT — goods to the EU0 WDTP_13_6_2Goods sold to a buyer with a VAT-EU number
Export of goods0 EXP_13_6_3Goods sold to a non-EU buyer
Services to EU businessesnp IIP_13_9Services under Art. 100(1)(4) of the VAT Act (Art. 28b, B2B to an EU taxpayer); the buyer accounts for VAT at home
Services to non-EU businessesnp IP_13_8Supply of goods or services outside Poland, other than np II services and OSS
FA(3) information brochure, p. 92: np I and np II rates

In practice: a website built for a German client with a VAT-EU number is a service, rate np II. The same website for a US client is np I. Goods shipped to a Dutch company with a VAT-EU number are a WDT (0 WDT), and goods shipped to a UK client are an export (0 EX).

The oo rate (domestic reverse charge) never applies to foreign buyers. It is one of the most common reasons for rejection; for foreign buyers use np I or np II.

Rate values in FA(3) are case- and space-sensitive. Correct: np I, np II, 0 WDT, 0 EX. Incorrect: NP I, npI, 0WDT.

VAT Act — Art. 28b, place of supply of services

Annotations: P_18 and P_18A

All eight fields of the Adnotacje block are mandatory, even when the value is "not applicable". Two of them are easy to mix up and both matter for foreign invoices:

FieldValueMeaning
P_181Reverse charge — the buyer accounts for VAT (services at np I or np II)
P_182No reverse charge (e.g. WDT at 0 WDT, export at 0 EX)
P_18A1Split payment (MPP) — amount over PLN 15,000 and goods/services from Annex 15 to the VAT Act
P_18A2No MPP — the default for foreign transactions

P_18 is reverse charge, P_18A is split payment (MPP), which applies to domestic payments and not to foreign transactions. For services: P_18 = 1, P_18A = 2. For WDT and export of goods: P_18 = 2, P_18A = 2. We describe the full Adnotacje structure in the article on the most common FA(3) validation errors.

MF FA(3) information brochure, description of the Adnotacje fields

Invoices in a foreign currency

You can issue the invoice in any currency (EUR, USD, GBP, CHF); KodWaluty takes ISO 4217 codes, and you give net and gross amounts in that currency. One exception: the VAT amount must be in PLN, converted at the NBP average rate from the last business day before the tax point. At np I, np II, 0 WDT and 0 EX the VAT is zero, so no conversion is needed.

If you're unsure about the buyer fields in your XML file, check them in the ksefuj.to validator before sending to KSeF. The file never leaves your browser.

FAQ MF — KSeF 2.0 MF Tax Explanations — 28.01.2026