Interest rates on loans and deposits
What banks actually pay on deposits and charge on loans — 57 dimensions for each of the three currencies the NBR publishes, monthly since January 2007.
In June 2026, in lei: new deposits 5.33%, new loans 7.93%. In euro 1.63% and 4.65%; in dollars 3.02% and 6.39%.
marja is computed by us, and it is the figure nobody has to hand. New loans minus new deposits: 3.39 points in June 2008, 5.06 in 2016, 2.60 in June 2026 — the lowest level in the series. Today the margin is smaller in lei than in euro (3.02) or dollars (3.37), which is not intuitive.
The margin is computed only from values of the SAME month. The series have different coverage — the nominal rate on consumer loans stops in April 2026, while the APR runs to June — and anyone comparing the „last value" of two series is in fact comparing different months, with nothing looking amiss.
The APR is not the nominal rate. On consumer loans: 10.5% annual percentage rate against 9.57% nominal, almost a point. The APR is the figure legally required towards the consumer, so the dimensions carrying it are flagged with dae, not left among the rest.
The class has no table headers, unlike credit risk, so the grouping is neither inherited from the source nor invented: tip, moment and sector are derived from the names, with verified rules — 57 out of 57 for type, 53 out of 57 for moment, 51 out of 57 for sector. What does not match stays null; for sector, null means an aggregate across all sectors, not a failed classification.
Coverage differs a lot between currencies: 55 dimensions have data in lei, 53 in euro and only 41 in dollars. are_date says so on each dimension.
The filters narrow serii, but do not touch principale: a „deposits only" filter must not be allowed to make the margin disappear.
Query parameters
rata — the measure the route served before it had two. With volum it returns how much money was lent or deposited, instead of at what rate.
ratavolum
lei. Or euro, dolari. Coverage differs: 55, 53 and 41 dimensions with data respectively.
leieurodolari
YYYY-MM. Without it, the last published month.
e.g. 2024-06-15
YYYY-MM. At most 120 months.
e.g. 2024-06-15
credite or depozite.
creditedepozite
sold (outstanding contracts) or nou (new contracts).
soldnou
gospodarii (households) or societati (non-financial corporations). Aggregates across all sectors carry no sector and appear under no filter.
gospodariisocietati
How it behaves
- The same indicators also come with a volume measure.
masura=volumreturns the amounts, not the rates: in June 2026, new loans in lei are 14.79 billion at a rate of 7.93% — the same month, the same indicator, two faces of it. Volumes cover 29 of the 31 indicators the rates have. - The 28 dimensions that exist only for rates are stock indicators — existing loans and deposits — which have no "new" volume. It is a logical asymmetry, not a gap: of the four headline rates, only
depozite_noiandcredite_noiremain for volumes. marjadoes not appear for volumes. The difference between new loans and new deposits is a net flow, not a margin; it would be a figure with a different meaning under the same name.- The unit of volumes is the currency itself — lei, euro or dollars — not a common denominator. A total across the three would be meaningless, so none is offered. Rates stay percent per annum across all currencies.
- Volume coverage drops sharply for dollars: all 31 dimensions have data in lei, 30 in euro, but only 19 in dollars.
- What banks actually pay on deposits and charge on loans — 57 dimensions for each of the three currencies the NBR publishes, monthly since January 2007.
- In June 2026, in lei: new deposits 5.33%, new loans 7.93%. In euro 1.63% and 4.65%; in dollars 3.02% and 6.39%.
marjais computed by us, and it is the figure nobody has at hand. New loans minus new deposits: 3.39 points in June 2008, 5.06 in 2016, 2.60 in June 2026 — the lowest in the series. Today the margin is smaller in lei than in euro (3.02) or dollars (3.37), which is far from intuitive.- The margin is computed only from values in the SAME month. The series have different coverage — the nominal rate on consumer loans stops in April 2026 while the APR runs to June — and anyone comparing the "latest value" of two series is in fact comparing different months, with nothing looking wrong. Where a component is missing for a month, the margin is
null. - The APR is not the nominal rate. For consumer loans in lei: 10.5% annual percentage rate against 9.57% nominal, almost a full point. The APR is the figure legally owed to the consumer, so the dimensions carrying it are flagged with
daerather than left among the others. - This class has no table headings, unlike the credit-risk one — verified, no value-less series marking a section. So the grouping is not inherited from the source and is not invented:
tip,momentandsectorare derived from the names, with rules checked across all 57 series — 57 of 57 for type, 53 of 57 for moment, 51 of 57 for sector. - The four series without a
momentdo not carry "noi" in their name, and each has a twin that does: the absence of the word is the signal for stock, verified across every pair. Forsector,nullmeans aggregate across all sectors, not a failed classification — those are the six totals. - Coverage differs substantially between currencies: 55 dimensions carry data in lei, 53 in euro and only 41 in dollars.
are_datesays so per dimension, so an absence does not read as a hole in the data. - Filters narrow
serii, notprincipale: a filter on "deposits only" must not make the margin disappear, because the margin is the anchor of the response. - Without an interval, the last published month is returned — the natural question is "where is it now", not "the whole series". The cap is 120 months.
What it is for
- What deposits pay today, by currency and maturity.
- The real market rate for a loan, instead of a guessed one at
/calcul/rata-credit. - The banking margin and how it has moved — how much of the spread stays with the bank.
Response structure
procent_pe_an.
marja. Never filtered.
credite or depozite, derived from the name.
sold or nou.
gospodarii, societati, or null for aggregates across all sectors.
consum or locuinte for dimensions carrying the annual percentage rate. null for the rest.
false for dimensions the NBR does not publish for the requested currency.
null = not published that month, not zero.
meta.total_e_limita_de_jos is the word to switch on in code.
data is null and this says why. No values in the database for the requested currency. The interval falls entirely outside the coverage. It overlaps the coverage but holds no values.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"masura": "rata",
"moneda": "lei",
"cod_moneda": "RON",
"unitate": "procent_pe_an",
"de_la": "2026-07",
"pana_la": "2026-07",
"perioade": [
"2026-07"
],
"principale": {
"depozite_sold": {
"2026-07": "5.15"
},
"depozite_noi": {
"2026-07": "5.29"
},
"credite_sold": {
"2026-07": "8.09"
},
"credite_noi": {
"2026-07": "8.10"
},
"marja": {
"2026-07": "2.81"
}
},
"filtre": [],
"serii": [
{
"cod": "N14RL_DS",
"denumire": "Depozite la termen existente în sold",
"tip": "depozite",
"moment": "sold",
"sector": null,
"dae": null,
"are_date": true,
"valori": {
"2026-07": "5.15"
}
}
]
},
"meta": {
"sursa": "BNR — ratele dobânzii la credite şi depozite, serii lunare (clasa 580).",
"acoperire": {
"de_la": "2007-01",
"pana_la": "2026-07"
},
"luni": 1,
"dimensiuni": 57,
"dimensiuni_returnate": 57,
"dimensiuni_fara_date": 2,
"nota_masura": "Aceiaşi indicatori au şi o măsură de volum: `masura=volum` dă câţi bani s-au acordat sau depus, în loc de la ce dobândă.",
"nota_unitate": "Ratele sunt procent pe an, aceeaşi unitate pe toate monedele.",
"nota_marja": "`marja` e calculată de noi: credite noi minus depozite noi, din valori din ACEEAŞI lună. Seriile au acoperiri diferite, iar o marjă făcută din ultima valoare a fiecăreia ar scădea cifre din luni diferite. Unde o componentă lipseşte, marja e `null`.",
"nota_dae": "Dimensiunile marcate cu `dae` poartă dobânda anuală efectivă — cifra obligatorie legal către consumator, nu rata nominală. Diferă real: 10,5% faţă de 9,57% la creditele de consum în lei.",
"nota_fatete": "`tip`, `moment` şi `sector` sunt derivate din denumirile sursei, care n-are capete de tabel pentru clasa asta. La `sector`, `null` înseamnă agregat pe toate sectoarele, nu clasificare ratată.",
"nota_acoperire": "Acoperirea diferă între monede: 55 de dimensiuni au date în lei, 53 în euro, 41 în dolari. `are_date` o spune pe fiecare.",
"nota_filtre": "Filtrele restrâng `serii`, nu `principale`: marja rămâne calculabilă indiferent ce s-a filtrat.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci, nu zero.",
"calculator": "/financiar/v1/calcul/rata-credit"
}
}
{
"data": {
"masura": "rata",
"moneda": "lei",
"cod_moneda": "RON",
"unitate": "procent_pe_an",
"de_la": "2024-06",
"pana_la": "2026-07",
"perioade": [
"2024-06",
"2024-07",
"2024-08",
"2024-09",
"2024-10",
"2024-11",
"2024-12",
"2025-01",
"2025-02",
"2025-03",
"2025-04",
"2025-05",
"2025-06",
"2025-07",
"2025-08",
"2025-09",
"2025-10",
"2025-11",
"2025-12",
"2026-01",
"2026-02",
"2026-03",
"2026-04",
"2026-05",
"2026-06",
"2026-07"
],
"principale": {
"depozite_sold": {
"2024-06": "5.61",
"2024-07": "5.49",
"2024-08": "5.37",
"2024-09": "5.27",
"2024-10": "5.18",
"2024-11": "5.13",
"2024-12": "5.09",
"2025-01": "5.07",
"2025-02": "5.05",
"2025-03": "5.04",
"2025-04": "5.05",
"2025-05": "5.23",
"2025-06": "5.28",
"2025-07": "5.27",
"2025-08": "5.28",
"2025-09": "5.32",
"2025-10": "5.35",
"2025-11": "5.38",
"2025-12": "5.38",
"2026-01": "5.35",
"2026-02": "5.29",
"2026-03": "5.27",
"2026-04": "5.24",
"2026-05": "5.21",
"2026-06": "5.17",
"2026-07": "5.15"
},
"depozite_noi": {
"2024-06": "5.32",
"2024-07": "5.14",
"2024-08": "4.97",
"2024-09": "4.90",
"2024-10": "4.90",
"2024-11": "4.95",
"2024-12": "5.00",
"2025-01": "5.05",
"2025-02": "5.02",
"2025-03": "5.04",
"2025-04": "5.07",
"2025-05": "5.79",
"2025-06": "5.85",
"2025-07": "5.57",
"2025-08": "5.54",
"2025-09": "5.51",
"2025-10": "5.54",
"2025-11": "5.52",
"2025-12": "5.50",
"2026-01": "5.39",
"2026-02": "5.26",
"2026-03": "5.30",
"2026-04": "5.28",
"2026-05": "5.24",
"2026-06": "5.33",
"2026-07": "5.29"
},
"credite_sold": {
"2024-06": "8.84",
"2024-07": "8.77",
"2024-08": "8.64",
"2024-09": "8.57",
"2024-10": "8.47",
"2024-11": "8.43",
"2024-12": "8.43",
"2025-01": "8.47",
"2025-02": "8.45",
"2025-03": "8.43",
"2025-04": "8.38",
"2025-05": "8.42",
"2025-06": "8.58",
"2025-07": "8.73",
"2025-08": "8.69",
"2025-09": "8.64",
"2025-10": "8.56",
"2025-11": "8.49",
"2025-12": "8.40",
"2026-01": "8.30",
"2026-02": "8.27",
"2026-03": "8.20",
"2026-04": "8.15",
"2026-05": "8.12",
"2026-06": "8.12",
"2026-07": "8.09"
},
"credite_noi": {
"2024-06": "8.04",
"2024-07": "7.94",
"2024-08": "7.96",
"2024-09": "7.96",
"2024-10": "7.97",
"2024-11": "7.73",
"2024-12": "7.71",
"2025-01": "7.80",
"2025-02": "7.95",
"2025-03": "7.95",
"2025-04": "7.66",
"2025-05": "7.92",
"2025-06": "7.97",
"2025-07": "8.08",
"2025-08": "8.15",
"2025-09": "8.20",
"2025-10": "8.09",
"2025-11": "7.94",
"2025-12": "7.93",
"2026-01": "7.88",
"2026-02": "7.94",
"2026-03": "7.90",
"2026-04": "7.84",
"2026-05": "7.86",
"2026-06": "7.93",
"2026-07": "8.10"
},
"marja": {
"2024-06": "2.72",
"2024-07": "2.80",
"2024-08": "2.99",
"2024-09": "3.06",
"2024-10": "3.07",
"2024-11": "2.78",
"2024-12": "2.71",
"2025-01": "2.75",
"2025-02": "2.93",
"2025-03": "2.91",
"2025-04": "2.59",
"2025-05": "2.13",
"2025-06": "2.12",
"2025-07": "2.51",
"2025-08": "2.61",
"2025-09": "2.69",
"2025-10": "2.55",
"2025-11": "2.42",
"2025-12": "2.43",
"2026-01": "2.49",
"2026-02": "2.68",
"2026-03": "2.60",
"2026-04": "2.56",
"2026-05": "2.62",
"2026-06": "2.60",
"2026-07": "2.81"
}
},
"filtre": [],
"serii": [
{
"cod": "N14RL_DS",
"denumire": "Depozite la termen existente în sold",
"tip": "depozite",
"moment": "sold",
"sector": null,
"dae": null,
"are_date": true,
"valori": {
"2024-06": "5.61",
"2024-07": "5.49",
"2024-08": "5.37",
"2024-09": "5.27",
"2024-10": "5.18",
"2024-11": "5.13",
"2024-12": "5.09",
"2025-01": "5.07",
"2025-02": "5.05",
"2025-03": "5.04",
"2025-04": "5.05",
"2025-05": "5.23",
"2025-06": "5.28",
"2025-07": "5.27",
"2025-08": "5.28",
"2025-09": "5.32",
"2025-10": "5.35",
"2025-11": "5.38",
"2025-12": "5.38",
"2026-01": "5.35",
"2026-02": "5.29",
"2026-03": "5.27",
"2026-04": "5.24",
"2026-05": "5.21",
"2026-06": "5.17",
"2026-07": "5.15"
}
}
]
},
"meta": {
"sursa": "BNR — ratele dobânzii la credite şi depozite, serii lunare (clasa 580).",
"acoperire": {
"de_la": "2007-01",
"pana_la": "2026-07"
},
"luni": 26,
"dimensiuni": 57,
"dimensiuni_returnate": 57,
"dimensiuni_fara_date": 2,
"nota_masura": "Aceiaşi indicatori au şi o măsură de volum: `masura=volum` dă câţi bani s-au acordat sau depus, în loc de la ce dobândă.",
"nota_unitate": "Ratele sunt procent pe an, aceeaşi unitate pe toate monedele.",
"nota_marja": "`marja` e calculată de noi: credite noi minus depozite noi, din valori din ACEEAŞI lună. Seriile au acoperiri diferite, iar o marjă făcută din ultima valoare a fiecăreia ar scădea cifre din luni diferite. Unde o componentă lipseşte, marja e `null`.",
"nota_dae": "Dimensiunile marcate cu `dae` poartă dobânda anuală efectivă — cifra obligatorie legal către consumator, nu rata nominală. Diferă real: 10,5% faţă de 9,57% la creditele de consum în lei.",
"nota_fatete": "`tip`, `moment` şi `sector` sunt derivate din denumirile sursei, care n-are capete de tabel pentru clasa asta. La `sector`, `null` înseamnă agregat pe toate sectoarele, nu clasificare ratată.",
"nota_acoperire": "Acoperirea diferă între monede: 55 de dimensiuni au date în lei, 53 în euro, 41 în dolari. `are_date` o spune pe fiecare.",
"nota_filtre": "Filtrele restrâng `serii`, nu `principale`: marja rămâne calculabilă indiferent ce s-a filtrat.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci, nu zero.",
"calculator": "/financiar/v1/calcul/rata-credit"
}
}
{
"data": {
"masura": "rata",
"moneda": "lei",
"cod_moneda": "RON",
"unitate": "procent_pe_an",
"de_la": "2024-06",
"pana_la": "2024-06",
"perioade": [
"2024-06"
],
"principale": {
"depozite_sold": {
"2024-06": "5.61"
},
"depozite_noi": {
"2024-06": "5.32"
},
"credite_sold": {
"2024-06": "8.84"
},
"credite_noi": {
"2024-06": "8.04"
},
"marja": {
"2024-06": "2.72"
}
},
"filtre": [],
"serii": [
{
"cod": "N14RL_DS",
"denumire": "Depozite la termen existente în sold",
"tip": "depozite",
"moment": "sold",
"sector": null,
"dae": null,
"are_date": true,
"valori": {
"2024-06": "5.61"
}
}
]
},
"meta": {
"sursa": "BNR — ratele dobânzii la credite şi depozite, serii lunare (clasa 580).",
"acoperire": {
"de_la": "2007-01",
"pana_la": "2026-07"
},
"luni": 1,
"dimensiuni": 57,
"dimensiuni_returnate": 57,
"dimensiuni_fara_date": 2,
"nota_masura": "Aceiaşi indicatori au şi o măsură de volum: `masura=volum` dă câţi bani s-au acordat sau depus, în loc de la ce dobândă.",
"nota_unitate": "Ratele sunt procent pe an, aceeaşi unitate pe toate monedele.",
"nota_marja": "`marja` e calculată de noi: credite noi minus depozite noi, din valori din ACEEAŞI lună. Seriile au acoperiri diferite, iar o marjă făcută din ultima valoare a fiecăreia ar scădea cifre din luni diferite. Unde o componentă lipseşte, marja e `null`.",
"nota_dae": "Dimensiunile marcate cu `dae` poartă dobânda anuală efectivă — cifra obligatorie legal către consumator, nu rata nominală. Diferă real: 10,5% faţă de 9,57% la creditele de consum în lei.",
"nota_fatete": "`tip`, `moment` şi `sector` sunt derivate din denumirile sursei, care n-are capete de tabel pentru clasa asta. La `sector`, `null` înseamnă agregat pe toate sectoarele, nu clasificare ratată.",
"nota_acoperire": "Acoperirea diferă între monede: 55 de dimensiuni au date în lei, 53 în euro, 41 în dolari. `are_date` o spune pe fiecare.",
"nota_filtre": "Filtrele restrâng `serii`, nu `principale`: marja rămâne calculabilă indiferent ce s-a filtrat.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci, nu zero.",
"calculator": "/financiar/v1/calcul/rata-credit"
}
}
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 | interval_prea_lung beyond 120 months, or filters outside the lists. moneda_necunoscuta — the NBR publishes only lei, euro and dollars. |
| 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": "interval_prea_lung beyond 120 months, or filters outside the lists. moneda_necunoscuta — the NBR publishes only lei, euro and dollars.",
"detalii": {
"masura": [
"The value sent does not satisfy the parameter rule."
]
}
}
}