Foreign-currency invoice without VAT in PLN
What this message means
The invoice is issued in euros, dollars or another currency, but the VAT amount hasn't been converted into Polish złoty. Net and gross amounts stay in the invoice currency; only the tax is additionally given in PLN, in the fields P_14_1W to P_14_4W. The schema marks these fields as optional, which is why the validator reports this as a warning.
The warning appears when KodWaluty is anything other than PLN and one of P_13_1, P_13_2, P_13_3 or P_13_4 has no corresponding P_14_xW. You'll see the same message in the opposite case: the invoice is in PLN but contains a P_14_xW field. Then simply remove it.
Why the tax must be in złoty
You enter sales and tax amounts in the currency of the invoice, except for the tax converted under Art. 106e ust. 11 of the Polish VAT Act (MF FA(3) information brochure, or broszura, descriptions of P_13_x and P_14_x). Each rate has a set of three fields: the tax base, the tax, and the tax in PLN for a foreign-currency invoice (P_14_xW). The Ministry of Finance puts it this way in its answer to question 19: "only the tax amount in field P_14_xW is converted into złoty in accordance with Art. 106e ust. 11 of the VAT Act" (our translation).
The exchange rate follows from Art. 31a of the VAT Act. As a rule, it's the NBP (National Bank of Poland) mid-rate from the last business day before the tax point (ust. 1), or, if you issue the invoice before that day, from the last business day before the issue date (ust. 2). The provision also allows the European Central Bank rate (ust. 1, second sentence) and, under certain conditions, the rate from the business day before the invoice issue date (ust. 1a). The message only concerns the rates with fields P_13_1–P_13_4: sales at 0%, exempt sales and sales at oo, np I or np II have no P_14_xW field.
How to fix it
- Find the NBP mid-rate for the correct day. Our NBP exchange rate calculator suggests both the date and the rate.
- Multiply the tax in
P_14_xby the rate and round to 2 decimal places. - Enter the result in
P_14_xWdirectly after theP_14_xfor the same rate. - Enter the rate you used in
KursWalutyin the invoice lines, or inKursWalutyZon an advance invoice. The schema doesn't require these fields, but the MF points to them in the same answer to question 19.
Example: a service for 1,000 EUR net at 23%, with an example rate of 4.2618 PLN. The tax in PLN is 230 × 4.2618 = 980.21 PLN.
<!-- ❌ EUR invoice without tax in PLN -->
<Fa>
<KodWaluty>EUR</KodWaluty>
...
<P_13_1>1000.00</P_13_1>
<P_14_1>230.00</P_14_1>
<P_15>1230.00</P_15>
...
</Fa>
<!-- ✅ Tax converted to PLN, rate in the line -->
<Fa>
<KodWaluty>EUR</KodWaluty>
...
<P_13_1>1000.00</P_13_1>
<P_14_1>230.00</P_14_1>
<P_14_1W>980.21</P_14_1W>
<P_15>1230.00</P_15>
...
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Tłumaczenie dokumentacji technicznej</P_7>
<P_11>1000.00</P_11>
<P_12>23</P_12>
<KursWaluty>4.2618</KursWaluty>
</FaWiersz>
</Fa>P_15 stays in the invoice currency. If the rate in KursWaluty doesn't match the NBP table, the validator reports it in a separate warning.
Next step
Foreign buyer details and the rates for cross-border transactions are covered in our post on invoicing a foreign buyer. Other common problems with P_13_x and P_15 are in the most common FA(3) validation errors. Once you've fixed it, check the invoice again.
Check your invoice
Drop in your XML file and we'll show you what needs fixing. Your file never leaves your browser.
Open the validator