oneapi
Sign in
Financiar v1 / RiscCredit

Non-bank institutions' balance sheet

The balance sheet assets and liabilities of non-bank financial institutions, by lending category — quarterly since 2008, 73 quarters, in thousand lei.

Six of the twelve categories have no value at all. Mortgage loans, factoring, discounting, forfaiting, trade finance and other forms of financing are published as an empty template: the source announces the categories from the law and fills in those in which institutions exist. They come back flagged se_publica: false, not silently omitted.

The category sum is not checked as an identity — but the categories do not overlap. Measured, the sum of assets over the published categories is BELOW the general register in every quarter: with all five categories published, 51,906.6–132,358.1 thousand lei (0.16–0.37%) is missing; when categories are unpublished the gap grows to about 2.5%. An overlap would push the sum above the total.

What is checked are the identities within each category: assets from loans, deposits placed and other assets; liabilities from capital, borrowings received and other liabilities; and the equality of the two sides. All close, across every category with data.

These institutions report quarterly, and the periods carry data_referinta at quarter end.

GET
https://oneapi.ro/api/financiar/v1/institutii-nebancare

Query parameters

NameTypeDescriptionAccepted values
categorieoptional string | null Optional, a short code — L leasing, CC consumer credit, T the general register. The full list, with the empty ones flagged, is in data.categorii. e.g. Te.g. CC
laturaoptional string | null Optional: activ or pasiv. activpasiv
de_laoptional string | null Optional, YYYY-Tn or YYYY-MM. e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY-Tn or YYYY-MM. e.g. 2024-06-15e.g. 2024-06-30

How it behaves

  • The balance-sheet assets and liabilities of non-bank financial institutions, by lending category — quarterly since 2008-Q1, 73 quarters, in thousands of lei. Twelve categories × eight positions.
  • Six of the twelve categories carry no values at all — mortgage lending, factoring, discounting, forfaiting, trade finance and other forms of credit. No data is missing: the source announces the categories set out in law and fills in those where institutions exist. They are returned flagged se_publica: false, with their positions at zero published quarters — not silently omitted, so that anyone building the table from the law does not wonder where they went.
  • The category sum is not checked as an identity — but the categories do not overlap. Measured: the sum of assets over the published categories is below the general register in every quarter. In the 21 quarters with all five categories published, 51,906.6–132,358.1 thousand lei (0.16–0.37%) is missing; in quarters with unpublished categories the gap grows to about 2.5%. An overlap would give a sum above the total. The gap is not rounding, so a check over the sum of categories would have reported an error on correct data.
  • What is verified are the identities inside each category: assets from loans granted, deposits placed and other assets; liabilities from capital and reserves, borrowings and other liabilities; and the equality of the two sides. All 18 close, across 951 checks.
  • Coverage differs widely between the published categories: the general register and multiple activities have all 73 quarters, leasing 72, consumer credit 58, guarantees 52, and microcredit only 21.
  • Periods carry data_referinta at quarter end — these are balances, as in the source's other quarterly series.
  • The loans granted by the same institutions, broken down by institutional sector, are at /credite-depozite?creditor=ifn.

What it is for

  • How much leasing companies weigh in the NBFI balance sheet.
  • Own capital against borrowings, by category.
  • The path of non-bank consumer lending since 2008.

Response structure

FieldTypeDescription
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.unitate string The unit of the values. Read it before plotting or adding them up.
data.filtre array The filters actually applied, as the route understood them — useful when a value was normalised.
data.perioade[].trimestru string The quarter the value refers to.
data.perioade[].data_referinta string The end of the quarter, when the balance is measured.
data.perioade[].luna_sursa string The month as the source labels it, before normalisation.
data.categorii object The code, name and se_publica for each category.
data.categorii.T.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.T.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.CC.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.CC.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.CI.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.CI.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.MC.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.MC.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.COM.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.COM.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.FC.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.FC.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.S.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.S.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.FR.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.FR.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.L.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.L.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.G.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.G.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.XC.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.XC.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.categorii.XXC.eticheta string Display label for the value — the readable version of the code next to it.
data.categorii.XXC.se_publica boolean Whether the source still publishes this series or has discontinued it.
data.pozitii[].cod string Code from the source code list — the key you filter on.
data.pozitii[].categorie string Category in the source classification.
data.pozitii[].categorie_eticheta string
data.pozitii[].pozitie string Position of the item in the response order.
data.pozitii[].latura string Side of the account (resources or uses).
data.pozitii[].eticheta string Display label for the value — the readable version of the code next to it.
data.pozitii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.pozitii[].trimestre_publicate integer In how many quarters of the window the position actually has a value — zero for unpublished categories.
data.pozitii[].valori object The values of the series, by period.
data.identitati.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.identitati_declarate integer
data.identitati.identitati integer The identity checks run on the values in the response.
data.identitati.identitati_inchise integer How many identities closed within tolerance.
data.identitati.identitati_neverificate integer How many identities could not be checked, for lack of data on one side.
data.identitati.verificari integer How many combinations were checked.
data.identitati.verificari_inchise integer How many checks closed within tolerance.
data.identitati.detalii[] array The three identities checked on each category, with their result.
data.identitati.detalii[].categorie string Category in the source classification.
data.identitati.detalii[].identitate string The identity being checked — which sum must equal which total.
data.identitati.detalii[].toleranta string How much deviation is accepted before the identity counts as unclosed — the source rounding, not an error.
data.identitati.detalii[].trimestre_verificate integer How many quarters entered the check.
data.identitati.detalii[].trimestre_inchise integer How many quarters closed within tolerance.
data.identitati.detalii[].abatere_maxima string Largest deviation found between the sum of components and the total.
data.identitati.neverificate array The declared identities the requested window could not check, each with its reason: serie_inexistenta (the source never publishes that component), nepublicata_in_fereastra (it exists, but not in this interval) or fara_perioada_completa (the components exist but never in the same period). The verified count changes with the window, and this says why.
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.trimestre integer Quarters for which values exist.
meta.categorii_totale integer
meta.categorii_cu_date integer
meta.pozitii_totale integer How many positions match the filters, beyond the current page.
meta.pozitii_returnate integer How many positions this response actually returned.
meta.nota_categorii string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_suprapunere string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_identitati string How to read the identity checks in the response.
meta.nota_frecventa string Which frequencies the source publishes and which of them are not comparable.
meta.nota_credite string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_null string Why some values are missing: the source did not publish, did not compute, or suppressed them.
meta.fara_date data is null and this says why. No values in the database. The interval overlaps the coverage (2008-Q1 → present) but holds no values; in_afara_acoperirii when it falls entirely outside.
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/institutii-nebancare
{
    "data": {
        "de_la": "2008-T1",
        "pana_la": "2026-T1",
        "unitate": "mii RON",
        "filtre": [],
        "perioade": [
            {
                "trimestru": "2008-T1",
                "data_referinta": "2008-03-31",
                "luna_sursa": "2008-01"
            }
        ],
        "categorii": {
            "T": {
                "eticheta": "Registru general",
                "se_publica": true
            },
            "CC": {
                "eticheta": "Credite de consum",
                "se_publica": true
            },
            "CI": {
                "eticheta": "Credite ipotecare şi/sau imobiliare",
                "se_publica": false
            },
            "MC": {
                "eticheta": "Microcreditare",
                "se_publica": true
            },
            "COM": {
                "eticheta": "Finanţarea tranzacţiilor comerciale",
                "se_publica": false
            },
            "FC": {
                "eticheta": "Factoring",
                "se_publica": false
            },
            "S": {
                "eticheta": "Scontare",
                "se_publica": false
            },
            "FR": {
                "eticheta": "Forfetare",
                "se_publica": false
            },
            "L": {
                "eticheta": "Leasing financiar",
                "se_publica": true
            },
            "G": {
                "eticheta": "Emitere de garanţii şi asumare de angajamente, inclusiv garantarea creditului",
                "se_publica": true
            },
            "XC": {
                "eticheta": "Alte forme de finanţare de natura creditului",
                "se_publica": false
            },
            "XXC": {
                "eticheta": "Activităţi multiple de creditare",
                "se_publica": true
            }
        },
        "pozitii": [
            {
                "cod": "IFNBT_T_A",
                "categorie": "T",
                "categorie_eticheta": "Registru general",
                "pozitie": "A",
                "latura": "activ",
                "eticheta": "total activ",
                "unitate": "mii lei",
                "trimestre_publicate": 73,
                "valori": {
                    "2008-T1": "34249419.2",
                    "2008-T2": "37246787.6",
                    "2008-T3": "40834701.6",
                    "2008-T4": "44503127.9",
                    "2009-T1": "44112363.9",
                    "2009-T2": "42757832.8",
                    "2009-T3": "41357841.4",
                    "2009-T4": "40613005.7",
                    "2010-T1": "37331591.7",
                    "2010-T2": "38321162.6",
                    "2010-T3": "36237400.5",
                    "2010-T4": "36105810.4",
                    "2011-T1": "33399174.9",
                    "2011-T2": "33966514.0",
                    "2011-T3": "33776469.6",
                    "2011-T4": "33601189.0",
                    "2012-T1": "33064110.2",
                    "2012-T2": "33403398.0",
                    "2012-T3": "33910633.4",
                    "2012-T4": "33157312.7",
                    "2013-T1": "32970131.6",
                    "2013-T2": "32885939.7",
                    "2013-T3": "32721899.4",
                    "2013-T4": "32626009.4",
                    "2014-T1": "32439773.4",
                    "2014-T2": "31599264.4",
                    "2014-T3": "31108813.6",
                    "2014-T4": "30868752.6",
                    "2015-T1": "30457220.9",
                    "2015-T2": "30869351.9",
                    "2015-T3": "30978078.1",
                    "2015-T4": "31029583.9",
                    "2016-T1": "31364205.4",
                    "2016-T2": "33039239.8",
                    "2016-T3": "33241487.0",
                    "2016-T4": "33160547.0",
                    "2017-T1": "33980546.4",
                    "2017-T2": "35075696.6",
                    "2017-T3": "35657192.5",
                    "2017-T4": "36715849.4",
                    "2018-T1": "36196467.5",
                    "2018-T2": "38159853.6",
                    "2018-T3": "39112098.3",
                    "2018-T4": "39644925.6",
                    "2019-T1": "40556887.4",
                    "2019-T2": "41798692.8",
                    "2019-T3": "43286950.2",
                    "2019-T4": "44245630.5",
                    "2020-T1": "44178934.3",
                    "2020-T2": "44361475.9",
                    "2020-T3": "44471738.9",
                    "2020-T4": "44071580.4",
                    "2021-T1": "44830435.1",
                    "2021-T2": "46478135.5",
                    "2021-T3": "47221784.7",
                    "2021-T4": "47434930.4",
                    "2022-T1": "48738218.2",
                    "2022-T2": "50979210.1",
                    "2022-T3": "52181807.0",
                    "2022-T4": "54329529.6",
                    "2023-T1": "55853799.8",
                    "2023-T2": "58619022.4",
                    "2023-T3": "61401824.5",
                    "2023-T4": "63523151.4",
                    "2024-T1": "65392089.4",
                    "2024-T2": "68453754.8",
                    "2024-T3": "68979776.8",
                    "2024-T4": "71297624.9",
                    "2025-T1": "72554947.9",
                    "2025-T2": "76872552.7",
                    "2025-T3": "79409952.4",
                    "2025-T4": "80802521.6",
                    "2026-T1": "81673824.3"
                }
            }
        ],
        "identitati": {
            "nota": "Se verifică doar identităţile din interiorul fiecărei categorii. Suma categoriilor nu e verificată drept identitate: e mereu SUB registrul general (0,16–0,37% când toate categoriile sunt publicate, până la 2,5% când lipsesc categorii), deci nu se suprapun, dar golul nu e rotunjire.",
            "identitati_declarate": 18,
            "identitati": 18,
            "identitati_inchise": 18,
            "identitati_neverificate": 0,
            "verificari": 951,
            "verificari_inchise": 951,
            "detalii": [
                {
                    "categorie": "T",
                    "identitate": "total activ = suma componentelor",
                    "toleranta": "0.2000",
                    "trimestre_verificate": 73,
                    "trimestre_inchise": 73,
                    "abatere_maxima": "0.1"
                }
            ],
            "neverificate": []
        }
    },
    "meta": {
        "sursa": "BNR — instituţii financiare nebancare, activele şi pasivele bilanţiere (clasa 962).",
        "acoperire": {
            "de_la": "2008-T1",
            "pana_la": "2026-T1"
        },
        "trimestre": 73,
        "categorii_totale": 12,
        "categorii_cu_date": 6,
        "pozitii_totale": 96,
        "pozitii_returnate": 96,
        "nota_categorii": "6 din cele 12 categorii n-au nicio valoare: sursa anunţă categoriile din lege şi le completează pe cele în care există instituţii. Se întorc marcate `se_publica: false`, nu omise.",
        "nota_suprapunere": "Categoriile nu se verifică drept identitate, dar nici nu se suprapun: suma activelor pe categoriile publicate e SUB registrul general în toate trimestrele. Când toate cele cinci categorii cu date sunt publicate, lipsesc 51.906,6–132.358,1 mii lei (0,16–0,37% din registru); în trimestrele cu categorii nepublicate golul urcă la circa 2,5%. O suprapunere ar da o sumă peste total. Golul nu e rotunjire, aşa că suma categoriilor nu e tratată ca identitate.",
        "nota_identitati": "18 din 18 identităţi se închid pe toate trimestrele lor, pe 951 verificări. Se verifică activul, pasivul şi egalitatea celor două laturi, în fiecare categorie.",
        "nota_frecventa": "IFN-urile raportează trimestrial. `data_referinta` e sfârşitul trimestrului, nu luna din etichetă.",
        "nota_credite": "Creditele lor pe sectoare instituţionale sunt la /financiar/v1/credite-depozite?creditor=ifn.",
        "nota_null": "`null` într-un trimestru înseamnă că poziţia n-a fost publicată atunci, nu zero."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareinterval_prea_lung beyond 90 quarters, a side outside the list, or a category written as anything other than letters. categorie_necunoscuta — the response carries the list.
429cota_depasitaThe 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 90 quarters, a side outside the list, or a category written as anything other than letters. categorie_necunoscuta — the response carries the list.",
        "detalii": {
            "categorie": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}