Interbank operations
How much the banks actually lent each other and at what rate — daily, since 3 January 2005, with complete coverage of banking days.
The rate at which banks actually traded is systematically below the quoted ROBOR. Against overnight ROBOR: lower on 83% of the 5,432 common days, by an average of −0.147 points, and identical on only 86. For someone with a ROBOR-indexed loan, this is a figure not found anywhere else.
The default reference is overnight, and not by accident. The traded rate is a weighted average of what was traded that day, mostly overnight. Against longer tenors the difference grows — 86% below the quote at tomorrow-next, 94% at one week — but part of that growth is the term structure, not the gap between quote and trade. The other comparisons remain available, with comparabil_direct: false alongside.
Two measures that are not the same thing. tranzactii is what was traded that day — average volume 1,389 million lei, average rate 4.48%. stoc is the balance of operations outstanding — 4,498 million, 4.84%. The stock is 3.2 times larger, and the trading volume never exceeds it: verified, 0 out of 5,463 days. They come together precisely so that the stock rate is not taken for the day's price.
Zero trades means null for the rate, not 0. There are 31 days on which the market traded nothing at all, and exactly those have no rate — the two sets overlap perfectly. A 0 there would say „they lent at zero interest", which is a different thing from „they did not lend". fara_tranzactii marks them.
The comparison is made only on a common day: if ROBOR was not quoted then, the difference is missing for that day. The neighbouring day's quote is never borrowed.
Query parameters
YYYY-MM-DD. Cannot be in the future.
e.g. 2024-06-15e.g. 2024-01-02
overnight. Or tomorrow_next, 1w, or fara. Only overnight is directly comparable.
overnighttomorrow_next1wfara
How it behaves
- How much banks lent each other and at what rate — daily since 3 January 2005, with complete coverage of banking days.
- The rate banks actually traded at sits systematically below the quoted ROBOR. Against overnight ROBOR: lower on 83% of the 5,432 shared days, by −0.147 points on average, and identical on only 86. For anyone holding a ROBOR-indexed loan, that is a figure available nowhere else.
- The default reference is
overnight, and not by accident. The transacted rate is a weighted average of whatever traded that day, mostly overnight. Against longer tenors the gap widens — 86% below quote at tomorrow-next, 94% at one week — but part of that widening is the term structure, not the quote-versus-trade discrepancy. The others remain available, flaggedcomparabil_direct: falsewith the warning inmeta. - Two measures that are not the same thing.
tranzactiiis what traded that day — average volume 1,389 million lei, average rate 4.48%.stocis the outstanding balance of operations — 4,498 million, 4.84%. The stock is 3.2 times larger, and transaction volume never exceeds it: verified, 0 of 5,463 days. They come together precisely so the stock rate is not mistaken for the day's price. - Zero trades means
nullfor the rate, not 0. There are 31 days on which the market traded nothing, and those are exactly the days without a rate — the two sets overlap perfectly. A 0 there would say "they borrowed at zero interest", which is not the same as "they did not borrow".fara_tranzactiiflags them. - The comparison is made only on the shared day. If ROBOR was not quoted then,
diferentais absent for that day — the neighbouring day's quote is never borrowed. - Bounds outside the coverage are silently clamped to it, and
meta.ajustatsays what moved and from where. The cap is 366 days, as on the other daily routes.
What it is for
- The real price of money on the interbank market, against the published quote.
- Market liquidity: how much actually trades in a day.
- Context for a ROBOR-indexed loan — how far the quote sits from actual trades.
Response structure
true only for overnight; at longer tenors part of the gap is the term structure.
true on days with zero volume — then rata is null, because there was no price.
null if it was not quoted.
data is null and this says why. No interbank market data in the database. The interval falls outside the coverage; the response gives it.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": "2024-06-15",
"pana_la": "2024-06-30",
"unitati": {
"volum": "milioane_ron",
"rata": "procent_pe_an"
},
"referinta": {
"nume": "overnight",
"eticheta": "ROBOR overnight",
"cod": "BBZ_BORON",
"comparabil_direct": true
},
"rezumat": {
"tranzactii": {
"zile": 9,
"volum_mediu": "242.32",
"volum_total": "2180.90",
"rata_medie": "6.00",
"zile_fara_tranzactii": 0
},
"stoc": {
"zile": 9,
"volum_mediu": "343.21",
"volum_total": "3088.90",
"rata_medie": "6.00",
"zile_fara_tranzactii": 0
},
"fata_de_referinta": {
"zile_comparate": 9,
"zile_sub_cotat": 2,
"diferenta_medie": "0.00"
}
},
"zile": [
{
"data": "2024-06-17",
"tranzactii": {
"volum": "67.00",
"rata": "5.93",
"fara_tranzactii": false
},
"stoc": {
"volum": "186.00",
"rata": "5.99",
"fara_tranzactii": false
},
"referinta": {
"nume": "overnight",
"cotat": "6.00",
"diferenta": "-0.07"
}
}
]
},
"meta": {
"sursa": "BNR — operaţiuni interbancare, serii zilnice.",
"acoperire": {
"de_la": "2005-01-03",
"pana_la": "2026-09-18"
},
"zile_publicate": 9,
"zile_interval": 16,
"nota_masuri": "`tranzactii` e ce s-a tranzacţionat în ziua respectivă; `stoc` e soldul operaţiunilor în derulare. Stocul e în medie de 3,2 ori mai mare, iar volumul tranzacţiilor nu-l depăşeşte niciodată — verificat pe toate cele 5.463 de zile.",
"nota_referinta": "Rata tranzacţionată e majoritar overnight, deci comparaţia cu ROBOR overnight e directă. Istoric: mai mică în 83% din zile, cu o medie de −0,147 puncte.",
"nota_zero": "Într-o zi fără nicio tranzacţie nu există rată — `rata` e `null`, nu 0, iar `fara_tranzactii` o marchează. Sunt 31 de astfel de zile în toată seria.",
"nota_zi_comuna": "Diferenţa faţă de referinţă se calculează doar când ambele cifre există în ACEEAŞI zi. Nu se împrumută cotaţia zilei vecine.",
"robor": "/financiar/v1/robor"
}
}
{
"data": {
"de_la": "2024-01-02",
"pana_la": "2024-01-31",
"unitati": {
"volum": "milioane_ron",
"rata": "procent_pe_an"
},
"referinta": {
"nume": "overnight",
"eticheta": "ROBOR overnight",
"cod": "BBZ_BORON",
"comparabil_direct": true
},
"rezumat": {
"tranzactii": {
"zile": 20,
"volum_mediu": "95.88",
"volum_total": "1917.50",
"rata_medie": "5.76",
"zile_fara_tranzactii": 0
},
"stoc": {
"zile": 20,
"volum_mediu": "628.50",
"volum_total": "12570.00",
"rata_medie": "6.23",
"zile_fara_tranzactii": 0
},
"fata_de_referinta": {
"zile_comparate": 20,
"zile_sub_cotat": 19,
"diferenta_medie": "-0.25"
}
},
"zile": [
{
"data": "2024-01-03",
"tranzactii": {
"volum": "449.50",
"rata": "5.96",
"fara_tranzactii": false
},
"stoc": {
"volum": "949.00",
"rata": "6.17",
"fara_tranzactii": false
},
"referinta": {
"nume": "overnight",
"cotat": "6.04",
"diferenta": "-0.08"
}
}
]
},
"meta": {
"sursa": "BNR — operaţiuni interbancare, serii zilnice.",
"acoperire": {
"de_la": "2005-01-03",
"pana_la": "2026-09-18"
},
"zile_publicate": 20,
"zile_interval": 30,
"nota_masuri": "`tranzactii` e ce s-a tranzacţionat în ziua respectivă; `stoc` e soldul operaţiunilor în derulare. Stocul e în medie de 3,2 ori mai mare, iar volumul tranzacţiilor nu-l depăşeşte niciodată — verificat pe toate cele 5.463 de zile.",
"nota_referinta": "Rata tranzacţionată e majoritar overnight, deci comparaţia cu ROBOR overnight e directă. Istoric: mai mică în 83% din zile, cu o medie de −0,147 puncte.",
"nota_zero": "Într-o zi fără nicio tranzacţie nu există rată — `rata` e `null`, nu 0, iar `fara_tranzactii` o marchează. Sunt 31 de astfel de zile în toată seria.",
"nota_zi_comuna": "Diferenţa faţă de referinţă se calculează doar când ambele cifre există în ACEEAŞI zi. Nu se împrumută cotaţia zilei vecine.",
"robor": "/financiar/v1/robor"
}
}
{
"data": null,
"meta": {
"de_la": "2024-06-15",
"pana_la": "2024-06-15",
"acoperire": {
"de_la": "2005-01-03",
"pana_la": "2026-09-18"
},
"fara_date": "Intervalul se suprapune peste acoperire (2005-01-03 → 2026-09-18), dar nu are nicio valoare în el.",
"fara_date_cod": "interval_gol"
}
}
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 366 days, a malformed date, pana_la before de_la, or a reference outside the list. |
| 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 366 days, a malformed date, pana_la before de_la, or a reference outside the list.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}