Wróć do Insights
Płatności11 min czytania

Fakturowanie w EUR lub USD: kurs NBP, VAT i KSeF krok po kroku

Fakturowanie walutowe w KSeF dodaje warstwę pułapek do reguł, które były stabilne od lat. Kurs zależy od daty powstania obowiązku podatkowego, ale tryb online uznaje fakturę za wystawioną w dniu transmisji. KSeF akceptuje każdą wartość kursu bez walidacji.

Fakturowanie w EUR lub USD: kurs NBP, VAT i KSeF krok po kroku

Reguła fakturowania walutowego w Polsce jest stabilna od Slim VAT w 2021: użyj średniego kursu NBP z ostatniego dnia roboczego przed powstaniem obowiązku podatkowego. KSeF nie zmienił tej reguły. To, co KSeF dodał, to warstwa pułapek, którą incumbenci opisują powierzchownie, oraz zestaw pól FA(3), które czynią kurs strukturalnie obowiązkowym w XML, mimo że system nigdy nie waliduje jego wartości.

Reguła w jednym zdaniu

Użyj średniego kursu NBP z ostatniego dnia roboczego przed powstaniem obowiązku podatkowego (art. 31a ust. 1-2 ustawy o VAT). Jeśli faktura jest wystawiona przed powstaniem obowiązku podatkowego, użyj ostatniego dnia roboczego przed datą wystawienia. Reguła weekendu sięga do tabeli z piątku.

VAT musi być zawsze wyrażony w PLN (art. 106e ust. 11). Kwoty netto i brutto mogą pozostać w walucie obcej. Pole KursWaluty w FA(3) przenosi użyty kurs, z 6 miejscami po przecinku.

Pułapka daty transmisji

W trybie online KSeF uznaje fakturę za wystawioną w dniu przesłania do systemu. Nie w dniu sporządzenia. Nie w dniu kliknięcia „utwórz". W dniu transmisji.

To ma znaczenie, ponieważ obowiązek podatkowy dla większości usług B2B to data wystawienia. Jeśli sporządzisz fakturę w piątek, ale prześlesz ją do KSeF w poniedziałek, uznana data wystawienia to poniedziałek. Zastosowany kurs NBP to z ostatniego dnia roboczego przed poniedziałkiem, czyli piątku. Ale jeśli obliczyłeś kurs na podstawie tabeli z czwartku (ostatni dzień roboczy przed piątkową datą sporządzenia), Twój kurs jest błędny.

Faktura przejdzie walidację KSeF. System nie sprawdza, czy KursWaluty odpowiada jakiejkolwiek tabeli NBP. Sprawdza, że pole jest obecne i sformatowane jako liczba z 6 miejscami po przecinku. Błędny kurs daje formalnie poprawną, ale merytorycznie błędną fakturę. Błąd ujawnia się podczas uzgadniania, podczas kontroli lub gdy księgowy nabywcy zauważa, że pozycja VAT w PLN nie odpowiada jego obliczeniom.

Tryb offline24 zachowuje datę wystawienia P_1 (datę, którą wpisujesz na fakturze), więc obliczenie kursu opiera się na dacie wpisanej na fakturze, nie na dacie, gdy KSeF ją otrzymał. To jeden z nielicznych przypadków, gdy tryb offline jest bezpieczniejszy niż tryb online dla faktur walutowych.

Co musi być w PLN

Tylko kwota VAT. Pozycja VAT na fakturze pokazuje odpowiednik w PLN dla VAT w walucie obcej. Netto i brutto mogą pozostać w EUR, USD lub innej walucie, w której fakturowujesz.

Obliczenie: kwota netto w walucie obcej razy kurs NBP równa się odpowiednikowi netto w PLN. PLN netto razy stawka VAT równa się VAT w PLN. Faktura pokazuje obie: netto i brutto w walucie obcej, VAT w PLN.

Zaokrąglanie: kwota VAT w PLN jest zaokrąglana do najbliższego grosza (0,01 zł). Różnica zaokrąglania między obliczonym VAT w PLN a zaokrągloną kwotą jest księgowana na konto różnic kursowych.

Pola walutowe FA(3)

PoleTreśćFormat
KodWalutyKod waluty ISO 42173-literowy ciąg (EUR, USD, GBP)
KursWalutyUżyty kurs wymianyLiczba z 6 miejscami po przecinku
KursWalutyZKurs dla rozliczeń (opcjonalny)Liczba z 6 miejscami po przecinku

KSeF akceptuje każdą wartość numeryczną w KursWaluty. Kurs 1.000000 lub 999.999999 przejdzie walidację schematu. System sprawdza obecność i format, nie poprawność. Dlatego walidacja przed wysłaniem względem tabeli NBP to funkcja produktu, nie ćwiczenie dokumentacyjne.

Zaliczki w walucie obcej

Każda zaliczka tworzy własny obowiązek podatkowy i używa kursu NBP z ostatniego dnia roboczego przed tą zaliczką. Faktura końcowa nie przelicza części zaliczek. Zachowuje każdą zaliczkę po jej historycznym kursie i stosuje aktualny kurs tylko do salda pozostałego.

Przykład: firma budowlana fakturowuje zaliczkę 10 000 EUR w marcu (kurs 4,32 zł/EUR) i końcowe 5 000 EUR w maju (kurs 4,28 zł/EUR). Faktura końcowa pokazuje:

  • Część zaliczkowa: 10 000 EUR po 4,32 zł/EUR (kurs marcowy)
  • Saldo pozostałe: 5 000 EUR po 4,28 zł/EUR (kurs majowy)
  • VAT w PLN obliczony na każdej części po odpowiednim kursie

To najtrudniejszy przypadek mechaniczny w fakturowaniu walutowym. Błąd produkuje formalnie poprawną fakturę KSeF z błędnym VAT w PLN, co ujawnia się jako korekta tygodnie później.

Korekty i kursy walut

Korekty używają kursu z oryginalnej faktury dla korekt pierwotnej przyczyny (błędna ilość, błędna cena). Jeśli korekta dotyczy przyczyny, która tworzy nowy obowiązek podatkowy, kurs jest z daty nowego obowiązku.

Jeden obszar spornej interpretacji: korekty, które zmieniają obowiązek podatkowy. Ścieżka interpretacyjna KIS nie jest w pełni ustalona, czy korekta przesuwająca datę dostawy powinna używać kursu oryginalnego czy nowego. Jeśli jesteś w tej sytuacji, skonsultuj się z doradcą podatkowym. Oznacz ryzyko interpretacyjne w dokumentacji korekty.

Sytuacje szczególne

Fakturowanie w poniedziałek: Jeśli obowiązek podatkowy przypada w poniedziałek, ostatni dzień roboczy przed nim to piątek. Użyj tabeli NBP z piątku.

Kurs EBC: Dla niektórych transakcji (w szczególności usług wewnątrzunijnych) można użyć kursu referencyjnego EBC zamiast kursu NBP. Wybór zależy od typu transakcji i polityki rachunkowości podatnika. Udokumentuj, którego kursu użyłeś i dlaczego.

Reguła 12 miesięcy: Jeśli faktura jest wystawiona w ciągu 12 miesięcy od powstania obowiązku podatkowego, kurs jest z ostatniego dnia roboczego przed obowiązkiem podatkowym. Jeśli wystawiona później, kurs jest z ostatniego dnia roboczego przed datą wystawienia. To rzadko ma zastosowanie w praktyce, ponieważ KSeF czyni wystawienie i transmisję niemal jednoczesnymi.

Scenariusz: freelancer IT fakturowujący w EUR

Freelancer IT fakturowuje polskiego klienta na 8 000 EUR za kamień milowy projektu. Obowiązek podatkowy przypada w piątek, 24 lipca 2026. Freelancer sporządza fakturę w piątek, ale transmituje ją do KSeF w poniedziałek, 27 lipca 2026.

Błędne podejście: Freelancer oblicza kurs na podstawie tabeli NBP z czwartku (ostatni dzień roboczy przed piątkową datą sporządzenia). Kurs: 4,3052 zł/EUR. VAT w PLN: 8 000 * 4,3052 * 23% = 7 921,57 zł.

Prawidłowe podejście: Uznana data wystawienia to poniedziałek (data transmisji). Ostatni dzień roboczy przed poniedziałkiem to piątek. Użyj tabeli NBP z piątku. Kurs: 4,3118 zł/EUR. VAT w PLN: 8 000 * 4,3118 * 23% = 7 933,71 zł.

Różnica to 12,14 zł w VAT. Wystarczająco mała, by ją przeoczyć, wystarczająco duża, by wywołać korektę podczas uzgadniania.

Pola FA(3) na fakturze:

  • KodWaluty: EUR
  • KursWaluty: 4.311800
  • Netto: 8 000,00 EUR
  • VAT (PLN): 7 933,71 zł
  • Brutto: 8 000,00 EUR

Dziesięć sprawdzeń przed wysłaniem faktury walutowej

  1. Data obowiązku podatkowego: Potwierdź faktyczny obowiązek podatkowy, nie datę sporządzenia.
  2. Data transmisji: Jeśli transmitujesz online, uznana data wystawienia to dzień transmisji. Oblicz kurs odpowiednio.
  3. Tabela NBP: Pobierz kurs z ostatniego dnia roboczego przed obowiązkiem podatkowym (lub datą wystawienia, jeśli wcześniejsza). Zapisz numer i datę tabeli.
  4. Reguła weekendu: Jeśli ostatni dzień roboczy to piątek, użyj tabeli z piątku. Nie przeskakuj do poniedziałku.
  5. VAT w PLN: Oblicz VAT w PLN. Netto i brutto pozostają w walucie obcej.
  6. Format KursWaluty: 6 miejsc po przecinku. Bez przecinków. Użyj kropki jako separatora dziesiętnego.
  7. KodWaluty: Prawidłowy kod ISO 4217 (EUR, USD, GBP, CHF).
  8. Części zaliczkowe: Jeśli faktura zawiera części zaliczkowe, każda zachowuje swój historyczny kurs.
  9. Zaokrąglanie: Zaokrąglij VAT w PLN do 0,01. Zaksięguj różnicę zaokrąglania.
  10. Pochodzenie NBP: Przechowaj numer i datę tabeli NBP z rekordem faktury. Będziesz tego potrzebować podczas kontroli.

Silnik walutowy Plandesk wykonuje wszystkie dziesięć sprawdzeń. Pobiera kurs NBP z właściwej tabeli, ostrzega, jeśli data transmisji przesuwa zastosowany kurs, dzieli części zaliczkowe po historycznych kursach i przechowuje pochodzenie tabeli NBP przy każdej fakturze. Sprawdzenia istnieją, ponieważ KSeF ich nie wykonuje, a koszt błędu to korekta w reżimie, w którym korekty są trudniejsze niż kiedykolwiek.

Niniejszy materiał ma charakter informacji ogólnej i nie stanowi porady prawnej ani podatkowej. W konkretnej sytuacji zweryfikuj aktualne przepisy lub skonsultuj się z doradcą.