oneapi
Autentificare
Financiar v1 / Curs

Valutele cotate de BNR

Nomenclatorul valutelor: cod, denumire, perioada în care au fost cotate şi starea lor. Se poate
filtra cu ?stare=activa sau ?stare=delistata. Răspunde la întrebarea pe care celelalte rute
o lasă deschisă: ce se poate cere şi pentru ce perioadă.

GET
https://oneapi.ro/api/financiar/v1/valute

Parametri de interogare

NumeTipDescriereValori acceptate
stareopțional string | null Filtru opţional: activa (cotată în prezent) sau delistata. activadelistata

Cum se comportă

  • Toate valutele cotate vreodată de BNR (40), cu perioada în care au fost cotate şi starea lor.
  • Rostul rutei e să răspundă ÎNAINTE de un 404: fără ea, o cerere /curs/BGN întoarce „nu mai e cotată" şi clientul n-are de unde să ştie că trebuia să întrebe cu o dată din trecut. Aici vede stare: "delistata" şi ultima_data.
  • stare foloseşte exact regula de la interogarea punctuală, deci o valută activa aici e una pentru care /curs/{cod} funcţionează astăzi.
  • Denumirile sunt după ISO 4217 şi le ţine modulul: BNR publică doar codul şi multiplicatorul, fără etichete.
  • Două coduri NU sunt monede: XAU (aur, cotat pe GRAM, nu pe uncie) şi XDR (drepturi speciale de tragere, unitatea de cont a FMI). BNR le publică în acelaşi tabel; este_moneda le separă, ca o listă de selecţie valutară să le poată exclude.

La ce folosește

  • Popularea unei liste de selecţie a valutelor.
  • Verificarea perioadei pentru care se poate cere cursul unei valute.

Structura răspunsului

CâmpTipDescriere
data.valute[].cod string Codul ISO 4217 din 3 litere.
data.valute[].denumire string | null Denumirea în română.
data.valute[].este_moneda boolean false la XAU şi XDR, care sunt aur şi unitate de cont, nu monede.
data.valute[].multiplicator integer Câte unităţi acoperă cotaţia publicată (1 sau 100). Constant pe toată istoria valutei.
data.valute[].stare string activa = cotată în prezent; delistata = nu mai e cotată, dar istoricul rămâne disponibil.
data.valute[].prima_data string Prima zi în care valuta a fost cotată.
data.valute[].ultima_data string Ultima zi în care a fost cotată. La valutele active, ultima zi bancară publicată.
data.valute[].zile_cotate integer Câte zile are cotaţie în total.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.valute integer Valutele acoperite de răspuns.
meta.denumiri string
meta.nota string Precizare despre cum se citesc datele din răspuns — o capcană, o convenţie sau o limită a sursei.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/valute
{
    "data": {
        "valute": [
            {
                "cod": "AED",
                "denumire": "Dirham Emiratele Arabe Unite",
                "este_moneda": true,
                "multiplicator": 1,
                "stare": "activa",
                "prima_data": "2009-03-02",
                "ultima_data": "2026-09-21",
                "zile_cotate": 4423
            }
        ]
    },
    "meta": {
        "sursa": "Banca Naţională a României",
        "valute": 40,
        "denumiri": "ISO 4217",
        "nota": "Valutele delistate rămân în listă: cotaţiile lor istorice se pot cere cu o dată din perioada de activitate."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validarestare are altă valoare decât activa sau delistata.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "stare are altă valoare decât activa sau delistata.",
        "detalii": {
            "stare": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}