oneapi
Autentificare
Financiar v1 / RiscCredit

Deţineri de titluri de datorie

Cine deţine hârtia emisă de cine: titlurile de datorie pe sectoare emitente şi deţinătoare. Celulele marcate zero_structural sunt zero prin definiţie, nu lipsă de date.

GET
https://oneapi.ro/api/financiar/v1/titluri-datorie

Parametri de interogare

NumeTipDescriereValori acceptate
detinatoropțional string | null Opţional — fixează o linie: toti, rezidenti, financiare, administratie, gospodarii, nefinanciare, nerezidenti. totirezidentifinanciareadministratiegospodariinefinanciarenerezidenti
emitentopțional string | null Opţional — fixează o coloană, cu aceleaşi valori. Cu amândoi parametrii se întoarce o singură celulă în timp. totirezidentifinanciareadministratiegospodariinefinanciarenerezidenti
de_laopțional string | null Opţional, YYYY-Tn sau YYYY-MM. ex. 2024-06-15
pana_laopțional string | null Opţional, YYYY-Tn sau YYYY-MM. ex. 2024-06-15ex. 2024-06-30

Cum se comportă

  • Matricea deţinerilor de titluri de datorie: pe linii sectorul care ţine hârtia, pe coloane sectorul care a emis-o. 55 de trimestre, 2012-T4 → prezent, în milioane EUR, două zecimale.
  • Cele 45 de serii sunt celulele completate ale unui tabel 7×7, nu o listă. Golurile nu sunt lipsuri: „toţi deţinătorii × toţi emitenţii" n-are sens ca celulă, iar deţinerile nerezidenţilor în titluri nerezidente cad în afara statisticii româneşti. Ce există pentru fiecare deţinător e listat în data.sectoare[*].ca_detinator, iar o pereche inexistentă întoarce 404 cu lista, nu un răspuns gol.
  • Sursa publică un agregat separat, „deţineri ale nerezidenţilor", fără emitent în denumire. Verificat pe toate cele 55 de trimestre, e exact suma deţinerilor nerezidente de titluri rezidente, deci ruta îl expune ca celula nerezidenti × rezidenti, nu ca un al optulea sector — matricea rămâne regulată pentru cine o citeşte.
  • Matricea închide fără excepţie. Cele 23 de identităţi care decurg din cele trei reguli ale ei — rezidenţii sunt suma celor patru sectoare interne, şi pe linie şi pe coloană; totalul e rezidenţi plus nerezidenţi; agregatul nerezident închide colţul — se verifică la fiecare cerere, cu toleranţa strictă de clasă (k+1) × 0,005. Pe toată istoria: toate verificările se închid, cu abateri maxime de 0,01–0,02 — rotunjirea celei de-a doua zecimale, sub toleranţă.
  • Opt celule sunt zero pe toată istoria, şi sunt zerouri reale. Gospodăriile nu emit titluri de datorie, deci toată coloana „emise de gospodării" e zero prin construcţie, la fel ca administraţia publică ţinând obligaţiuni corporative. Se întorc marcate zero_structural, nu omise: absenţa lor din răspuns ar sugera date lipsă acolo unde răspunsul e „zero, şi aşa rămâne".
  • Solduri la sfârşit de trimestru: data_referinta e 31.03 / 30.06 / 30.09 / 31.12. Sursa etichetează perioada ca trimestru (2012-T4); luna_sursa e doar luna de început sub care e stocată, nu momentul măsurării.
  • Datoria faţă de străinătate pe scadenţe şi debitori e la /datorie-externa. Aici e altceva: cine deţine hârtia, inclusiv rezidenţi ţinând titluri emise de rezidenţi.

La ce folosește

  • Cât din titlurile emise de statul român ţin nerezidenţii, trimestru de trimestru.
  • Expunerea sectorului financiar intern pe datorie suverană faţă de cea corporativă.
  • Cât de subţire e piaţa obligaţiunilor corporative româneşti faţă de cea de stat.

Structura răspunsului

CâmpTipDescriere
data.de_la string Începutul intervalului acoperit de răspuns.
data.pana_la string Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.filtre array Filtrele aplicate efectiv, aşa cum le-a înţeles ruta — util când o valoare a fost normalizată.
data.perioade[].trimestru string Trimestrul la care se referă valoarea.
data.perioade[].data_referinta string Sfârşitul trimestrului, momentul la care e măsurat soldul.
data.perioade[].luna_sursa string Luna aşa cum o etichetează sursa, înainte de normalizare.
data.sectoare object Eticheta fiecărui sector, dacă e agregat sau sector elementar, şi emitenţii care există pentru el ca deţinător.
data.sectoare.toti.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.toti.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.toti.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.rezidenti.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.rezidenti.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.rezidenti.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.financiare.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.financiare.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.financiare.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.administratie.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.administratie.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.administratie.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.gospodarii.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.gospodarii.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.gospodarii.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.nefinanciare.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.nefinanciare.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.nefinanciare.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.sectoare.nerezidenti.eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.sectoare.nerezidenti.agregat boolean Agregatul din care face parte valoarea.
data.sectoare.nerezidenti.ca_detinator array Valorile văzute din partea deţinătorului instrumentului.
data.celule[].cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.celule[].detinator string
data.celule[].detinator_eticheta string
data.celule[].emitent string Instituţia care a emis informaţia.
data.celule[].emitent_eticheta string
data.celule[].unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.celule[].trimestre_publicate integer În câte trimestre din fereastră celula are efectiv valoare.
data.celule[].zero_structural boolean Celula e zero pe toată istoria clasei, nu doar pe fereastra cerută — un zero real, nu o lipsă.
data.celule[].valori object Valorile seriei, pe perioade.
data.identitati.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.identitati_declarate integer
data.identitati.identitati integer Verificările de identitate rulate pe valorile din răspuns.
data.identitati.identitati_inchise integer Câte identităţi s-au închis în toleranţă.
data.identitati.identitati_neverificate integer Câte identităţi n-au putut fi verificate, din lipsă de date pe una din laturi.
data.identitati.verificari integer Câte combinaţii au fost verificate.
data.identitati.verificari_inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.detalii[] array Cele 23 de identităţi ale matricei, verificate la fiecare cerere, cu abaterea maximă a fiecăreia.
data.identitati.detalii[].identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.detalii[].toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.detalii[].trimestre_verificate integer Câte trimestre au intrat în verificare.
data.identitati.detalii[].trimestre_inchise integer Câte trimestre s-au închis în toleranţă.
data.identitati.detalii[].abatere_maxima string Cea mai mare abatere întâlnită între suma componentelor şi total.
data.identitati.neverificate array Identităţile declarate pe care fereastra cerută nu le-a putut verifica, fiecare cu motivul: serie_inexistenta (sursa nu publică deloc componenta), nepublicata_in_fereastra (există, dar nu în intervalul ăsta) sau fara_perioada_completa (componentele există, dar nu simultan în nicio perioadă). Numărul verificat se schimbă cu fereastra, iar aici scrie de ce.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.acoperire.de_la string Prima perioadă pentru care avem date.
meta.acoperire.pana_la string Ultima perioadă pentru care avem date.
meta.trimestre integer Trimestrele pentru care există valori.
meta.celule_totale integer
meta.celule_returnate integer
meta.nota_matrice string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_identitati string Cum se citesc verificările de identitate din răspuns.
meta.nota_zero string Ce înseamnă un zero aici: valoare măsurată nulă, nu lipsă de date.
meta.nota_frecventa string Ce frecvenţe publică sursa şi care dintre ele nu se compară între ele.
meta.nota_datorie string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_null string De ce lipsesc unele valori: sursa nu le-a publicat, nu le-a calculat ori le-a suprimat.
meta.fara_date data e null, iar aici stă motivul. Nu există valori în bază. Intervalul se suprapune peste acoperire (2012-T4 → prezent) dar n-are valori; in_afara_acoperirii când e în întregime în afara ei.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/titluri-datorie
{
    "data": {
        "de_la": "2012-T4",
        "pana_la": "2026-T2",
        "unitate": "mil. EUR",
        "filtre": [],
        "perioade": [
            {
                "trimestru": "2012-T4",
                "data_referinta": "2012-12-31",
                "luna_sursa": "2012-10"
            }
        ],
        "sectoare": {
            "toti": {
                "eticheta": "toate sectoarele",
                "agregat": true,
                "ca_detinator": [
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare"
                ]
            },
            "rezidenti": {
                "eticheta": "rezidenţi",
                "agregat": true,
                "ca_detinator": [
                    "toti",
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare",
                    "nerezidenti"
                ]
            },
            "financiare": {
                "eticheta": "societăţi financiare",
                "agregat": false,
                "ca_detinator": [
                    "toti",
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare",
                    "nerezidenti"
                ]
            },
            "administratie": {
                "eticheta": "administraţia publică",
                "agregat": false,
                "ca_detinator": [
                    "toti",
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare",
                    "nerezidenti"
                ]
            },
            "gospodarii": {
                "eticheta": "gospodării şi instituţii fără scop lucrativ în serviciul lor",
                "agregat": false,
                "ca_detinator": [
                    "toti",
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare",
                    "nerezidenti"
                ]
            },
            "nefinanciare": {
                "eticheta": "societăţi nefinanciare",
                "agregat": false,
                "ca_detinator": [
                    "toti",
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare",
                    "nerezidenti"
                ]
            },
            "nerezidenti": {
                "eticheta": "nerezidenţi",
                "agregat": true,
                "ca_detinator": [
                    "rezidenti",
                    "financiare",
                    "administratie",
                    "gospodarii",
                    "nefinanciare"
                ]
            }
        },
        "celule": [
            {
                "cod": "DSET_FB_ALL_DS_RES",
                "detinator": "toti",
                "detinator_eticheta": "toate sectoarele",
                "emitent": "rezidenti",
                "emitent_eticheta": "rezidenţi",
                "unitate": "mil. Euro",
                "trimestre_publicate": 55,
                "zero_structural": false,
                "valori": {
                    "2012-T4": "32196.32",
                    "2013-T1": "34946.77",
                    "2013-T2": "35784.87",
                    "2013-T3": "37636.41",
                    "2013-T4": "37764.24",
                    "2014-T1": "40483.69",
                    "2014-T2": "42609.06",
                    "2014-T3": "43503.63",
                    "2014-T4": "45845.75",
                    "2015-T1": "48765.34",
                    "2015-T2": "45715.97",
                    "2015-T3": "46640.82",
                    "2015-T4": "48184.95",
                    "2016-T1": "49735.57",
                    "2016-T2": "49180.99",
                    "2016-T3": "51448.75",
                    "2016-T4": "51878.91",
                    "2017-T1": "53374.59",
                    "2017-T2": "55286.10",
                    "2017-T3": "55031.01",
                    "2017-T4": "55151.48",
                    "2018-T1": "56595.27",
                    "2018-T2": "55515.36",
                    "2018-T3": "57868.82",
                    "2018-T4": "61072.46",
                    "2019-T1": "60011.44",
                    "2019-T2": "64533.27",
                    "2019-T3": "70324.99",
                    "2019-T4": "72346.85",
                    "2020-T1": "74861.39",
                    "2020-T2": "82170.82",
                    "2020-T3": "88030.74",
                    "2020-T4": "96951.38",
                    "2021-T1": "96499.23",
                    "2021-T2": "100305.96",
                    "2021-T3": "103679.41",
                    "2021-T4": "101650.39",
                    "2022-T1": "98354.18",
                    "2022-T2": "91932.42",
                    "2022-T3": "94056.28",
                    "2022-T4": "98742.37",
                    "2023-T1": "113512.04",
                    "2023-T2": "119862.98",
                    "2023-T3": "123586.55",
                    "2023-T4": "131697.27",
                    "2024-T1": "145205.92",
                    "2024-T2": "147974.65",
                    "2024-T3": "161891.15",
                    "2024-T4": "161371.51",
                    "2025-T1": "167479.84",
                    "2025-T2": "173424.77",
                    "2025-T3": "183176.39",
                    "2025-T4": "190887.82",
                    "2026-T1": "194885.35",
                    "2026-T2": "196132.84"
                }
            }
        ],
        "identitati": {
            "nota": "Matricea e guvernată de trei reguli: rezidenţii sunt suma celor patru sectoare interne, şi pe linie şi pe coloană; totalul e rezidenţi plus nerezidenţi; agregatul „deţineri ale nerezidenţilor” închide colţul nerezident. Toate identităţile care decurg din ele se verifică la fiecare cerere.",
            "identitati_declarate": 23,
            "identitati": 23,
            "identitati_inchise": 23,
            "identitati_neverificate": 0,
            "verificari": 1265,
            "verificari_inchise": 1265,
            "detalii": [
                {
                    "identitate": "titlurile rezidente ţinute de toate sectoarele = suma pe cei patru emitenţi rezidenţi",
                    "toleranta": "0.025000",
                    "trimestre_verificate": 55,
                    "trimestre_inchise": 55,
                    "abatere_maxima": "0.01"
                }
            ],
            "neverificate": []
        }
    },
    "meta": {
        "sursa": "BNR — deţineri de titluri de datorie, pe sector deţinător şi sector emitent (clasa 1447).",
        "acoperire": {
            "de_la": "2012-T4",
            "pana_la": "2026-T2"
        },
        "trimestre": 55,
        "celule_totale": 45,
        "celule_returnate": 45,
        "nota_matrice": "Cele 45 de serii sunt celulele completate ale unui tabel deţinător × emitent. Golurile nu sunt lipsuri: „toţi × toţi” n-are sens, iar deţinerile nerezidenţilor în titluri nerezidente cad în afara statisticii româneşti. Ce există pentru fiecare deţinător e în `data.sectoare[*].ca_detinator`.",
        "nota_identitati": "23 din 23 identităţi se închid pe toate trimestrele lor, pe 1265 verificări, cu toleranţa strictă de clasă.",
        "nota_zero": "8 celule sunt zero pe toată istoria, şi sunt zerouri reale: gospodăriile nu emit titluri de datorie, iar administraţia publică nu ţine obligaţiuni corporative. Se întorc marcate `zero_structural`, nu omise.",
        "nota_frecventa": "Sunt solduri trimestriale. `data_referinta` e sfârşitul trimestrului, nu luna din etichetă.",
        "nota_datorie": "Datoria faţă de străinătate pe scadenţe şi debitori e la /financiar/v1/datorie-externa; aici e cine deţine hârtia, inclusiv rezidenţi ţinând titluri rezidente.",
        "nota_null": "`null` într-un trimestru înseamnă că celula n-a fost publicată atunci, nu zero."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareSector în afara listei, sau interval_prea_lung peste 90 de trimestre. combinatie_indisponibila — perechea nu e o celulă a matricei; răspunsul dă emitenţii care există pentru acel deţinător.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Sector în afara listei, sau interval_prea_lung peste 90 de trimestre. combinatie_indisponibila — perechea nu e o celulă a matricei; răspunsul dă emitenţii care există pentru acel deţinător.",
        "detalii": {
            "detinator": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}