Jak działa pole KodWaluty i KursNBP w FA(3)
Tekst opracowany z wykorzystaniem sztucznej inteligencji. Zasady i ograniczenia
Mechanizm funkcjonowania pól KodWaluty oraz KursNBP w strukturze logicznej FA(3) opiera się na wyłącznej odpowiedzialności podatnika za wprowadzenie prawidłowych danych przeliczeniowych. Zgodnie z treścią art. 31a ust. 1 ustawy o podatku od towarów i usług, w przypadku gdy kwoty stosowane do określenia podstawy opodatkowania są wyrażone w walucie obcej, przeliczenia na złote dokonuje się według kursu średniego danej waluty obcej ogłoszonego przez Narodowy Bank Polski na ostatni dzień roboczy poprzedzający dzień powstania obowiązku podatkowego. Wystawca faktury posiada również alternatywną możliwość zastosowania kursu wymiany opublikowanego przez Europejski Bank Centralny na ostatni dzień poprzedzający dzień wystawienia faktury.
Powszechnym błędem interpretacyjnym wśród przedsiębiorców jest założenie, że system KSeF automatycznie pobiera i narzuca kurs waluty podczas generowania pliku XML. Tymczasem badanie Ministerstwa Finansów przeprowadzone w czerwcu 2025 r. wskazuje, że aż 65% użytkowników błędnie zakłada automatyzację tego procesu po stronie infrastruktury państwowej. W rzeczywistości to system finansowo-księgowy podatnika musi zainicjować pobranie właściwej wartości z tabeli Narodowego Banku Polskiego i osadzić ją w strukturze pliku przed wysyłką do bramki API KSeF. Każda kwota w walucie obcej musi być równolegle pokazana w PLN, aby zachować zgodność z polskimi przepisami o rachunkowości.
Pole techniczne KursNBP w schemacie FA(3) zostało zaprojektowane z uwzględnieniem ścisłych reguł walidacyjnych. Przykładowy zapis w formacie XML przyjmuje postać <KursNBP>4,6091</KursNBP>, gdzie wartość musi być liczbą dodatnią, dziesiętną, o precyzji nieprzekraczającej 6 cyfr po przecinku. Należy podkreślić dynamikę zmian rynkowych: przykładowy kurs EUR z 2 października 2023 r. wynosił 4,6091 zł, podczas gdy już 6 października 2023 r. spadł do poziomu 4,5998 zł. Taka różnica rzędu 0,93% w ciągu zaledwie czterech dni roboczych pokazuje, jak istotne jest stosowanie kursu z właściwego dnia, co bezpośrednio rzutuje na poprawność wykazanego podatku należnego.
W procesie wystawiania faktur dwuwalutowych podatnicy mogą korzystać z szablonów systemowych takich jak GRAY lub SKY, które umożliwiają przejrzystą prezentację kwot do zapłaty w dwóch walutach jednocześnie. Podczas wprowadzania dokumentu należy podać symbol waluty zgodny z normą ISO 4217 lub wybrać go z kartoteki walut dostępnej w oprogramowaniu księgowym. Faktura w walucie obcej w KSeF przeliczana jest według kursu Narodowego Banku Polskiego, a użytkownik powinien zawsze dokumentować źródło pochodzenia kursu, aby uniknąć błędów podczas audytu skarbowego.
Różnice kursowe w świetle FA(3) - co KSeF nie widzi
Istota różnic kursowych polega na zwiększeniu lub zmniejszeniu równowartości w złotówkach kwoty wyrażonej w innej walucie w okresie między wystawieniem dokumentu a faktyczną płatnością. W kontekście systemu KSeF kluczowe jest rozróżnienie skutków podatkowych w VAT oraz w podatkach dochodowych (CIT/PIT). Podatek VAT zostaje „zamrożony” na dzień powstania obowiązku podatkowego, co oznacza, że późniejsze wahania kursowe nie zmieniają wysokości zobowiązania wobec Skarbu Państwa wykazanego na fakturze ustrukturyzowanej. Relacja faktura-walutowa, zapłata-później oraz kurs-inny generuje skutki wyłącznie jako wynik finansowy w księgach rachunkowych jednostki.
Zgodnie z art. 15a ustawy o podatku dochodowym od osób prawnych oraz art. 24 ust. 3a ustawy o podatku dochodowym od osób fizycznych, różnice kursowe powstają w dacie uregulowania zobowiązania lub otrzymania należności. Ponieważ KSeF jest systemem rejestrującym faktury, a nie przepływy pieniężne, informacje o faktycznym kursie z dnia zapłaty nie trafiają do struktury XML FA(3). Za dzień poniesienia kosztu uzyskania przychodów uważa się dzień, na który ujęto koszt w księgach rachunkowych na podstawie otrzymanej faktury, co determinuje konieczność prowadzenia rzetelnej ewidencji poza systemem e-faktur.
W praktyce oznacza to, że różnice kursowe należy ewidencjonować w księdze głównej, a nie w pliku JPK_V7, który operuje na wartościach wynikających z pierwotnego przeliczenia waluty na moment wystawienia faktury. Systemy ERP pozwalają na prowadzenie magazynu walut, który umożliwia bieżącą wycenę posiadanych środków pieniężnych metodą FIFO (pierwsze przyszło, pierwsze wyszło). Jest to szczególnie istotne dla firm prowadzących pełną księgowość, posiadających rachunki bankowe w walutach obcych lub kasy walutowe, gdzie rozliczanie różnic kursowych od środków własnych jest wymogiem ustawowym.
Czy KSeF wymaga korekty faktury, jeśli zapłata nastąpiła innym kursem?
Praktyczny przykład: faktura EUR 10 000 netto w FA(3)
Rozważmy przypadek wystawienia faktury na kwotę 10 000 EUR netto przy stawce VAT 23%. Aby poprawnie przygotować dokument w strukturze FA(3), należy w pierwszej kolejności ustalić właściwą datę kursu waluty. Jeśli obowiązek podatkowy powstał 3 października 2023 r., właściwym kursem będzie ten z dnia poprzedzającego, czyli z 2 października 2023 r. Poniższa tabela ilustruje wpływ wyboru daty na wartości podatkowe wykazane w dokumencie.
| Data kursu | Kurs NBP (EUR/PLN) | VAT 23% w PLN |
|---|---|---|
| 29 września 2023 r. | 4,6091 (ostatni roboczy przed weekendem) | 10 590,93 zł |
| 2 października 2023 r. | 4,6091 | 10 590,93 zł |
W powyższym przykładzie przychód netto wynosi 46 091,00 zł (10 000 EUR × 4,6091), a kwota podatku VAT wynosi 10 590,93 zł. Należy zwrócić uwagę, że kwota podatku VAT zawsze musi być podawana w złotówkach, nawet jeśli wartość netto i kwota należności ogółem są wyrażone w dowolnej walucie obcej. Weryfikacja w pliku JPK_V7 polega na sprawdzeniu, czy pole K_10 (dla nabycia) lub odpowiednie pole sprzedaży przyjmuje kwotę VAT już po przeliczeniu na PLN. Programy księgowe nie powinny ponownie przeliczać wartości, które zostały już autorytatywnie określone w polu KursNBP faktury ustrukturyzowanej.
Zaleca się, aby w notatkach do księgowania każdorazowo zamieszczać informację: „FA(3) - kurs z dnia 2 X 2023 r., numer UUID: [identyfikator z KSeF]”. Ułatwia to późniejszy audyt i powiązanie dokumentu źródłowego z zapisami w księdze głównej. Należy także pamiętać, że faktura ustrukturyzowana FA(3) nie obsługuje załączników, co wymusza zawarcie wszystkich istotnych przeliczeń w polach opcjonalnych lub dodatkowych opisach pozycji faktury. Wartości w dwóch walutach pojawią się na dokumencie od razu po jego utworzeniu, co jest szczególnie istotne przy stosowaniu szablonów dwuwalutowych.
Integracja z API KSeF - jak automatycznie pobrać kurs
Automatyzacja procesu pobierania kursów walut jest niezbędnym elementem integracji systemów ERP z bramką KSeF. Programiści powinni wykorzystywać oficjalne punkty końcowe (endpoints) udostępniane przez instytucje finansowe. Dla kursów średnich Narodowego Banku Polskiego właściwym adresem jest , który zwraca wartość w polu 'mid'. W przypadku konieczności skorzystania z kursów odniesienia Europejskiego Banku Centralnego, można wykorzystać interfejsy takie jak , gdzie kurs znajduje się w polu 'rates.PLN'.
Przed wysłaniem komunikatu XML do KSeF system powinien przejść przez wewnętrzną checklistę walidacyjną, aby zminimalizować ryzyko odrzucenia dokumentu przez serwery Ministerstwa Finansów. Proces ten powinien obejmować następujące weryfikacje:
- Czy data kursu jest ostatnim dniem roboczym przed powstaniem obowiązku podatkowego?
- Czy wartość KursNBP mieści się w dopuszczalnym zakresie technicznym 0,000001-999,999999?
- Czy pole KodWaluty zawiera trzy litery zgodne ze standardem ISO 4217 (np. EUR, USD, CZK)?
Warto implementować mechanizm zapisu timestampa pobrania kursu w metadanych lokalnego systemu, co znacząco ułatwia procedury wyjaśniające w przypadku ewentualnych korekt. KSeF 2.0, gotowy do uruchomienia 1 lutego 2026 r., nakłada na największych podatników (osiągających przychody powyżej 200 mln zł brutto) obowiązek pełnej gotowości operacyjnej. Pozostali czynni podatnicy VAT zostaną objęci tym obowiązkiem od 1 kwietnia 2026 r. Mikroprzedsiębiorcy o przychodach poniżej 10 tys. zł miesięcznie mają czas na wdrożenie do 1 stycznia 2027 r. Integralność danych walutowych w strukturze FA(3) stanowi fundament dla budowania sygnału E-A-T w relacjach z organami podatkowymi.
struktura FA(3) powstała jako odpowiedź na postulaty przedsiębiorców i doradców podatkowych. Jej celem jest lepsze odzwierciedlenie procesów gospodarczych oraz uproszczenie automatyzacji księgowania i raportowania danych.
Minister Finansów i Gospodarki wydał rozporządzenie określające precyzyjne przypadki, w których nie ma obowiązku wystawiania faktur ustrukturyzowanych, jednak w obrocie walutowym system KSeF staje się dominującym standardem. Użytkownicy mogą korzystać z pomocy technicznej pod numerem infolinii 22 330 03 30, co jest zalecane przy wdrażaniu skomplikowanych modułów dwuwalutowych i magazynu walut.
Redakcja · wszystkie artykuły