Aktualizacja:

Kursy walut NBP dla programisty B2B

Tabela A, dzień poprzedzający i narzędzia do faktury w euro oraz różnic kursowych na JDG.

Kolorowe kontenery i dźwigi w porcie przeładunkowym o zmierzchu – handel zagraniczny i kursy walut

Jeśli fakturujesz klienta z Niemiec, Stanów albo Polski w euro lub dolarach, do VAT i PIT nie bierzesz kursu z kantoru ani z aplikacji banku. Bierzesz kurs średni Narodowego Banku Polskiego z tabeli A, z ostatniego dnia roboczego poprzedzającego konkretne zdarzenie. Ta strona pokazuje ostatnią tabelę A dostępną w momencie budowy serwisu i prowadzi do narzędzi, które liczą datę kursu, kwotę w złotych i różnicę kursową.

Informacje ogólne

To nie jest porada podatkowa. Przepisy opisujemy tak, jak wynikają z ustaw i źródeł urzędowych. Rozliczenie konkretnej faktury potwierdź z księgowym.

Ostatnia tabela A: EUR, USD, GBP, CHF

Poniższe liczby pochodzą z pobrania przy budowie strony (Dane z: 22 października 2026). Nie są „kursem na teraz” w sensie kantoru. To ostatnia opublikowana tabela A. NBP podaje ją w każdy dzień roboczy, zwykle między 11:45 a 12:15. Jeśli otwierasz stronę rano, w tabeli jest jeszcze wczoraj albo ostatni dzień publikacji.

Ostatnia tabela A dostępna przy budowie strony. Kurs średni za 1 jednostkę waluty. Źródło: NBP, tabela 205/A/NBP/2026 z dnia 2026-10-21.
Waluta EUR USD GBP CHF
Kurs średni 4,36413,88895,21124,7167
Numer tabeli 205/A/NBP/2026
Data tabeli (effectiveDate) 21 października 2026 (2026-10-21)

Źródło: NBP. Pełna tabela A na nbp.pl.

Do czego to programiście

Typowy układ na B2B wygląda tak: umowa w euro, faktura raz w miesiącu, wpływ na konto walutowe albo przewalutowanie w banku, forma podatku to ryczałt 12% albo liniowy. Z tego samego kursu NBP korzystasz w kilku miejscach, ale nie zawsze z tej samej daty.

  • VAT: dzień powstania obowiązku podatkowego albo, gdy faktura jest wcześniej, dzień wystawienia faktury. Podstawa to kurs NBP do faktury.
  • PIT: dzień uzyskania przychodu albo poniesienia kosztu, z art. 11a ustawy o PIT. Data bywa inna niż data dla VAT.
  • Różnica kursowa: porównanie złotówek z dnia przychodu i z dnia zapłaty. Na ryczałcie koryguje przychód, o czym jest przewodnik o różnicach na ryczałcie.
  • Koniec miesiąca: ostatnia tabela A danego miesiąca wchodzi do zdarzeń z pierwszego dnia roboczego następnego miesiąca. Zestawienie jest na stronie kursów na koniec miesiąca.

Osobno zebraliśmy ścieżkę faktury dla klienta z UE, z USA i z Polski, łącznie z KSeF: faktura w euro. Samo przeliczenie dwóch kursów, także dla kosztów i środków własnych, jest w kalkulatorze różnic kursowych.

Tabela A, B i C

NBP publikuje trzy bieżące tabele kursów. Do podatków od euro, dolara, funta i franka używasz tabeli A, czyli kursu średniego. Tabela C to kursy kupna i sprzedaży dla kilku walut, ogłaszane rano, między 7:45 a 8:15. Nie podstawiasz jej pod art. 31a ustawy o VAT ani pod art. 11a ustawy o PIT. Tabela B obejmuje waluty rzadziej spotykane w umowach IT i jest aktualizowana w środy, a jeśli środa jest dniem wolnym, poprzedniego dnia, też między 11:45 a 12:15.

Tabela A obejmuje waluty, którymi programista faktycznie fakturuje: euro, dolar amerykański, funt, frank, korony skandynawskie, koronę czeską. Część walut NBP kwotuje za 100 albo 10 000 jednostek (jen, forint, rupia). Nasze kalkulatory biorą tylko waluty, przy których tabela podaje kurs za 1 jednostkę, żeby nie pomnożyć kwoty sto razy za dużo. Jen i forint odczytasz w pełnej tabeli na nbp.pl i podzielisz kurs przez 100.

Archiwum tabeli A w API NBP sięga 2 stycznia 2002 r. Jedno zapytanie o zakres dat może objąć najwyżej 93 dni. Brak tabeli w danym dniu kończy się odpowiedzią 404 z komunikatem o braku danych. Data z przyszłości kończy się błędem 400. Z tych dwóch odpowiedzi korzystają kalkulatory na tej stronie.

Dlaczego „dzień poprzedzający”

Kurs z tabeli A z wtorku nie służy do wtorkowej faktury. Służy do zdarzenia z następnego dnia roboczego. Ustawa o VAT w art. 31a ust. 1 każe wziąć kurs średni ogłoszony przez NBP na ostatni dzień roboczy poprzedzający dzień powstania obowiązku podatkowego. Ustawa o PIT w art. 11a ust. 1 mówi to samo o dniu uzyskania przychodu, a ust. 2 o dniu poniesienia kosztu. Art. 24c ust. 6 doprecyzowuje, że „średni kurs NBP” przy różnicach kursowych to właśnie kurs z ostatniego dnia roboczego przed dniem przychodu albo kosztu.

„Dzień roboczy” oznacza dzień, w którym NBP publikuje tabelę. Odpada sobota, niedziela i święto z ustawy o dniach wolnych od pracy. Nie odpada automatycznie każdy dzień, w którym biuro jest puste. Wielki Piątek nie jest w Polsce dniem wolnym od pracy. 18 kwietnia 2025 r. NBP opublikował tabelę nr 076/A/NBP/2025, a kurs euro wyniósł 4,2823. Dlatego zdarzenie z wtorku 22 kwietnia 2025 r. (po Wielkanocy i poniedziałku wielkanocnym) bierze kurs właśnie z 18 kwietnia, a nie z czwartku przed świętami.

Inny, już sprawdzony układ: 1 listopada 2025 r. wypadł w sobotę i był Wszystkich Świętych, 2 listopada był niedzielą. Zdarzenie z poniedziałku 3 listopada 2025 r. używa tabeli z piątku 31 października 2025 r., nr 212/A/NBP/2025, euro 4,2543. Tysiąc euro to 4 254,30 zł. Z kolei 11 listopada 2025 r. był wtorkiem i świętem, więc zdarzenie ze środy 12 listopada bierze tabelę z poniedziałku 10 listopada, nr 218/A/NBP/2025, euro 4,2351. Tysiąc euro to 4 235,10 zł. Różnica między tymi dwoma przeliczeniami tysiąca euro to 19,20 zł i dokładnie taki przykład liczy kalkulator różnic.

Od 2025 r. Wigilia, 24 grudnia, jest dniem wolnym od pracy. NBP nie opublikował tabeli A w Wigilię 2025. Ostatnią tabelą przed przerwą świąteczną była tabela z 23 grudnia 2025 r., nr 248/A/NBP/2025, euro 4,2274. Następne tabele wyszły 29, 30 i 31 grudnia (31 grudnia to tabela 251/A), potem 2 stycznia 2026 r. (001/A/NBP/2026) i 5 stycznia (002/A/NBP/2026, euro 4,2110). Zdarzenie z 29 grudnia 2025 r. bierze więc kurs z 23 grudnia. Zdarzenie z 2 stycznia 2026 r. bierze kurs z 31 grudnia 2025 r. Zdarzenie z 7 stycznia 2026 r. bierze kurs z 5 stycznia, bo 6 stycznia to Trzech Króli.

W 2024 r. Wigilia nie była jeszcze dniem wolnym. 24 grudnia 2024 r. NBP opublikował tabelę 249/A/NBP/2024, euro 4,2739. Zdarzenie z 27 grudnia 2024 r. (po Bożym Narodzeniu, które wypadło w środę i czwartek) sięga właśnie tej wigilijnej tabeli. Tego samego układu nie powtórzysz w 2025 r. ani później.

Wielkanoc 2026 wypada 5 kwietnia, poniedziałek wielkanocny 6 kwietnia. NBP nie publikuje tabeli 6 kwietnia 2026 r. Tabela z piątku 3 kwietnia 2026 r. ma numer 065/A/NBP/2026, euro 4,2776. Zdarzenie z wtorku 7 kwietnia 2026 r. używa tego kursu: sobota 4 kwietnia, niedziela wielkanocna i poniedziałek świąteczny wypadają z publikacji. Tysiąc euro to 4 277,60 zł.

Czego ten kurs nie zastępuje

Kurs średni NBP nie jest kursem, po którym bank kupi Twoje euro. Jeśli przewalutujesz wpływ, do różnicy kursowej wchodzi kurs faktycznie zastosowany przez bank, a kurs NBP zostaje przy przeliczeniu przychodu. Gdy euro zostają na rachunku walutowym i nie ma wymiany, faktycznie zastosowanego kursu nie ma. Wtedy art. 24c ust. 4 każe wziąć średni NBP z ostatniego dnia roboczego przed wpływem albo wypływem. To nie jest ust. 7. Ustęp 7 mówi tylko, co jest kosztem poniesionym i który dzień jest dniem zapłaty.

Drugi kurs, o który pytają księgowi, to kurs Europejskiego Banku Centralnego. W ustawie o VAT nie siedzi on w art. 31a ust. 2a. Zdanie drugie art. 31a ust. 1 pozwala wybrać ostatni kurs EBC z dnia poprzedzającego dzień powstania obowiązku podatkowego. Dla walut innych niż euro przelicza się je przez euro. Przy fakturze wystawionej wcześniej to samo zdanie stosuje się przez art. 31a ust. 2. Ustęp 2a to inna opcja: przeliczanie podstawy VAT tak, jak przeliczasz przychód w podatku dochodowym, przez co najmniej 12 kolejnych miesięcy (ust. 2b). Kalkulatory na tej stronie liczą wariant domyślny, czyli tabelę A NBP. Kursu EBC nie pobierają.

Kurs z końca miesiąca nie jest „kursem do wszystkich faktur z tego miesiąca”. Każda faktura ma własny dzień obowiązku podatkowego i własny dzień przychodu. Zestawienie końca miesiąca przydaje się do wyceny i do zdarzeń z pierwszego dnia roboczego nowego miesiąca. Opis jest przy tabeli miesięcznej.

Skąd bierzemy liczby

Serwis czyta publiczne API NBP pod adresem api.nbp.pl, po HTTPS, z parametrem format=json. Przy budowie strony pobieramy tabelę A w kawałkach nie dłuższych niż 93 dni. W przeglądarce kalkulator woła zakres około 14 dni przed wskazaną datą i bierze ostatni rekord, którego data jest wcześniejsza niż data zdarzenia. Dzięki temu dzień bez publikacji, święto albo awaria kalendarza nie wymaga ręcznej listy wyjątków. Jeśli data z API nie zgadza się z naszym kalendarzem świąt, pokazujemy notkę i zostawiamy datę z API.

API wolno używać bez opłaty. Przy każdym kursie na stronie jest oznaczenie „Źródło: NBP” i odsyłacz do nbp.pl. Nie odpytujemy banku w pętli. Jedno przeliczenie to jedno zapytanie o zakres, a powtórka tej samej pary dat zostaje w pamięci karty przeglądarki do odświeżenia strony.

Najczęstsze pytania

Czy tabela z dziś służy do dzisiejszej faktury?

Nie. Tabela z dziś wejdzie do zdarzenia z następnego dnia roboczego. Do dzisiejszej faktury, jeśli dziś powstał obowiązek albo dziś jest dzień przychodu, bierzesz tabelę z poprzedniego dnia publikacji. Rano, przed około 12:15, dzisiejszej tabeli jeszcze nie ma, ale do dzisiejszego zdarzenia i tak jej nie potrzebujesz.

Euro, dolar i funt są w jednej tabeli?

Tak. Tabela A z danego dnia ma jeden numer i jedną datę dla wszystkich walut z tej tabeli. Nie mieszasz numeru tabeli euro z datą tabeli dolara.

Co jeśli NBP nie opublikował tabeli, a kalendarz mówił, że to dzień roboczy?

Liczy się publikacja, nie sam kalendarz świąt. Kalkulator porównuje oba źródła. Przy rozjazdach zostawia tabelę zwróconą przez API i pisze o tym wprost. Wtedy nie zgaduj kursu z sąsiedniego dnia na oko. Otwórz archiwum tabeli A.

Gdzie wpisać kurs banku?

W kalkulatorze różnic, przy zapłacie, jako kurs faktycznie zastosowany. Kursu banku nie używasz do przeliczenia samego przychodu ani podstawy VAT, o ile nie wybrałeś świadomie zasad z art. 31a ust. 2a na potrzeby VAT.

Źródła