Twój klient sprzedaje w euro, także polskim firmom. Na fakturze w PDF kwotę VAT w złotych i kurs zwykle dopisywało się pod tabelą. W Krajowym Systemie e-Faktur (KSeF) faktura jest plikiem XML w schemacie FA(3), a VAT w złotych i kurs waluty mają własne pola. Jeśli zostaną puste albo kurs będzie z niewłaściwego dnia, nabywca dostanie fakturę z błędną informacją o podatku. Poniżej: który kurs, skąd go wziąć, które pola wypełnić, jak zaokrąglić wynik i co zrobić przy korekcie.
VAT w złotych: co mówi ustawa
Fakturę dla polskiego nabywcy można wystawić w walucie obcej. Ministerstwo Finansów opisuje taki dokument wprost w pytaniach i odpowiedziach do KSeF 2.0 (część „Rozwiązania informatyczne, integracje i struktura KSeF”, pytanie 19): kwoty są w nim wyłącznie w walucie obcej, a na złote przelicza się tylko kwotę podatku, w polu P_14_xW.
Obowiązek wynika z art. 106e ust. 11 ustawy o VAT: „Kwoty podatku wykazuje się w złotych. Kwoty podatku wyrażone w walucie obcej wykazuje się w złotych przy zastosowaniu zasad przeliczania na złote przyjętych dla przeliczania kwot stosowanych do określenia podstawy opodatkowania.”
Z tego przepisu wynikają dwie rzeczy. Cena, wartość netto i kwota brutto mogą zostać w euro. Kurs do VAT na fakturze nie jest osobnym „kursem fakturowym”. To ten sam kurs, którym przeliczasz podstawę opodatkowania, czyli kurs z art. 31a.
Który kurs: ostatni dzień roboczy przed obowiązkiem podatkowym
Art. 31a ust. 1 ustawy o VAT każe przeliczać kwoty według kursu średniego NBP „na ostatni dzień roboczy poprzedzający dzień powstania obowiązku podatkowego”. Przy zwykłej dostawie towarów lub usłudze obowiązek powstaje z chwilą dostawy albo wykonania usługi (art. 19a ust. 1). Sprzedaż w piątek oznacza kurs z czwartku, sprzedaż w poniedziałek kurs z piątku. Data faktury nie ma wtedy znaczenia, o ile faktura nie powstała przed sprzedażą.
Dzień, od którego liczysz, przesuwa się w trzech sytuacjach:
- Faktura wystawiona przed sprzedażą. Art. 31a ust. 2: kurs z ostatniego dnia roboczego przed dniem wystawienia faktury. W KSeF fakturę uznaje się za wystawioną w dniu przesłania jej do systemu (art. 106na ust. 1), a MF wyjaśnia, że dla faktury w trybie online data w polu P_1 powinna zgadzać się z datą przesłania. W trybie offline24 datą wystawienia jest data z pola P_1 (art. 106nda ust. 10). Szczegóły opisaliśmy w tekście o dacie wystawienia faktury w KSeF.
- Obowiązek powstaje z chwilą wystawienia faktury. Dotyczy to m.in. najmu, dzierżawy, leasingu, usług telekomunikacyjnych, stałej obsługi prawnej i biurowej oraz dostaw energii elektrycznej i gazu przewodowego (art. 19a ust. 5 pkt 4). Jeśli wystawisz fakturę w terminie, kurs bierzesz z ostatniego dnia roboczego przed dniem jej wystawienia.
- Zaliczka. Co do zasady obowiązek powstaje z chwilą otrzymania zapłaty (art. 19a ust. 8), więc liczy się ostatni dzień roboczy przed wpływem pieniędzy.
Kurs EBC i zasady z podatku dochodowego
Kurs NBP nie jest jedyną drogą. Ustawa dopuszcza dwie inne:
- kurs Europejskiego Banku Centralnego (art. 31a ust. 1 zdanie drugie): ostatni kurs wymiany opublikowany przez EBC na ostatni dzień poprzedzający dzień powstania obowiązku podatkowego. Waluty inne niż euro przelicza się wtedy przez ich kurs względem euro. Przepis mówi tu o ostatnim dniu, nie o ostatnim dniu roboczym;
- zasady przeliczania przychodu z podatku dochodowego (art. 31a ust. 2a). Kto je wybierze, stosuje je przez co najmniej 12 kolejnych miesięcy (ust. 2b). Po rezygnacji przez co najmniej 12 miesięcy stosuje reguły z ust. 1 lub 2 (ust. 2c).
Przepis, którego nie ma: art. 31a ust. 1a
W tekście jednolitym ustawy o VAT z 2025 r. (Dz.U. 2025 poz. 775) znajdziesz art. 31a ust. 1a i nowe brzmienie ust. 2. Dodała je ustawa z 16 czerwca 2023 r. (Dz.U. 2023 poz. 1598), która wprowadziła obowiązkowy KSeF, z datą wejścia w życie 1 lutego 2026 r. Przepis miał pozwolić na kurs z dnia roboczego przed datą z pola P_1, jeśli faktura trafi do KSeF najpóźniej następnego dnia. Ustawa z 5 sierpnia 2025 r. (Dz.U. 2025 poz. 1203) uchyliła ten fragment, zanim zaczął obowiązywać. Obowiązują ust. 1 i 2 w dotychczasowym brzmieniu. Jeśli trafisz na opis „kursu z dnia przed P_1”, sprawdź jego datę.
Tabela A czy tabela B
NBP publikuje trzy tabele kursów. Do VAT służy kurs średni, a ten jest w dwóch z nich:
- Tabela A: 32 pozycje, m.in. EUR, USD, GBP, CHF, CZK, SEK, NOK, DKK, HUF, UAH, CNY i JPY. NBP aktualizuje ją w każdy dzień roboczy między 11:45 a 12:15.
- Tabela B: pozostałe waluty, np. dirham ZEA (AED), rial saudyjski (SAR), dinar serbski (RSD) czy lari gruzińskie (GEL). W tabeli z 23 września 2026 r. było ich 116. NBP aktualizuje ją raz w tygodniu, w środę. Gdy środa jest dniem wolnym, tabela ukazuje się dzień wcześniej.
- Tabela C zawiera kursy kupna i sprzedaży. Do przeliczeń z art. 31a jej nie używasz, bo przepis mówi o kursie średnim.
Terminy publikacji podaje sam NBP. Dla waluty z tabeli B nowy kurs pojawia się więc tylko raz w tygodniu. Przy sprzedaży w czwartek 17 września 2026 r. ostatnim dniem roboczym przed sprzedażą jest środa 16 września, a na ten dzień NBP ogłosił tabelę nr 037/B/NBP/2026. Przy sprzedaży w piątek tabela B nie ma kursu z czwartku. Najnowszy ogłoszony kurs nadal pochodzi ze środy.
Pola FA(3) dla faktury w walucie obcej
Nazwy i kolejność pól poniżej pochodzą z oficjalnego schematu FA(3).
| Pole | Gdzie | Co wpisać |
|---|---|---|
KodWaluty | Fa, na początku | Kod ISO 4217, np. EUR. Pole obowiązkowe na każdej fakturze, przy złotych wpisujesz PLN |
P_13_1, P_14_1, P_15 | Fa | Wartość netto, VAT i należność ogółem w walucie faktury |
P_14_1W | Fa, zaraz po P_14_1 | VAT od sprzedaży ze stawką 23% (albo 22%) w złotych |
P_14_2W, P_14_3W | Fa | To samo dla stawki 8% (albo 7%) i 5% |
P_14_4W | Fa | Ryczałt dla taksówek osobowych w złotych |
KursWaluty | FaWiersz, po P_12 | Kurs użyty w danym wierszu, do 6 miejsc po przecinku |
KursWalutyZ | Fa, po P_15 | Kurs na fakturze zaliczkowej |
W broszurze MF o strukturze FA(3) pole P_14_1W ma status „opcjonalne”. W języku broszury to nie znaczy „dobrowolne”: pole opcjonalne wypełnia się obowiązkowo, gdy spełniony jest warunek ustawowy. Faktura w walucie obcej z polskim VAT to właśnie ten warunek. KursWaluty broszura opisuje jako pole fakultatywne, ale w pytaniu 19 MF podaje, że przy takiej fakturze obok KodWaluty wypełnia się KursWaluty (albo KursWalutyZ).
Dlaczego faktura WDT, eksportowa czy „np” w euro nie ma P_14_xW
Pola z literą W istnieją tylko przy sekwencjach dla stawek 23%, 8%, 5% i ryczałtu taksówkowego. Sprzedaż ze stawką 0% (P_13_6_1, P_13_6_2 dla WDT, P_13_6_3 dla eksportu), zwolniona (P_13_7), niepodlegająca opodatkowaniu w kraju (P_13_8, P_13_9), objęta odwrotnym obciążeniem (P_13_10) i procedurą marży (P_13_11) ma w FA(3) tylko pole wartości sprzedaży. Na takiej fakturze nie ma polskiego podatku, więc nie ma czego przeliczać na złote. Podstawę opodatkowania i tak przeliczasz według art. 31a, bo ten przepis dotyczy każdej kwoty podanej w walucie obcej. Faktura po prostu nie ma na to pola. Więcej o fakturach dla zagranicznych nabywców w tekście o fakturze dla kontrahenta spoza UE.
Przykład: 10 000 euro netto, sprzedaż w piątek
Hydrotech sp. z o.o. z Poznania sprzedaje pompy przemysłowe polskiej firmie Budmar sp. z o.o. Strony rozliczają się w euro.
- dostawa: piątek, 18 września 2026 r.,
- przesłanie faktury do KSeF: poniedziałek, 21 września 2026 r.,
- wartość netto: 10 000,00 EUR, stawka 23%,
- VAT: 2 300,00 EUR, brutto: 12 300,00 EUR.
Krok 1. Obowiązek podatkowy powstaje w dniu dostawy, 18 września (art. 19a ust. 1). Faktura powstała później, więc art. 31a ust. 2 nie ma zastosowania.
Krok 2. Ostatni dzień roboczy przed 18 września to czwartek, 17 września. Tabela nr 181/A/NBP/2026 z tego dnia: 1 EUR = 4,3632 zł.
Krok 3. VAT w złotych: 2 300,00 EUR × 4,3632 = 10 035,36 zł. Ta kwota trafia do P_14_1W.
Fragment XML (pominięte pola oznaczono trzema kropkami):
<Fa>
<KodWaluty>EUR</KodWaluty>
<P_1>2026-09-21</P_1>
...
<P_6>2026-09-18</P_6>
<P_13_1>10000.00</P_13_1>
<P_14_1>2300.00</P_14_1>
<P_14_1W>10035.36</P_14_1W>
<P_15>12300.00</P_15>
...
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Pompa przemysłowa</P_7>
...
<P_11>10000.00</P_11>
<P_12>23</P_12>
<KursWaluty>4.3632</KursWaluty>
</FaWiersz>
</Fa>
Gdyby Hydrotech przesłał fakturę do KSeF przed dostawą, we wtorek 15 września, liczyłby się ostatni dzień roboczy przed wystawieniem, czyli poniedziałek 14 września. Tabela nr 178/A/NBP/2026 podaje 4,3391 zł, więc P_14_1W = 2 300,00 × 4,3391 = 9 979,93 zł. Ta sama sprzedaż, a VAT w złotych niższy o 55,43 zł.
Należność ogółem to 12 300,00 EUR, czyli po tym samym kursie 53 667,36 zł. Próg 15 000 zł dla mechanizmu podzielonej płatności przeliczasz według tych samych zasad (art. 106e ust. 1 pkt 18a). Jeśli towar jest wymieniony w załączniku nr 15 do ustawy, faktura potrzebuje adnotacji „mechanizm podzielonej płatności”. Szczegóły w tekście o MPP w KSeF.
Zaokrąglenie do grosza
Ostatnie zdanie art. 106e ust. 11 rozstrzyga sposób zaokrąglania: „Kwoty wykazywane w fakturze zaokrągla się do pełnych groszy, przy czym końcówki poniżej 0,5 grosza pomija się, a końcówki od 0,5 grosza zaokrągla się do 1 grosza.”
W przykładzie wynik wyszedł równy. Weźmy inny: VAT 1 234,57 EUR, kurs 4,3632. Iloczyn to 5 386,675824 zł. Końcówka wynosi ponad pół grosza, więc do P_14_1W trafia 5 386,68 zł.
Przepis każe przeliczyć „kwoty podatku wyrażone w walucie obcej”. Punktem wyjścia jest więc VAT w euro z faktury, a nie wartość netto przeliczona na złote i pomnożona przez stawkę. Obie drogi mogą dać minimalnie różny wynik.
Korekta faktury w walucie obcej
Art. 31b ust. 1 ustawy o VAT: gdy zmieniają się kwoty w walucie obcej, przeliczasz je według kursu przyjętego dla podstawy opodatkowania przed zmianą. Kurs z dnia korekty nie ma tu zastosowania.
Przykład: Hydrotech udziela rabatu 1 000,00 EUR netto do faktury z 21 września. Korekta zmniejsza VAT o 230,00 EUR. W złotych: 230,00 × 4,3632 = 1 003,536 zł, po zaokrągleniu 1 003,54 zł. Według dokumentacji schematu FA(3) na fakturze korygującej pole P_14_1W zawiera różnicę, tu -1003.54.
Wyjątek zawiera art. 31b ust. 2. Przy zbiorczej korekcie z art. 106j ust. 3, czyli opuście lub obniżce ceny dla jednego odbiorcy za dany okres, możesz przeliczyć kwoty według kursu NBP z ostatniego dnia roboczego przed wystawieniem korekty albo według kursu EBC z ostatniego dnia przed jej wystawieniem. Obie reguły, z ust. 1 i 2, nie działają, jeśli wybrałeś przeliczanie według zasad z podatku dochodowego (art. 31b ust. 4).
Jak zbudować samą fakturę korygującą w FA(3), opisujemy w tekście o korekcie faktury w KSeF.
Faktura w walucie obcej w FakturaFlow
FakturaFlow nie wystawia faktur od zera. Faktury trafiają do niego z plików PDF, Excel/CSV i XML albo ze Stripe i Chargebee, a walutę widać w polu „Waluta”. Przy polskim VAT w walucie obcej system dopisuje kwotę podatku w złotych (P_14_xW) i kurs w wierszu (KursWaluty). Kurs pobiera przy wysyłce: średni kurs NBP z tabeli A, a dla rzadszych walut z tabeli B, z ostatniego dnia roboczego przed datą sprzedaży albo przed datą wystawienia, jeśli faktura powstała wcześniej. Pobrany kurs zapisuje przy fakturze. Jeśli stosujesz inny kurs, na przykład EBC, wpisz go w oknie „Popraw dane faktury”, na zakładce „Kwoty”, w polu „Kurs średni NBP (EUR/PLN)”. Puste pole oznacza kurs pobrany automatycznie. Gdy zmienisz datę albo walutę i nie wpiszesz kursu ręcznie, zapisany wcześniej kurs zostanie usunięty i pobrany od nowa przy wysyłce.
Najczęstsze pytania
Czy polskiej firmie można wystawić fakturę w euro?
Tak. MF opisuje taki przypadek w pytaniach i odpowiedziach do KSeF 2.0: kwoty są w walucie obcej, a na złote przelicza się tylko kwotę podatku, w polu P_14_xW. Walutę całej faktury wskazuje pole KodWaluty.
Czy pole KursWaluty jest obowiązkowe?
Broszura MF opisuje je jako pole fakultatywne. W odpowiedzi na pytanie 19 MF podaje jednak, że przy fakturze w walucie dla polskiego kontrahenta obok KodWaluty wypełnia się KursWaluty. Wpisz je: nabywca zobaczy, skąd wzięła się kwota w P_14_1W, bez szukania tabeli NBP.
Który kurs przy zaliczce w euro?
Co do zasady obowiązek podatkowy powstaje z chwilą otrzymania zaliczki (art. 19a ust. 8), więc liczy się ostatni dzień roboczy przed jej wpływem. Na fakturze zaliczkowej kurs trafia do pola KursWalutyZ. Gdy jedna faktura dokumentuje kilka wpłat, każda dostaje własny kurs w polu KursWalutyZW (tak pokazuje przykład 16 w broszurze MF). Więcej w tekście o fakturze zaliczkowej w KSeF.
Cena ustalona w euro, faktura w złotych: to też faktura walutowa?
Nie. Jeśli kwoty na fakturze są w złotych, KodWaluty to PLN, a pól P_14_xW nie wypełniasz. Umowny kurs możesz podać w polach KursUmowny i WalutaUmowna (element WarunkiTransakcji). MF wyjaśnia tę różnicę w pytaniu 18 z tej samej części pytań i odpowiedzi do KSeF 2.0.
Chcesz wysyłać do KSeF faktury w euro z kursem NBP pobieranym przy wysyłce? Rozpocznij za darmo.
Stan prawny na wrzesień 2026 r. Artykuł nie stanowi porady podatkowej. Aktualne brzmienie przepisów sprawdzisz w ustawie o VAT i na ksef.podatki.gov.pl.