Financiar v1 / CursInchidere
Closing exchange rate (official NBR)
The end-of-period rate for a month (?luna=YYYY-MM), a quarter (?trimestru=YYYY-Qn, written 2024-T2) or a year (?an=YYYY), as the NBR publishes it — the figure foreign-currency balances are revalued with at the reporting date. Without a period, the latest published month. The response also states WHICH DAY the figure comes from, in provine_din_ziua.
GET
https://oneapi.ro/api/financiar/v1/curs-inchidere
Query parameters
NameTypeDescriptionAccepted values
lunaoptional
string | null
A month,
YYYY-MM, from 2005. With no period at all, the latest published month.
e.g. 2024-06
trimestruoptional
string | null
A quarter,
YYYY-Qn written as 2024-T2, like the central-bank label.
e.g. 2024-T2
anoptional
integer | null
A year,
YYYY, from 2005 up to the last completed and published year.
2005 – 2100
valutalistoptional
text
Optional filter:
?valuta=EUR,USD. Without it every currency of the period is returned.
e.g. EURe.g. EUR,USD
How it behaves
- The end-of-period rate published by the central bank, for a month (
?luna=YYYY-MM), a quarter (?trimestru=YYYY-Qn, written2024-T2) or a year (?an=YYYY) — only one. Without a period, the latest published month. - The month-end exchange rate as published by NBR — the figure used to revalue foreign-currency balances at the reporting date.
- Not to be confused with the average. The average applies to FLOWS — income, expenses, transactions occurring during the period. The closing rate applies to BALANCES — receivables, payables, foreign-currency holdings at the reporting date. Both figures are real and close, so the mistake is silent; hence separate routes rather than a
?tip=switch. - The response also says WHICH DAY the figure comes from, in
provine_din_ziua— information the official NBR series does not carry. For a balance-sheet revaluation, the day is what goes into the note and what an auditor checks. - A period still in progress returns 404 with
perioada_neincheiata, pointing to/curs. The closing rate of an unfinished period is simply the most recent rate — served here, it would be quoted as a balance-sheet value. - Values are RON per ONE unit of currency, already divided by the multiplier — unlike
/curs, where five currencies are published per 100. - Verified across 7,567 month×currency pairs: the published value is exactly the quote of the last banking day of the month, with a maximum deviation of 0.00004.
- The quarter-end exchange rate, for interim filings and financial statements.
- Verified across 2,524 quarter×currency pairs: the published value is exactly the quote of the last banking day of the quarter. The quarter is written
1–4orT1–T4. - The 31 December rate — the figure used to revalue foreign-currency balances at the close of the financial year.
- Verified across 619 year×currency pairs: the published value is exactly the quote of the last banking day of the year, with ZERO deviation.
What it is for
- Revaluing foreign-currency receivables and payables at month end.
- Monthly close in accounting.
- Checking the rate used in a filing.
- Revaluing balances for a quarterly filing.
- Interim financial statements.
- Revaluing balances at the year-end close.
- Preparing annual financial statements.
Response structure
FieldTypeDescription
data.luna
string
The month the data refers to.
data.de_la
string
Start of the interval the response covers.
data.pana_la
string
End of the interval the response covers, inclusive.
data.moneda_baza
string
The currency the rates are quoted against.
data.valori[].valuta
string
ISO 4217 currency code.
data.valori[].denumire
string
The name, exactly as the source publishes it.
data.valori[].valoare_unitara
string
The closing rate published by NBR, RON per ONE unit.
data.valori[].provine_din_ziua
string
The banking day the quote comes from. Not in the official series; derived from the daily quotes.
data.valori[].verificare.cotatia_zilei
string
That day's quote, brought to one unit.
data.valori[].verificare.diferenta
string
Official minus the day's quote. Zero or rounding.
meta.sursa
string
The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la
string
The first period we have data for.
meta.acoperire.pana_la
string
The last period we have data for.
meta.valute
integer
Currencies covered by the response.
meta.nota_utilizare
string
A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_provenienta
string
A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_unitate
string
What to know about the unit of measure before comparing or summing values.
meta.fara_valori
Requested currencies with no value for that period.
meta.fara_date
data is null and this says why. The series are not in the database. The period is still being written (the reason points to /curs), it is before 2005, or none of the requested currencies has a closing value.
meta.fara_date_cod
The short, STABLE word for the reason, for clients that branch on it in code:
fara_date is prose and may be rephrased, this is not.
Response examples
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."
}
}
GEThttps://oneapi.ro/api/financiar/v1/curs-inchidere?luna=2024-06&valuta=EUR,USD
{
"data": {
"luna": "2024-06",
"de_la": "2024-06-01",
"pana_la": "2024-06-30",
"moneda_baza": "RON",
"valori": [
{
"valuta": "EUR",
"denumire": "Euro",
"valoare_unitara": "4.9771",
"provine_din_ziua": "2024-06-28",
"verificare": {
"cotatia_zilei": "4.9771",
"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": 2,
"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."
}
}
GEThttps://oneapi.ro/api/financiar/v1/curs-inchidere?trimestru=2024-T2&valuta=EUR
{
"data": {
"trimestru": "2024-T2",
"de_la": "2024-04-01",
"pana_la": "2024-06-30",
"moneda_baza": "RON",
"valori": [
{
"valuta": "EUR",
"denumire": "Euro",
"valoare_unitara": "4.9771",
"provine_din_ziua": "2024-06-28",
"verificare": {
"cotatia_zilei": "4.9771",
"diferenta": "0"
}
}
]
},
"meta": {
"sursa": "BNR — cursul de schimb al pieţei valutare, serii trimestriale de sfârşit de perioadă.",
"acoperire": {
"de_la": "2005-01-01",
"pana_la": "2026-04-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."
}
}
GEThttps://oneapi.ro/api/financiar/v1/curs-inchidere?an=2024&valuta=EUR
{
"data": {
"an": "2024",
"de_la": "2024-01-01",
"pana_la": "2024-12-31",
"moneda_baza": "RON",
"valori": [
{
"valuta": "EUR",
"denumire": "Euro",
"valoare_unitara": "4.9741",
"provine_din_ziua": "2024-12-31",
"verificare": {
"cotatia_zilei": "4.9741",
"diferenta": "0"
}
}
]
},
"meta": {
"sursa": "BNR — cursul de schimb al pieţei valutare, serii anuale de sfârşit de perioadă.",
"acoperire": {
"de_la": "2005-01-01",
"pana_la": "2025-01-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."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 422 | validare | Several periods at once (luna, trimestru, an do not combine), a period written other than YYYY-MM, YYYY-Tn or YYYY, a period before 2005 (in old lei: /curs-istoric/mediu), an invalid currency code. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "validare",
"mesaj": "Several periods at once (luna, trimestru, an do not combine), a period written other than YYYY-MM, YYYY-Tn or YYYY, a period before 2005 (in old lei: /curs-istoric/mediu), an invalid currency code.",
"detalii": {
"luna": [
"The value sent does not satisfy the parameter rule."
]
}
}
}