Credit Risk Register aggregates
It contains no data about any individual company. The Central Credit Register is nominal at the NBR, but only aggregates are published — total owed, arrears, number of debtors, breakdowns by currency, maturity and sector. This route cannot look up a debtor, and the absence of a result would not mean the absence of risk, only that the nominal data is not public. For what can be checked about an individual company, see the Business module.
The three axes pick one of the six published classes: creditor (banks or non-bank financial institutions), debitor (all, or individuals only) and masura (loans plus commitments, or loans only). Not all eight combinations exist at source — doar_credite is published only for all debtors — and the missing ones get a refusal naming those available.
The grouping comes from the source's structure, not from a classification invented by us. The codes beginning with _ after the class prefix — _MON, _TERM, _RISC, _SEC — have zero values: they are the NBR's table headers („Currency", „Term of granting", „Sector of activity"). The column order was preserved on import, so each dimension is attributed to the section above it. Those before any header stay top-level indicatori.
The units are never mixed. Of 532 series, 499 are in million lei, 25 in persons — the number of debtors was 2,058,804 in June 2026 — 4 in percent and 4 in units. Every value carries its own unit, and nothing is summed across sections.
Without an interval, the response gives the latest published month: the natural question is „where do we stand now", not „the whole series". The complete series runs to 120 months in one request.
Query parameters
banci. Or ifn — non-bank financial, e-money and payment institutions.
banciifn
toti. Or persoane_fizice.
totipersoane_fizice
credite_si_angajamente. Or doar_credite — but only with debitor=toti.
credite_si_angajamentedoar_credite
YYYY-MM. Without it, the last published month is returned.
e.g. 2024-06-15
YYYY-MM. At most 120 months.
e.g. 2024-06-15
How it behaves
- Contains no data about any individual company. The Credit Risk Register is name-level at the NBR, but only aggregates are published: total owed, arrears, number of debtors, breakdowns by currency, maturity and sector. This route cannot look up a debtor, and the absence of a result does NOT mean the absence of risk — it means name-level data is not public.
- Coverage: 532 series, 97,447 values, January 2000 → today, monthly.
- Three axes select one of the six published classes:
creditor(banks or non-bank financial institutions),debitor(all, or individuals only) andmasura(credits plus commitments, or credits only). Not all eight combinations exist at the source —doar_crediteis published only for all debtors — and the missing ones get a 404 listing the six available, not an empty list. - The grouping comes from the source's own structure, not from a classification we invented. Codes starting with
_after the class prefix —_MON,_TERM,_RISC,_SEC— carry zero values: they are the NBR's table headings ("Currency", "Maturity", "Sector"). Column order survived the import, so each breakdown is attributed to the heading above it. - The source gives two different sections the same name: "Currency" appears twice, once as a breakdown of total credits and commitments, once as a breakdown of amounts owed.
descompunesays which is which — and it is not guessed from the column code but measured: the section's dimensions are summed and matched against the indicator they add up to. In June 2026 the first "Currency" section's seven components give 844,206 against a total of 844,204, and the second's give 698,470 against 698,469. - A breakdown carries the class and then the detail in its name, separated by a semicolon. A name without a semicolon is a standalone indicator, wherever it sits in the table — and the rule fixes a real error: in four of the six classes, the 18 columns holding arrears by delay bracket (types A–H) come after the last section heading and would have been swallowed by it. The arithmetic confirms it: the contaminated section added up to neither total.
- Units do not mix. Of 532 series, 499 are in millions of lei, 25 in persons — the debtor count was 2,058,804 in June 2026 — 4 in percent (the arrears share: 3.01%) and 4 in units. Every dimension carries its unit, and nothing is summed across sections.
- Without an interval, the response gives the last published month: the natural question is "where do we stand now", not "the whole series". With an interval, the cap is 120 months.
nullin a month means the dimension was not published then — a few series start later than their class.
What it is for
- How much the economy has borrowed and how much of it is in arrears, month by month.
- The structure of credit by currency, maturity and sector of activity.
- Comparing banks with non-bank lenders on the same dimensions.
Response structure
mil. RON, pers., % or număr.
null = not published that month.
null when no match is confirmed.
data is null and this says why. The class exists in the catalogue but has no values in the database. 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": {
"clasa": {
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"cid": 565
},
"de_la": "2026-07",
"pana_la": "2026-07",
"perioade": [
"2026-07"
],
"indicatori": [
{
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"unitate": "mil. RON",
"valori": {
"2026-07": "851743"
}
}
],
"sectiuni": [
{
"cod": "CRBL__PROPB",
"denumire": "Forma de proprietate a beneficiarului de credit",
"dimensiuni": [
{
"cod": "CRBL_CAPC",
"denumire": "proprietate cooperatistă",
"unitate": "mil. RON",
"valori": {
"2026-07": "1345"
}
}
],
"descompune": {
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit"
}
}
]
},
"meta": {
"sursa": "BNR — Centrala Riscului de Credit, agregate publice lunare.",
"acoperire": {
"de_la": "2000-01",
"pana_la": "2026-07"
},
"luni": 1,
"dimensiuni": 129,
"nota_nominal": "NU conţine date despre nicio firmă anume. CRC e nominală la BNR, dar public se publică doar agregate. Absenţa unui rezultat NU înseamnă absenţa riscului — înseamnă că datele nominale nu sunt publice.",
"nota_grupare": "`sectiuni` urmează capetele de tabel ale sursei („Moneda\", „Termen de acordare\", „Sector de activitate\"), care în catalog sunt coduri cu zero valori. `indicatori` sunt dimensiunile de dinaintea oricărui cap.",
"nota_unitati": "Unităţile diferă în aceeaşi clasă: milioane de lei, persoane, procente, bucăţi. Fiecare dimensiune îşi poartă unitatea; peste secţiuni nu se însumează nimic.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci — câteva serii încep mai târziu decât clasa.",
"nota_implicit": "Fără interval, se întoarce ultima lună publicată.",
"combinatii": [
{
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente"
}
]
}
}
{
"data": {
"clasa": {
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"cid": 565
},
"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"
],
"indicatori": [
{
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"unitate": "mil. RON",
"valori": {
"2024-06": "670162",
"2024-07": "681361",
"2024-08": "692111",
"2024-09": "696732",
"2024-10": "701629",
"2024-11": "703948",
"2024-12": "715738",
"2025-01": "713626",
"2025-02": "718078",
"2025-03": "726262",
"2025-04": "734629",
"2025-05": "744444",
"2025-06": "748430",
"2025-07": "761596",
"2025-08": "764882",
"2025-09": "772486",
"2025-10": "779064",
"2025-11": "784369",
"2025-12": "794817",
"2026-01": "800340",
"2026-02": "807223",
"2026-03": "815249",
"2026-04": "826063",
"2026-05": "835740",
"2026-06": "845000",
"2026-07": "851743"
}
}
],
"sectiuni": [
{
"cod": "CRBL__PROPB",
"denumire": "Forma de proprietate a beneficiarului de credit",
"dimensiuni": [
{
"cod": "CRBL_CAPC",
"denumire": "proprietate cooperatistă",
"unitate": "mil. RON",
"valori": {
"2024-06": "889",
"2024-07": "876",
"2024-08": "889",
"2024-09": "880",
"2024-10": "905",
"2024-11": "891",
"2024-12": "1035",
"2025-01": "1036",
"2025-02": "1079",
"2025-03": "1114",
"2025-04": "1108",
"2025-05": "1116",
"2025-06": "1106",
"2025-07": "1162",
"2025-08": "1227",
"2025-09": "1358",
"2025-10": "1342",
"2025-11": "1332",
"2025-12": "1282",
"2026-01": "1268",
"2026-02": "1215",
"2026-03": "1210",
"2026-04": "1203",
"2026-05": "1219",
"2026-06": "1183",
"2026-07": "1345"
}
}
],
"descompune": {
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit"
}
}
]
},
"meta": {
"sursa": "BNR — Centrala Riscului de Credit, agregate publice lunare.",
"acoperire": {
"de_la": "2000-01",
"pana_la": "2026-07"
},
"luni": 26,
"dimensiuni": 129,
"nota_nominal": "NU conţine date despre nicio firmă anume. CRC e nominală la BNR, dar public se publică doar agregate. Absenţa unui rezultat NU înseamnă absenţa riscului — înseamnă că datele nominale nu sunt publice.",
"nota_grupare": "`sectiuni` urmează capetele de tabel ale sursei („Moneda\", „Termen de acordare\", „Sector de activitate\"), care în catalog sunt coduri cu zero valori. `indicatori` sunt dimensiunile de dinaintea oricărui cap.",
"nota_unitati": "Unităţile diferă în aceeaşi clasă: milioane de lei, persoane, procente, bucăţi. Fiecare dimensiune îşi poartă unitatea; peste secţiuni nu se însumează nimic.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci — câteva serii încep mai târziu decât clasa.",
"nota_implicit": "Fără interval, se întoarce ultima lună publicată.",
"combinatii": [
{
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente"
}
]
}
}
{
"data": {
"clasa": {
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"cid": 565
},
"de_la": "2024-06",
"pana_la": "2024-06",
"perioade": [
"2024-06"
],
"indicatori": [
{
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit",
"unitate": "mil. RON",
"valori": {
"2024-06": "670162"
}
}
],
"sectiuni": [
{
"cod": "CRBL__PROPB",
"denumire": "Forma de proprietate a beneficiarului de credit",
"dimensiuni": [
{
"cod": "CRBL_CAPC",
"denumire": "proprietate cooperatistă",
"unitate": "mil. RON",
"valori": {
"2024-06": "889"
}
}
],
"descompune": {
"cod": "CRBL_CAT",
"denumire": "Credite acordate şi angajamente asumate de instituţiile de credit"
}
}
]
},
"meta": {
"sursa": "BNR — Centrala Riscului de Credit, agregate publice lunare.",
"acoperire": {
"de_la": "2000-01",
"pana_la": "2026-07"
},
"luni": 1,
"dimensiuni": 129,
"nota_nominal": "NU conţine date despre nicio firmă anume. CRC e nominală la BNR, dar public se publică doar agregate. Absenţa unui rezultat NU înseamnă absenţa riscului — înseamnă că datele nominale nu sunt publice.",
"nota_grupare": "`sectiuni` urmează capetele de tabel ale sursei („Moneda\", „Termen de acordare\", „Sector de activitate\"), care în catalog sunt coduri cu zero valori. `indicatori` sunt dimensiunile de dinaintea oricărui cap.",
"nota_unitati": "Unităţile diferă în aceeaşi clasă: milioane de lei, persoane, procente, bucăţi. Fiecare dimensiune îşi poartă unitatea; peste secţiuni nu se însumează nimic.",
"nota_null": "`null` într-o lună înseamnă că dimensiunea n-a fost publicată atunci — câteva serii încep mai târziu decât clasa.",
"nota_implicit": "Fără interval, se întoarce ultima lună publicată.",
"combinatii": [
{
"creditor": "banci",
"debitor": "toti",
"masura": "credite_si_angajamente"
}
]
}
}
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, axes outside the lists, or a malformed month. combinatie_inexistenta — the axis combination is not published; the response lists the six. |
| 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, axes outside the lists, or a malformed month. combinatie_inexistenta — the axis combination is not published; the response lists the six.",
"detalii": {
"creditor": [
"The value sent does not satisfy the parameter rule."
]
}
}
}