Kod waluty to trzyliterowe oznaczenie ustalone w standardzie ISO 4217, na przykład PLN dla polskiego złotego, EUR dla euro i USD dla dolara amerykańskiego. Każdy kod ma również swój numer – dla PLN to 985, a dla euro 978. W artykule wyjaśniamy, gdzie szukać kodów, czym różnią się od symboli graficznych i jak pobrać aktualne dane z API NBP.
Czym jest kod waluty?
Kod waluty to ujednolicone oznaczenie jednostki monetarnej, które pozwala uniknąć pomyłek w międzynarodowych transakcjach. Standard ISO 4217 opracowała Międzynarodowa Organizacja Normalizacyjna. W praktyce stosuje się wersję literową, złożoną z trzech znaków, oraz wersję numeryczną, złożoną z trzech cyfr. Na przykład polski złoty ma kod PLN i numer 985.
W dokumentach bankowych, systemach księgowych i interfejsach finansowych częściej pojawia się kod literowy. Numer bywa używany w komunikatach międzybankowych i niektórych wyciągach. Dla euro kod to EUR i numer 978, natomiast dla dolara amerykańskiego USD i numer 840.
Warto pamiętać, że kod nie zawsze pokrywa się z popularnym skrótem stosowanym w danym kraju. W Polsce w codziennym zapisie używa się skrótu zł, a nie kodu PLN. W przypadku dolara pojawia się także zapis dol., choć na rynku międzynarodowym właściwy jest USD.
Jakie są najpopularniejsze kody i symbole walut?
Symbole graficzne, takie jak $, € czy £, nie są tym samym co trzyliterowe kody ISO. Niektóre waluty mają bardzo podobne lub wręcz identyczne znaki, co bywa mylące. Na przykład jen japoński i juan chiński używają znaku ¥, a kilka krajów posługuje się znakiem $.
Dlatego w systemach wymiany danych, fakturowaniu i tabelach kursów zdecydowanie bezpieczniej jest podawać kod ISO 4217. Poniższa tabela zawiera zestawienie często spotykanych walut wraz z kodem literowym, numerem i symbolem graficznym.
| Kraj | Waluta | Kod ISO | Numer ISO | Symbol |
| Polska | polski złoty | PLN | 985 | zł |
| Strefa euro | euro | EUR | 978 | € |
| Stany Zjednoczone | dolar amerykański | USD | 840 | $ |
| Wielka Brytania | funt szterling | GBP | 826 | £ |
| Szwajcaria | frank szwajcarski | CHF | 756 | CHF |
| Japonia | jen japoński | JPY | 392 | ¥ |
| Chiny | yuan (renminbi) | CNY | 156 | ¥ |
| Australia | dolar australijski | AUD | 036 | $ |
| Kanada | dolar kanadyjski | CAD | 124 | $ |
| Nowa Zelandia | dolar nowozelandzki | NZD | 554 | $ |
| Czechy | korona czeska | CZK | 203 | Kč |
| Węgry | forint węgierski | HUF | 348 | Ft |
| Dania | korona duńska | DKK | 208 | kr |
| Szwecja | korona szwedzka | SEK | 752 | kr |
| Norwegia | korona norweska | NOK | 578 | kr |
| Turcja | lira turecka | TRY | 949 | ₺ |
| Izrael | nowy szekel izraelski | ILS | 376 | ₪ |
| RPA | rand południowoafrykański | ZAR | 710 | R |
Jak sprawdzić kod waluty za pomocą API NBP?
Serwis api.nbp.pl udostępnia publiczne Web API, które umożliwia klientom HTTP wykonywanie zapytań o kursy walut. Adres bazowy to https://api.nbp.pl/api/. Od 1 sierpnia 2025 r. cała komunikacja z tym API musi odbywać się przez protokół HTTPS, a starszy protokół HTTP do usług API nie jest już wspierany.
Domyślną formą odpowiedzi serwisu jest JSON. Można też włączyć XML na dwa sposoby – przez parametr zapytania ?format lub przez nagłówek HTTP Accept. Odpowiedź może więc zależeć od tego, jak skonfigurujesz klienta HTTP.
Jeśli nie określono formatu, API NBP zwraca dane w formacie JSON. Parametr ?format=json działa tak samo jak nagłówek Accept: application/json, a ?format=xml odpowiada nagłówkowi Accept: application/xml.
Najważniejsze parametry zapytań
W adresach URL stosuje się parametry, które decydują o typie notowań, walucie i zakresie dat:
- {table} – typ tabeli: A, B lub C,
- {code} – trzyliterowy kod waluty w standardzie ISO 4217,
- {topCount} – maksymalna liczność zwracanej serii danych,
- {date}, {startDate}, {endDate} – daty w formacie RRRR-MM-DD zgodnym z ISO 8601.
Pojedyncze zapytanie o dane archiwalne nie może obejmować przedziału dłuższego niż 93 dni. Przy braku danych serwis zwraca 404 Not Found, a przy przekroczeniu limitu zwracanych danych 400 Bad Request – Przekroczony limit.
Przykłady zapytań o kursy
Oto przykładowe adresy, które zwracają dane z tabel kursów i notowań złota:
- https://api.nbp.pl/api/exchangerates/tables/a/ – kompletna bieżąca tabela kursów typu A,
- https://api.nbp.pl/api/exchangerates/rates/a/chf/ – aktualny kurs franka szwajcarskiego z tabeli A,
- https://api.nbp.pl/api/exchangerates/rates/c/usd/today/ – dzisiejszy kurs kupna i sprzedaży dolara z tabeli C,
- https://api.nbp.pl/api/exchangerates/rates/a/gbp/last/10/?format=json – dziesięć ostatnich kursów funta w formacie JSON,
- https://api.nbp.pl/api/cenyzlota/ – aktualne notowania ceny złota.
Kody i numery walut w dokumentach i systemach
W fakturowaniu i integracjach księgowych sam kod waluty może nie wystarczyć. Programy czasem wymagają także poprawnego kursu, zwłaszcza gdy dokument trafia do KSeF. Brak kursu potrafi wywołać komunikat o ujemnym lub zerowym kursie waluty, mimo że kod waluty w dokumencie jest poprawny.
Dlatego w systemach ERP i aplikacjach finansowych warto sprawdzać komplet danych: kod ISO, numer ISO oraz kurs wymiany z konkretnego dnia. Tabela kursów NBP z 12 sierpnia 2026 r. zawiera między innymi kurs średni 1 USD równy 3,7300 oraz 1 EUR równy 4,3033. W ten sposób łatwo zweryfikować, czy faktura w euro została przeliczona po właściwym kursie.
Jak czytać oznaczenia walut w tabelach kursów?
Narodowy Bank Polski publikuje notowania w trzech typach tabel, a każda z nich ma inne zastosowanie. Tabela A obejmuje kursy średnie, tabela B dotyczy walut niewymienialnych, a tabela C zawiera kursy kupna i sprzedaży.
Kursy z tabeli A, B i C
Do przeliczania faktur najczęściej stosuje się kurs średni z tabeli A. W tabeli z 12 sierpnia 2026 r. wybrane kursy średnie wyglądają następująco:
| Waluta | Kod | Kurs średni |
| dolar amerykański | 1 USD | 3,7300 |
| euro | 1 EUR | 4,3033 |
| funt szterling | 1 GBP | 5,0393 |
| frank szwajcarski | 1 CHF | 4,5892 |
| jen japoński | 100 JPY | 2,3411 |
| korona czeska | 1 CZK | 0,1775 |
| forint węgierski | 100 HUF | 1,1802 |
| korona szwedzka | 1 SEK | 0,3911 |
Kurs średni a kurs kupna i sprzedaży
W tabeli C z tego samego dnia kurs kupna i kurs sprzedaży różnią się od kursu średniego. Dla dolara amerykańskiego kurs kupna wynosi 3,6874, a sprzedaży 3,7618. W przypadku euro to odpowiednio 4,2599 i 4,3459. Różnica między tymi wartościami to marża, która ma znaczenie przy transakcjach gotówkowych i bezgotówkowych.
W aplikacjach bankowych i kalkulatorach walut często podaje się właśnie kursy z tabeli C, bo lepiej odzwierciedlają realny koszt przewalutowania. Średni kurs NBP służy głównie celom statystycznym, podatkowym i fakturowym.
FAQ – najczęściej zadawane pytania
Co oznacza kod waluty i kto ustala standard ISO 4217?
Kod waluty to trzyznakowe, ujednolicone oznaczenie waluty stosowane w transakcjach międzynarodowych. Standard ISO 4217 został opracowany przez Międzynarodową Organizację Normalizacyjną.
Czym różni się kod literowy od numeru ISO waluty?
Kod literowy to trzy litery identyfikujące walutę, a numer ISO to trzycyfrowy identyfikator tej samej jednostki. W praktyce litery używa się częściej w dokumentach, a numer w komunikacji międzybankowej.
Dlaczego warto stosować kody ISO zamiast symboli graficznych?
Symbole graficzne mogą być podobne lub takie same dla różnych walut i wprowadzać w błąd. Kody ISO zapewniają jednoznaczność w systemach wymiany danych i fakturowaniu.
Jakie są przykładowe kody i numery dla PLN, EUR i USD?
Dla polskiego złotego kod to PLN, numer 985; dla euro kod EUR, numer 978; dla dolara amerykańskiego kod to USD, numer 840. Te oznaczenia są używane w tabelach i systemach finansowych.
Jak połączyć się z API NBP, aby pobrać kursy walut?
Podstawowy adres to https://api.nbp.pl/api/ i wszystkie żądania muszą używać HTTPS. Domyślnie serwis zwraca dane w formacie JSON, a XML można wymusić parametrem ?format lub nagłówkiem Accept.
Jakie parametry można użyć w zapytaniach do API NBP?
W URL stosuje się parametry typu tabeli {table}, trzyliterowy kod waluty {code}, liczność serii {topCount} oraz daty {date}, {startDate}, {endDate}. Daty muszą być w formacie RRRR-MM-DD zgodnym z ISO 8601.
Jakie ograniczenia ma API NBP dotyczące zakresu dat?
Pojedyncze zapytanie archiwalne nie może obejmować okresu dłuższego niż 93 dni. Przy braku danych serwis zwraca 404, a przy przekroczeniu limitu danych 400 z informacją o przekroczeniu limitu.
Które tabele kursów NBP używa się do przeliczania faktur i czym się różnią?
Do fakturowania zwykle stosuje się kurs średni z tabeli A, natomiast tabela C zawiera kursy kupna i sprzedaży używane przy rzeczywistych przewalutowaniach. Tabela B dotyczy walut niewymienialnych.