Back to Insights
Payments7 min read

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

  1. 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.
  2. 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:

EventDateAmount (EUR)NBP Rate (PLN/EUR)PLN NetPLN VAT (23%)
Advance 115 Mar 20265,0004.321021,605.004,969.15
Advance 220 Apr 20263,0004.298012,894.002,965.62
Final balance30 Jun 20267,0004.310030,170.006,939.10
Total15,00064,669.0014,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.