FX Advances in Foreign Currency: Each Advance Keeps Its Own Rate
Currency advances are the hardest mechanical case in Polish invoicing. Each advance has its own tax point, its own NBP rate, and its own PLN VAT calculation. The final invoice must preserve all historical rates.
FX Advances in Foreign Currency: Each Advance Keeps Its Own Rate
Every advance payment creates its own tax point. Every tax point has its own NBP exchange rate. The final invoice does not re-rate the advance portions. It keeps each advance at its historical rate and applies the current rate only to the remaining balance.
This is art. 19a ust. 8 of the VAT Act. The rule has been stable since 2021. What makes it hard is the arithmetic: a single final invoice may carry three or four different exchange rates, one per advance plus one for the balance.
The Mechanism
- Advance invoice: Issued when the advance is received. Tax point is the advance receipt date. NBP rate is from the last working day before that date. PLN VAT is calculated at that rate.
- Final invoice: Issued when the service or goods are delivered. The final invoice shows:
- Each advance portion at its historical rate
- The remaining balance at the current rate (last working day before the final tax point)
- PLN VAT calculated per portion at the respective rate
- Total PLN VAT is the sum of all portions
Worked Example
A construction company invoices a 15,000 EUR contract with two advances:
| Event | Date | Amount (EUR) | NBP Rate (PLN/EUR) | PLN Net | PLN VAT (23%) |
|---|---|---|---|---|---|
| Advance 1 | 15 Mar 2026 | 5,000 | 4.3210 | 21,605.00 | 4,969.15 |
| Advance 2 | 20 Apr 2026 | 3,000 | 4.2980 | 12,894.00 | 2,965.62 |
| Final balance | 30 Jun 2026 | 7,000 | 4.3100 | 30,170.00 | 6,939.10 |
| Total | 15,000 | 64,669.00 | 14,873.87 |
The final invoice shows three rate lines. Each advance keeps its March and April rates. Only the 7,000 EUR balance uses the June rate. The total PLN VAT (14,873.87) is the sum of the three portions.
What Goes Wrong
Re-rating all amounts at the final rate. The most common error. The issuer calculates the entire 15,000 EUR at the June rate, ignoring the historical advance rates. The PLN VAT is wrong. KSeF accepts it because the system does not validate the rate value. The error surfaces during an audit.
Not issuing advance invoices. Some businesses receive advances but do not issue advance invoices, planning to issue one final invoice. This is non-compliant: each advance creates a tax point and requires an advance invoice under art. 19a.
Mixing up the rate date. The rate is from the last working day before the tax point (advance receipt date), not the advance invoice issue date. If the advance arrives on Friday but the invoice is issued on Monday, the rate is from Thursday (the last working day before Friday).
FA(3) Fields for Multi-Rate Invoices
FA(3) supports multiple rate lines per invoice. Each line can carry its own KursWaluty value. The invoice structure:
- Line 1: Advance 1 portion,
KursWaluty= 4.321000 - Line 2: Advance 2 portion,
KursWaluty= 4.298000 - Line 3: Final balance,
KursWaluty= 4.310000
Each line's PLN VAT is calculated at its own rate. The invoice total PLN VAT is the sum.
This material is information of a general nature and does not constitute legal or tax advice. For a specific situation, verify the current rules or consult a qualified adviser.