Kod waluty to trzyliterowe oznaczenie zgodne ze standardem ISO 4217, na przykład PLN dla polskiego złotego, EUR dla euro i USD dla dolara amerykańskiego. Najłatwiej sprawdzić go w tabelach Narodowego Banku Polskiego lub przez publiczne API NBP. W artykule wyjaśniamy różnicę między kodem a symbolem, podajemy przykłady oznaczeń i pokazujemy, jak pobrać aktualne kursy za pomocą zapytań HTTP.
Czym jest kod waluty i standard ISO 4217?
Międzynarodowa Organizacja Normalizacyjna (ISO) opracowała listę trzyliterowych kodów, które jednoznacznie identyfikują waluty na całym świecie. Taki kod składa się z wielkich liter i pochodzi najczęściej od nazwy kraju lub jednostki monetarnej. Dla polskiego złotego jest to PLN, dla wspólnej waluty europejskiej EUR, a dla dolara amerykańskiego USD.
Oprócz kodu literowego istnieje też kod numeryczny zapisany jako trzy cyfry. Przykładowo PLN ma numer 985, EUR ma numer 978, a USD ma numer 840. Kody numeryczne ułatwiają wymianę informacji między systemami finansowymi, gdyż nie wymagają rozpoznawania liter.
Warto odróżnić kod od symbolu graficznego. Symbol to znak lub ligatura, na przykład zł, €, $, £. Jeden symbol bywa wspólny dla kilku walut – znak $ stosuje się do dolara amerykańskiego, kanadyjskiego, australijskiego czy nowozelandzkiego. Kod ISO 4217 pozostaje wtedy jedynym jednoznacznym oznaczeniem.
Jak sprawdzić oznaczenia walut?
Najprostszym źródłem są tabele kursowe publikowane przez Narodowy Bank Polski. Zawierają one aktualną nazwę waluty, jej kod oraz kurs wyrażony w złotych. Można z nich odczytać na przykład, że euro ma kod EUR, a frank szwajcarski kod CHF.
Tabela wybranych kodów i symboli walut
Poniższa tabela zestawia kilka popularnych walut, ich kody oraz symbole, które często pojawiają się na fakturach i w sklepach internetowych:
| Waluta | Kod ISO 4217 | Symbol |
| euro | EUR | € |
| dolar amerykański | USD | $ |
| funt szterling | GBP | £ |
| frank szwajcarski | CHF | CHF |
| jen japoński | JPY | ¥ |
| juan chiński (renminbi) | CNY | ¥ |
| korona czeska | CZK | Kč |
| forint węgierski | HUF | Ft |
| korona norweska | NOK | kr |
| rand południowoafrykański | ZAR | R |
Zwłaszcza w przypadku symbolu $ lub ¥ widać, jak łatwo o pomyłkę. Kod w standardzie ISO 4217 pozwala uniknąć nieporozumień przy księgowaniu płatności lub wystawianiu dokumentów.
Jak znaleźć kod krok po kroku
Aby samodzielnie ustalić kod dowolnej waluty, wykonaj następujące czynności:
- ustal pełną nazwę waluty, na przykład dolar nowozelandzki,
- sprawdź tabelę kursów NBP – zawiera ona nazwę oraz kod danej jednostki,
- porównaj kod z pełną listą standardu ISO 4217, jeśli waluty nie ma w tabelach NBP,
- zwróć uwagę na symbol – gdy jest identyczny dla kilku walut, kod rozwiewa wątpliwości,
- wykorzystaj publiczne API NBP, aby automatycznie pobrać kod i aktualny kurs.
Jak korzystać z publicznego API NBP?
Narodowy Bank Polski udostępnia dane o kursach przez publiczne API pod adresem https://api.nbp.pl/api/. Od 1 sierpnia 2025 r. obsługiwany jest wyłącznie protokół HTTPS. Wcześniej używany HTTP nie jest już wspierany, co zwiększa bezpieczeństwo przesyłanych danych.
Od 1 sierpnia 2025 r. cała komunikacja z API NBP musi odbywać się za pośrednictwem protokołu HTTPS, a protokół HTTP nie jest już wspierany.
Zapytania kieruje się metodą HTTP GET, a odpowiedź może zostać zwrócona w formacie JSON lub XML. Jeśli nie podasz formatu, serwis domyślnie zwraca JSON. Możesz go wskazać przez parametr ?format=json, ?format=xml albo nagłówek Accept: application/json lub application/xml.
Daty w zapytaniach zapisuje się zgodnie ze standardem ISO 8601, czyli w układzie RRRR-MM-DD. Pojedyncze zapytanie nie może obejmować zakresu dłuższego niż 93 dni. Do limitowania liczby wyników służy parametr topCount.
Typy tabel kursowych
W API NBP występują trzy podstawowe typy tabel, oznaczane parametrem table:
- typ A – kursy średnie walut obcych,
- typ B – kursy średnie walut, które nie znalazły się w tabeli A,
- typ C – kursy kupna i sprzedaży walut obcych,
- typ C stosuje się między innymi do wyceny transakcji z kantorami lub bankami.
Sposób wyliczania i ogłaszania bieżących kursów kupna i sprzedaży reguluje Uchwała Nr 44/2025 Zarządu NBP z dnia 18 grudnia 2025 r., opublikowana w Dzienniku Urzędowym NBP z 2025 r. pod pozycją 30.
Przykładowe zapytania
W codziennej pracy z API przydają się między innymi takie wzory zapytań:
- https://api.nbp.pl/api/exchangerates/tables/a/ – ostatnia tabela A kursów średnich,
- https://api.nbp.pl/api/exchangerates/tables/a/today/ – tabela A opublikowana dziś,
- https://api.nbp.pl/api/exchangerates/rates/a/chf/ – bieżący kurs średni franka szwajcarskiego,
- https://api.nbp.pl/api/exchangerates/rates/c/usd/last/10/ – 10 ostatnich kursów kupna i sprzedaży dolara amerykańskiego,
- https://api.nbp.pl/api/cenyzlota/last/30/?format=json – 30 ostatnich notowań ceny złota w JSON.
Kursy złota i limity zapytań
Osobną grupę stanowią notowania cen złota. Zapytanie https://api.nbp.pl/api/cenyzlota zwraca bieżące dane, a wariant https://api.nbp.pl/api/cenyzlota/last/30/?format=json podaje 30 ostatnich notowań w formacie JSON. Serwis ogranicza zakres pojedynczego zapytania do maksymalnie 93 dni, dlatego dłuższe okresy trzeba dzielić na mniejsze części.
Jakie błędy zwraca API NBP?
Przy korzystaniu z API NBP można spotkać się z jasno zdefiniowanymi komunikatami. Gdy zapytanie jest niepoprawnie sformułowane, serwis zwraca 400 Bad Request. Ten sam kod pojawia się, gdy przekroczysz limit zwracanych danych – w treści znajdziesz dopisek Przekroczony limit.
Jeśli zakres dat jest prawidłowy, ale dla podanego przedziału nie ma danych, odpowiedź to 404 Not Found. Warto odróżnić ten komunikat od błędnej konstrukcji zapytania, bo dotyczy on braku danych, a nie błędu parametrów.
Prawidłowe zapytanie o pojedynczy kurs może wyglądać na przykład tak: https://api.nbp.pl/api/exchangerates/rates/a/gbp/2012-01-02/ . Dla zakresu dat od 2012-01-01 do 2012-01-31 możesz pobrać serię dzienną funta szterlinga.
Gdzie znaleźć pełną listę kodów walut?
Najpełniejsze zestawienie zawiera standard ISO 4217. Można w nim znaleźć także kody numeryczne oraz informacje o terytoriach, na których dana waluta obowiązuje. Wykaz Narodowego Banku Polskiego obejmuje waluty ujęte w tabelach kursowych i wystarcza w większości codziennych zastosowań.
Trzeba też wiedzieć, że niektóre państwa stosują więcej niż jedną jednostkę monetarną. Przykładowo w Chile obok peso chilijskiego funkcjonuje specjalna jednostka Unidad de Fomento o kodzie CLF, a w Meksyku funkcjonuje Mexican unidad de inversión z oznaczeniem MXV. W zestawieniach znajdziesz też kody metali szlachetnych, takie jak XAU dla złota czy XAG dla srebra, a także kod XDR dla specjalnych praw ciągnienia Międzynarodowego Funduszu Walutowego. Afrykański Bank Rozwoju posługuje się jednostką rozliczeniową oznaczaną jako XUA.
FAQ – najczęściej zadawane pytania
Co to jest kod waluty zgodny z ISO 4217?
To trzydużo literowe oznaczenie identyfikujące walutę międzynarodowo, zwykle pochodzące od nazwy kraju lub jednostki monetarnej.
Jaka jest różnica między kodem waluty a jej symbolem?
Kod to jednoznaczne, trzyliterowe oznaczenie, natomiast symbol to graficzny znak, który może być używany przez kilka walut.
Gdzie najprościej sprawdzić kod i kurs danej waluty w Polsce?
W tabelach kursowych publikowanych przez Narodowy Bank Polski, które zawierają nazwę, kod i kurs wyrażony w złotych.
Jakie formaty danych zwraca publiczne API NBP i jak go wymusić?
API NBP zwraca JSON lub XML; format można określić parametrem ?format=json lub ?format=xml albo nagłówkiem Accept.
Czy można korzystać z API NBP przez HTTP zamiast HTTPS?
Nie, od 1 sierpnia 2025 r. obsługiwane jest wyłącznie połączenie przez HTTPS; protokół HTTP nie jest wspierany.
Jak ograniczyć zakres dat w zapytaniu do API NBP?
Daty podaje się w formacie RRRR-MM-DD zgodnym z ISO 8601, a pojedyncze zapytanie nie może obejmować więcej niż 93 dni.
Jakie rodzaje tabel kursowych udostępnia API NBP?
Są trzy typy: A dla kursów średnich walut obcych, B dla średnich walut spoza tabeli A oraz C dla kursów kupna i sprzedaży.
Jakie błędy może zwrócić API NBP i co one oznaczają?
Kod 400 oznacza niepoprawne zapytanie lub przekroczenie limitu danych, natomiast 404 informuje, że dla podanego zakresu nie ma dostępnych danych.