KSeFakt v0.3.8-dev.40 — preview pre-launch · obowiązkowy KSeF: 02.2026 duzi podatnicy · 04.2026 pozostali podatnicy VAT · 01.2027 wszyscy
Start  /  Blog

Faktura w EUR i USD w KSeF — kurs NBP i pole KursWaluty

ksef-w-walutach-obcych-eur-usd

W KSeF możesz fakturować w EUR, USD, GBP i innych walutach — ale VAT zawsze przeliczasz na PLN po średnim kursie NBP z dnia poprzedzającego obowiązek podatkowy. Sprawdź jak prawidłowo wypełnić pole KursWaluty w schemacie FA(3), kiedy kurs jest z dnia wystawienia, a kiedy z dnia zapłaty, i jak uniknąć błędu walidacji.

Kiedy możesz wystawiać faktury w walucie obcej

Przepisy nie zabraniają fakturowania w walutach obcych — jeżeli strony transakcji uzgodniły rozliczenie w EUR, USD, CHF lub innej walucie, faktura może być wystawiona w tej walucie. Faktura w walucie obcej trafia do KSeF jak każda inna — w schemacie FA(3), z numerem KSeF po przyjęciu przez system.

Jednak VAT w Polsce musi być zawsze wyrażony i odprowadzony w PLN. Oznacza to, że faktura w EUR musi zawierać zarówno wartości w EUR (dla potrzeb handlowych i umownych), jak i przeliczone na PLN kwoty VAT (dla celów podatkowych i JPK_V7M). To obowiązek podatnika — nie opcja.

Schemat FA(3) obsługuje walutę obcą przez dedykowane pola: KodWaluty, KursWaluty i DataKursu. Jeśli wystawisz fakturę w EUR bez podania tych pól, system KSeF odrzuci ją z błędem walidacji — pole kursowe jest obowiązkowe dla faktur w walucie innej niż PLN.

Kurs NBP — który kurs i z którego dnia

Ustawa o VAT (art. 31a) precyzuje, jaki kurs należy zastosować do przeliczenia podstawy opodatkowania w walucie obcej:

  • Zasada ogólna: stosuje się średni kurs NBP z ostatniego dnia roboczego poprzedzającego dzień powstania obowiązku podatkowego.
  • Obowiązek podatkowy powstaje zazwyczaj w dniu wystawienia faktury lub w dniu dokonania dostawy/świadczenia usługi — zależy od rodzaju transakcji (wcześniejsze zdarzenie).
  • Alternatywa: podatnik może zdecydować o stosowaniu kursu z ostatniego dnia roboczego poprzedzającego dzień wystawienia faktury — ale musi stosować tę metodę konsekwentnie i nie mieszać z metodą podstawową.

Konkret: wystawiasz fakturę 15 maja 2026 (piątek). Obowiązek podatkowy powstał 14 maja (czwartek) — bo usługa została wykonana 14 maja. Kurs NBP bierzesz z 13 maja (środa — ostatni dzień roboczy przed obowiązkiem podatkowym). Sprawdź tabelę kursów NBP na stronie nbp.pl.

Jak wypełnić pola kursowe w schemacie FA(3)

W schemacie FA(3) pola kursowe umieszczone są w sekcji nagłówkowej faktury:

  • KodWaluty — trzyliterowy kod waluty ISO 4217 (np. EUR, USD, GBP, CHF, DKK, SEK, NOK). Podajesz kod waluty, w której wyrażona jest wartość transakcji.
  • KursWaluty — średni kurs NBP jako liczba dziesiętna z czterema miejscami po przecinku (np. 4.2531). Uwaga: separator dziesiętny to kropka, nie przecinek.
  • DataKursu — data, z której pochodzi kurs NBP, w formacie YYYY-MM-DD (np. 2026-05-13).

Przykład dla faktury w EUR:

  • KodWaluty: EUR
  • KursWaluty: 4.2531 (kurs NBP z dnia poprzedzającego obowiązek podatkowy)
  • DataKursu: 2026-05-13

Wartości pozycji faktury (cena jednostkowa, kwota netto, VAT) mogą być podane w EUR. W podsumowaniu faktury podajesz zarówno wartości w EUR jak i ekwiwalent w PLN (obliczony przez program jako EUR × KursWaluty). Szczegóły struktury FA(3) opisuje artykuł o schemacie FA(3) i polach obowiązkowych.

Przykład przeliczenia — faktura 10 000 EUR na PLN

Element Wartość EUR Kurs NBP Wartość PLN
Wartość netto usługi 10 000,00 EUR 4,2531 42 531,00 PLN
VAT (23%) 2 300,00 EUR 4,2531 9 782,13 PLN
Wartość brutto 12 300,00 EUR 4,2531 52 313,13 PLN
VAT odprowadzony do US 9 782,13 PLN
Różnica kursowa (dla CIT/PIT) Rozliczana osobno przy płatności Kurs zapłaty vs. kurs z faktury Koszty lub przychody

Różnice kursowe — VAT a CIT/PIT

Faktury w walutach obcych generują różnice kursowe — gdy zapłata przychodzi po kursie innym niż ten z faktury. Ważne rozróżnienie:

  • VAT: nie podlega różnicom kursowym. VAT obliczasz i odprowadzasz według kursu z daty obowiązku podatkowego — niezależnie od faktycznego kursu zapłaty. Nie koregujesz VAT z powodu różnic kursowych.
  • CIT/PIT (podatek dochodowy): różnice kursowe wpływają na podstawę opodatkowania. Jeśli EUR wzrósł w stosunku do daty faktury, masz przychód z różnic kursowych; jeśli spadł — koszt. Rozliczasz to w podatku dochodowym, nie w VAT.

Kurs NBP — gdzie go sprawdzić i jak pobrać

Tabele kursów średnich NBP są publikowane codziennie w dni robocze na stronie nbp.pl w sekcji „Kursy walut”. Dostępne są:

  • Tabela A — kursy średnie walut obcych, publikowana zazwyczaj ok. godz. 11:50 w dni robocze.
  • Format pliku: XML lub CSV — możliwy do automatycznego pobierania przez programy do fakturowania.

Dobry program do fakturowania w KSeF powinien automatycznie pobierać kurs NBP z nbp.pl w momencie wystawienia faktury i wstawiać go do pól KursWaluty i DataKursu bez Twojego udziału. Sprawdź, czy Twój program oferuje tę funkcję — ręczne wpisywanie kursu co fakturę jest uciążliwe i podatne na błędy.

Faktury walutowe w JPK_V7M(3)

W ewidencji JPK_V7M wykazujesz wartości faktur walutowych w PLN (przeliczone po kursie NBP). Numer KSeF faktury walutowej jest taki sam jak dla każdej innej faktury — system KSeF nadaje go niezależnie od waluty. Sprawdź powiązanie numeru KSeF z JPK_V7M w artykule o numerze KSeF w JPK_V7M.

FAQ — najczęstsze pytania o faktury walutowe w KSeF

Czy mogę wystawić fakturę w USD, jeśli nabywca jest z Polski?

Tak — strony transakcji mogą umówić się na rozliczenie w dowolnej walucie, nawet jeśli obie są polskimi podmiotami. Ważne: VAT i tak obliczasz i odprowadzasz w PLN po kursie NBP. Faktura w USD z polskim VAT przeliczonym na PLN jest całkowicie dopuszczalna.

Czy kurs z dnia wystawienia faktury zawsze jest prawidłowy?

Nie zawsze — kurs bierzesz z dnia poprzedzającego obowiązek podatkowy, a nie z dnia wystawienia faktury. Jeśli faktura jest wystawiona dzień po wykonaniu usługi, kurs bierzesz z dnia poprzedzającego datę wykonania usługi (a nie wystawienia). Upewnij się, że Twój program zna datę obowiązku podatkowego, a nie tylko datę wystawienia.

Co jeśli NBP nie opublikował kursu w danym dniu (np. dzień wolny)?

Gdy dzień poprzedzający obowiązek podatkowy jest dniem wolnym od pracy lub NBP nie opublikował kursu, bierzesz kurs z ostatniego dnia roboczego, w którym kurs był opublikowany. Program do faktur powinien automatycznie obsługiwać tę sytuację.

Czy faktura eksportowa (stawka 0%) też wymaga pola KursWaluty?

Tak — jeśli faktura eksportowa jest wystawiona w walucie obcej (co jest powszechne), musisz podać KursWaluty. Schemat FA(3) nie rozróżnia faktur eksportowych od krajowych w kwestii wymagania pól kursowych — jeśli waluta ≠ PLN, pola kursowe są obowiązkowe.

Co dalej

Jeśli wystawiasz faktury w EUR, USD lub innych walutach i chcesz, żeby program automatycznie pobierał kurs NBP i wypełniał pola kursowe w FA(3) — sprawdź cennik KSeFakt albo listę funkcji. Dołącz do listy oczekujących i fakturuj walutowo bez ręcznych przeliczników.