oneapi
Autentificare
Financiar v1 / CursInchidere

Curs de închidere (oficial BNR)

Cursul de la sfârşitul unei luni (?luna=AAAA-LL), al unui trimestru (?trimestru=AAAA-Tn) ori al unui an
(?an=AAAA), aşa cum îl publică BNR — cifra cu care se reevaluează soldurile în valută la data raportării.
Fără perioadă, ultima lună publicată. Răspunsul spune şi DIN CE ZI vine cifra, în provine_din_ziua.

GET
https://oneapi.ro/api/financiar/v1/curs-inchidere

Parametri de interogare

NumeTipDescriereValori acceptate
lunaopțional string | null O lună, AAAA-LL, din 2005. Fără nicio perioadă, ultima lună publicată. ex. 2024-06
trimestruopțional string | null Un trimestru, AAAA-Tn (2024-T2), ca eticheta BNR. ex. 2024-T2
anopțional integer | null Un an, AAAA, din 2005, până la ultimul an încheiat şi publicat. 2005 – 2100
valutalistăopțional text Filtru opţional: ?valuta=EUR,USD. Fără el se întorc toate valutele perioadei. ex. EURex. EUR,USD

Cum se comportă

  • Cursul de sfârşit de perioadă publicat de BNR, pentru o lună (?luna=AAAA-LL), un trimestru (?trimestru=AAAA-Tn) ori un an (?an=AAAA) — una singură. Fără perioadă, ultima lună publicată.
  • Cursul de la sfârşitul lunii, aşa cum îl publică BNR — cifra cu care se reevaluează soldurile în valută la data raportării.
  • Nu se confundă cu media. Media se aplică FLUXURILOR — venituri, cheltuieli, tranzacţii petrecute în cursul perioadei. Închiderea se aplică SOLDURILOR — creanţe, datorii, disponibil în valută la data raportării. Ambele cifre sunt reale şi apropiate, deci greşeala e tăcută; de aceea sunt rute separate, nu un comutator ?tip=.
  • Răspunsul spune şi DIN CE ZI vine cifra, în provine_din_ziua — informaţie pe care seria oficială BNR nu o conţine. La o reevaluare de bilanţ, ziua e ce se trece în notă şi ce se verifică la audit.
  • Perioada în curs întoarce 404 cu perioada_neincheiata, cu trimitere la /curs. Închiderea unei perioade neîncheiate e pur şi simplu cursul cel mai recent — servit aici, ar fi citat ca valoare de bilanţ.
  • Valorile sunt RON pentru O UNITATE de valută, deja împărţite la multiplicator — spre deosebire de /curs, unde cinci valute se publică la 100.
  • Verificat pe 7.567 de perechi lună×valută: valoarea publicată e exact cotaţia ultimei zile bancare din lună, cu abatere maximă de 0,00004.
  • Cursul de la sfârşitul trimestrului, pentru raportări şi situaţii financiare interimare.
  • Verificat pe 2.524 de perechi trimestru×valută: valoarea publicată e exact cotaţia ultimei zile bancare din trimestru.
  • Cursul de la 31 decembrie — cifra cu care se reevaluează soldurile în valută la închiderea exerciţiului financiar.
  • Verificat pe 619 perechi an×valută: valoarea publicată e exact cotaţia ultimei zile bancare a anului, cu abatere ZERO.

La ce folosește

  • Reevaluarea creanţelor şi datoriilor în valută la sfârşit de lună.
  • Închiderea lunară în contabilitate.
  • Verificarea cursului folosit într-o raportare.
  • Reevaluarea soldurilor la o raportare trimestrială.
  • Situaţii financiare interimare.
  • Reevaluarea soldurilor la închiderea exerciţiului.
  • Întocmirea situaţiilor financiare anuale.

Structura răspunsului

CâmpTipDescriere
data.luna string Luna la care se referă datele.
data.de_la string Începutul intervalului acoperit de răspuns.
data.pana_la string Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.moneda_baza string Moneda faţă de care sunt exprimate cotaţiile.
data.valori[].valuta string Codul ISO 4217 al valutei.
data.valori[].denumire string Denumirea, aşa cum o publică sursa.
data.valori[].valoare_unitara string Cursul de închidere publicat de BNR, RON pentru O unitate.
data.valori[].provine_din_ziua string Ziua bancară din care vine cotaţia. Nu e în seria oficială; se deduce din cotaţiile zilnice.
data.valori[].verificare.cotatia_zilei string Cotaţia zilei respective, adusă la o unitate.
data.valori[].verificare.diferenta string Oficial minus cotaţia zilei. Zero sau rotunjire.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.acoperire.de_la string Prima perioadă pentru care avem date.
meta.acoperire.pana_la string Ultima perioadă pentru care avem date.
meta.valute integer Valutele acoperite de răspuns.
meta.nota_utilizare string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_provenienta string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_unitate string Ce trebuie ştiut despre unitatea de măsură înainte de a compara sau aduna valorile.
meta.fara_valori Valutele cerute care nu au valoare în perioada respectivă.
meta.fara_date data e null, iar aici stă motivul. Nu există seriile respective în bază. Perioada încă se scrie (motivul trimite la /curs), e înainte de 2005, ori niciuna dintre valutele cerute nu are valoare de închidere.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/curs-inchidere?valuta=EUR
{
    "data": {
        "luna": "2026-08",
        "de_la": "2026-08-01",
        "pana_la": "2026-08-31",
        "moneda_baza": "RON",
        "valori": [
            {
                "valuta": "EUR",
                "denumire": "Euro",
                "valoare_unitara": "5.2586",
                "provine_din_ziua": "2026-08-31",
                "verificare": {
                    "cotatia_zilei": "5.2586",
                    "diferenta": "0"
                }
            }
        ]
    },
    "meta": {
        "sursa": "BNR — cursul de schimb al pieţei valutare, serii lunare de sfârşit de perioadă.",
        "acoperire": {
            "de_la": "2005-01-01",
            "pana_la": "2026-08-01"
        },
        "valute": 1,
        "nota_utilizare": "Cursul de închidere se aplică SOLDURILOR în valută la data raportării. Pentru fluxurile petrecute în cursul perioadei se foloseşte media: /financiar/v1/curs-mediu",
        "nota_provenienta": "`provine_din_ziua` e ziua bancară din care vine cotaţia — informaţie pe care seria oficială nu o conţine, dar care se trece în nota la bilanţ.",
        "nota_unitate": "Valorile sunt RON pentru O unitate de valută, deja împărţite la multiplicator."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareMai multe perioade deodată (luna, trimestru, an nu se combină), perioadă scrisă altfel decât AAAA-LL, AAAA-Tn ori AAAA, perioadă dinainte de 2005 (în lei vechi: /curs-istoric/mediu), cod de valută invalid.
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": "Mai multe perioade deodată (luna, trimestru, an nu se combină), perioadă scrisă altfel decât AAAA-LL, AAAA-Tn ori AAAA, perioadă dinainte de 2005 (în lei vechi: /curs-istoric/mediu), cod de valută invalid.",
        "detalii": {
            "luna": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}