How to choose the FX rate on a Polish e-invoice?

Foreign currency conversion on a Polish VAT invoice requires using the average NBP rate from the last business day preceding the tax point or issue date. For VAT purposes, only NBP table A is correct. The KSeF transmission date does not alter this anchor if the invoice is treated under offline24 rules.

9 min read 45 views
How to choose the FX rate on a Polish e-invoice?

If your company sells from Poland in EUR, USD or GBP, KSeF has quietly moved everyone's attention to one date: the day the XML file reaches the system. That date is useful for numbering. It is the wrong date for currency conversion. The VAT tax point arises on delivery or completion of the service, and that is what anchors the rate.


The timing matters right now. Structured invoices became mandatory on 1 February 2026 for the largest taxpayers and on 1 April 2026 for everyone else. Administrative penalties for KSeF breaches start on 1 January 2027. Until then a currency error mostly means amending your JPK_V7 file. After that it gets more expensive.

Here is which date anchors the rate, why table A, what to do about weekends and Polish public holidays, how KSeF changes the issue date, and the FX mistake I see most often.

Which date anchors the rate

The general rule sits in Article 31a(1) of the VAT Act: foreign currency amounts are converted at the average NBP rate announced for the last business day preceding the day the VAT obligation arises.

Article 31a(2) covers the exception. If you issue the invoice before the tax point, you use the rate from the last business day preceding the issue date.

In practice this collapses into one rule. The anchor is the earlier of two dates: the tax point or the issue date. From that anchor you step back to the last business day.

Situation Anchor Rate from Delivery 7 January, file sent to KSeF 12 January delivery (7 January) last business day before 7 January Invoice issued 10 March, delivery 25 March issue (10 March) last business day before 10 March Continuous service billed monthly end of the billing period (Art. 19a(3)) last business day before period end Advance payment received 4 February receipt of the advance (4 February) last business day before 4 February

Watch continuous services. For periodic settlement the tax point falls at the end of the period, not on the day individual work was performed. The period end is the anchor.

Why table A and not B or C

NBP publishes three tables. For VAT you use table A only, the average rates of foreign currencies. Table B covers less common currencies and comes out weekly. Table C gives buy and sell rates for banking settlements, not tax.

Record the table number on the invoice, for example A/041/NBP/2026. It costs three seconds at issue time and saves an hour of explanation during an audit. The data is available from the public NBP API, endpoint exchangerates/rates/a/{currency}/{date}/.

Article 31a(1) also lets you elect the last exchange rate published by the European Central Bank. Currencies other than the euro are then converted through their rate against the euro. A separate option under Article 31a(2a-2d) lets you convert VAT using income tax rules, but once elected you must apply it consistently for 12 consecutive months. Switching methods mid-year is an error.

Weekends and Polish holidays: step back further than one day

The statute says last business day, not previous day. Those are different things, and this is where quiet errors accumulate for foreign-owned companies that do not track the Polish holiday calendar.

A concrete example from January 2026. A service completed on Wednesday 7 January 2026. The previous day is 6 January, Epiphany, a Polish public holiday. NBP publishes no table. You step back to Monday 5 January 2026 and use the table A rate from that day.

The same logic applies to Mondays. A Monday delivery takes Friday's rate, not Sunday's.

Poland has public holidays that do not exist in most other jurisdictions, including Epiphany on 6 January, Corpus Christi on a movable Thursday in late spring, and Assumption on 15 August. If your ERP subtracts one day and only skips weekends, it will pull a rate from the wrong date on each of these.

KSeF changes the issue date, but not necessarily the rate

This is the core of it. Under Article 106na(1) of the VAT Act, a structured invoice is deemed issued on the day it is sent to KSeF. That rule applies when the date in field P_1 matches the transmission date.

So what happens when you generate the file on Friday and transmit on Monday? The Ministry of Finance addressed this in its updated KSeF 2.0 handbook: when the transmission date is later than the date in P_1, the invoice is reclassified as issued in offline24 mode under Article 106nda(16), and the issue date remains the P_1 date.

For currency conversion that is good news. Your anchor does not drift because transmission slipped by a day. Just respect Article 106nda(2): an invoice issued with an earlier date must reach KSeF promptly, no later than the next business day.

The real risk is different. Someone notices the file sat unsent for three days, manually edits P_1 to the transmission date and moves the FX anchor in the process. If the tax point already arose on delivery, the rate still follows delivery, so the edit fixes nothing and corrupts the document date.

The most common currency mistake

It looks like this: sale on Friday 20 February 2026, invoice transmitted to KSeF on Tuesday 3 March 2026, rate pulled from 2 March.

The correct anchor is the delivery, 20 February. The rate comes from the last business day before it, Thursday 19 February 2026.

What it costs. An invoice for EUR 10,000 net at 23 percent VAT means EUR 2,300 of tax. At a rate of 4.2510 (illustrative, 19 February) the PLN VAT is 9,777.30 zł. At 4.3120 (illustrative, 2 March) it is 9,917.60 zł. The gap is 140.30 zł on a single invoice. At fifty currency invoices a month, that is a number you want to catch before JPK_V7, not after.

Three variants of the same mistake show up regularly:

  1. The rate from the issue date instead of the day before. The statute says preceding, not on.

  2. The issue-date rate when delivery came earlier. Article 31a(2) only applies when the invoice precedes the tax point.

  3. The supplier's invoice date on imported services. When you self-account for VAT on services bought abroad, the foreign supplier's issue date is irrelevant. Your own tax point governs.

Corrections: Article 31b and the inherited rate

Corrective invoices fall under Article 31b of the VAT Act. The basic rule in 31b(1) is straightforward: the correction inherits the rate of the original invoice. You do not pull a fresh rate for the correction's issue date, whether the correction increases or decreases the base.

The exception covers a collective corrective invoice issued for a discount or price reduction (Article 31b(2)). There you may apply one common rate from the last business day preceding the collective correction's issue date, instead of reconstructing each original invoice's rate separately.

If you elected income tax conversion rules under Article 31a(2a-2d), Article 31b(1-4) does not apply to you and corrections follow the same method as everything else.

One practical system consequence: a correction must be issued in the same currency as the original. A EUR correction against a USD invoice makes the difference amount undefined.

VAT is always stated in PLN

Article 106e(11) of the VAT Act requires tax amounts to be shown in Polish zloty even when the rest of the invoice is in a foreign currency. The FA(3) structure carries dedicated fields for the PLN VAT conversion per rate.

For the buyer this means one thing: you deduct the PLN VAT amount the seller stated, not an amount you converted yourself. Convert it independently and you introduce a JPK_V7 discrepancy nobody will be able to justify.

The rate also drives thresholds denominated in zloty. The 15,000 zł gross threshold for mandatory split payment (Article 108a(1a)) and the simplified invoice limit (450 zł gross or EUR 100, Article 106e(5)(3)) are tested after conversion. An invoice for EUR 3,400 may cross the split payment threshold or not, depending on the rate.

Checklist before sending a foreign currency invoice

  1. Establish the tax point date (delivery, completion, end of billing period or receipt of an advance).

  2. Compare it with the issue date and take the earlier of the two as your anchor.

  3. Step back to the last business day before the anchor, accounting for weekends and Polish public holidays.

  4. Pull the average rate from NBP table A for that day.

  5. Record the rate, the rate date and the table number on the invoice.

  6. Check that VAT amounts are stated in PLN for every rate band.

  7. For a correction, reuse the original invoice's rate unless it is a collective discount correction.

Wrapping up

The FX rate on a Polish e-invoice is not a question of when you transmitted the file to KSeF. It is a question of the tax point date, stepping back to the last business day, and reaching for NBP table A. Three steps that are easy to get wrong by hand and very hard to get wrong automatically.

Biurko pulls the rate for you. It derives the anchor from the dates on the invoice, steps back to the correct day, fetches the average rate from NBP table A and records the rate, the rate date and the table number on the document. If you have your own arrangement, you can override the rate manually. Create a free account at biurko.io and issue your first foreign currency invoice without checking a Polish holiday calendar.

FAQ

Which day's NBP rate applies to a euro invoice in Poland?

The last business day preceding the day the VAT obligation arises, usually the day before delivery or completion of the service. If you issue the invoice earlier than the tax point, use the rate from the day before the issue date.

Which NBP table is correct for VAT?

Table A, the average rates of foreign currencies, published on business days. Table B covers less common currencies and appears weekly. Table C gives buy and sell rates for banking purposes and is not used for VAT.

Does the KSeF transmission date change the exchange rate?

Not if field P_1 carries an earlier date. Under Article 106nda(16) such an invoice is treated as issued in offline24 mode and the issue date stays as stated in P_1, so the FX anchor does not move.

Which rate applies to a corrective invoice?

The same rate used on the original invoice (Article 31b(1) of the VAT Act). The exception is a collective correction for a discount or price reduction, where you may apply one rate from the day preceding the correction's issue date.

What if the preceding day was a Polish public holiday?

Step back to the previous business day. For a tax point on 7 January 2026 the correct rate comes from 5 January, because 6 January is Epiphany and NBP publishes no table that day.

Tags

#KSeF
Share

Previous article

How to link advance and final invoices in KSeF correctly?

Stay in the Loop

Get notified when we publish new articles — no newsletter, unsubscribe anytime.

We respect your privacy. Unsubscribe at any time.

Cookies

Essential ones keep the service running. The rest only with your consent. Cookie Policy