oneapi
Autentificare
Financiar v1 / RiscCredit

Datoria externă, arhiva BPM5

Metodologia pe care BNR a abandonat-o în 2014, în aceleaşi două tăieturi ca ruta curentă: pe
sectoare (trimestrial, din 2001-T4) şi pe scadenţe (lunar, din decembrie 2004).

Câştigul de istorie e inegal: tăietura pe sectoare duce înapoi 21 de trimestre faţă de seria
BPM6, cea pe scadenţe doar 37 de luni.

Nu se lipeşte de seria curentă, iar termenul scurt e cel mai divergent. Raportul BPM5/BPM6 e
0,933–0,999 la termenul lung, 0,828–1,000 la termenul scurt şi 0,916–1,017 la totalul
trimestrial. Comparaţia se calculează la fiecare cerere, în identitati.comparatie_bpm6.

Sursa ierarhiei o oglindeşte pe cea a succesorului: denumirea la scadenţe, codul la sectoare —
acolo denumirile sunt plate. _meta.ierarhie_din spune care s-a folosit.

Compunerea totalului nu se vede din cod: datoria brută totală = datoria brută + investiţii directe intercompanii, scrisă explicit fiindcă prefixul face toate trei seriile rădăcini.

Aceeaşi neconcordanţă din sursă apare în ambele metodologii: clasa pe scadenţe nu se închide în
2010-11 şi 2013-09, aceleaşi luni şi aceeaşi abatere de −0,4 care pică şi în clasa BPM6 (acolo se
adaugă 2024-03, după sfârşitul arhivei).

Controlul între tăieturi se închide în 27 din 39 de trimestre. Abaterile mari sunt în 2008 —
527,1, 1.067,1 şi 1.259,2 în primele trei trimestre, o revizuire aplicată la o tăietură şi nu la
cealaltă —; celelalte nouă sunt sub 2. perechi_deschise le dă pe toate, cele mai mari întâi.

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

Parametri de interogare

NumeTipDescriereValori acceptate
dimensiuneopțional string | null Opţional, implicit sectoare. Sau scadente. Fiecare are o singură frecvenţă la sursă, deci nu există parametru pentru ea. sectoarescadente
de_laopțional string | null Opţional, YYYY-MM sau YYYY-Tn. ex. 2024-06-15
pana_laopțional string | null Opţional, YYYY-MM sau YYYY-Tn. ex. 2014-T2ex. 2014-08
nivel_maxopțional integer | null Opţional, 1–4. 1 – 4

Cum se comportă

  • Datoria externă în metodologia BPM5, abandonată de BNR în 2014, în aceleaşi două tăieturi ca ruta curentă: pe sectoare (trimestrial, 2001-T4 → 2014-T2, 52 de serii) şi pe scadenţe (lunar, decembrie 2004 → august 2014, 27 de serii).
  • Câştigul de istorie e real, dar inegal: tăietura pe sectoare duce înapoi 21 de trimestre faţă de seria BPM6, cea pe scadenţe doar 37 de luni.
  • Nu se lipeşte de seria curentă, iar termenul scurt e cel mai divergent. Pe suprapunere, raportul BPM5/BPM6 e 0,933–0,999 la termenul lung, 0,828–1,000 la termenul scurt şi 0,916–1,017 la totalul trimestrial. Comparaţia se calculează la fiecare cerere, în identitati.comparatie_bpm6; nu e o identitate şi nu trebuie să se închidă.
  • Sursa ierarhiei o oglindeşte pe cea a succesorului. Tăietura pe scadenţe o ia din denumire, ca /datorie-externa?dimensiune=scadente; cea pe sectoare din cod, fiindcă acolo denumirile sunt plate. Încă o confirmare că regula e a clasei, nu a familiei — _meta.ierarhie_din spune care s-a folosit.
  • Compunerea totalului nu se vede din cod. datoria externă brută totală = datoria externă brută + investiţii directe intercompanii — verificat, diferenţa dintre primele două e exact seria de intercompanii, 21.229,4 milioane în 2014-T2. Prefixul codului face toate trei seriile rădăcini, aşa că identitatea se scrie explicit.
  • Aceeaşi neconcordanţă din sursă apare în ambele metodologii. Tăietura pe scadenţe nu se închide în 2010-11 şi 2013-09, ambele cu −0,4 — aceleaşi luni şi aceeaşi abatere pică şi în clasa BPM6 (care mai are o lună deschisă, 2024-03, după sfârşitul arhivei). Neconcordanţa a supravieţuit schimbării de metodologie. Restul: tăietura pe sectoare se închide pe toate nodurile, inclusiv datoria brută ca sumă a celor patru sectoare (TDET_GG, TDET_NBR, TDET_BK, TDET_XS), legătură pe care nici codul, nici denumirea n-o dau şi care se declară explicit.
  • Controlul între tăieturi se face pe trimestre, fiindcă leagă o serie trimestrială de una lunară: totalul pe sectoare la eticheta trimestrului, cel pe scadenţe la ultima lună a lui. Aşezate aşa, se închid 27 din 39 la toleranţa derivată de ±0,15; pe aceeaşi etichetă nu s-ar potrivi niciunul. Abaterile mari sunt în 2008 — 527,1, 1.067,1 şi 1.259,2 în primele trei trimestre, o revizuire aplicată la o tăietură şi nu la cealaltă —; celelalte nouă sunt sub 2. perechi_deschise le dă pe toate, cele mai mari întâi.
  • Prima observaţie a fiecărei clase e singură în anul ei — decembrie 2004 la scadenţe, T4 2001 la sectoare — după care ritmul devine uniform.
  • Toleranţa vine din eroarea de rotunjire per cifră: ambele clase publică o zecimală, deci 0,05 per cifră şi (k+1) × 0,05 pentru o sumă de k componente.

La ce folosește

  • Datoria externă a României înainte de aderarea la UE, pe care seria curentă n-o acoperă.
  • Cum a crescut datoria privată între 2001 şi 2007.
  • Structura pe sectoare — guvern, bănci, alte sectoare — în anii 2000.

Structura răspunsului

CâmpTipDescriere
data.metodologie string Mereu BPM5. E motivul pentru care cifrele nu se pot înlănţui cu /datorie-externa.
data.dimensiune string Dimensiunea după care sunt defalcate valorile.
data.frecventa string Determinată de dimensiune: trimestrial la sectoare, lunar la scadenţe.
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[].perioada string Perioada la care se referă valoarea.
data.perioade[].luna_sursa string Luna aşa cum o etichetează sursa, înainte de normalizare.
data.perioade[].data_referinta string Doar la frecvenţă trimestrială: sfârşitul trimestrului.
data.pozitii[].cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.pozitii[].eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.pozitii[].cale array Calea în ierarhie, de la rădăcină până la elementul curent.
data.pozitii[].nivel integer Nivelul din ierarhia clasificării — cu cât e mai adânc, cu atât e mai detaliat.
data.pozitii[].parinte null Elementul imediat superior în ierarhie; null la rădăcină.
data.pozitii[].natura string stoc sau flux. Tăietura pe scadenţe le amestecă, ca şi succesoarea ei.
data.pozitii[].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.pozitii[].perioade_publicate integer Câte perioade a publicat efectiv sursa.
data.pozitii[].valori object Valorile seriei, pe perioade.
data.identitati.descompunere.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.descompunere.noduri_cu_copii integer Câte noduri din ierarhie au cel puţin un descendent.
data.identitati.descompunere.noduri_inchise integer Câte noduri din ierarhie s-au închis în toleranţă.
data.identitati.descompunere.verificari integer Câte combinaţii au fost verificate.
data.identitati.descompunere.abateri array Nodurile care nu se închid, cu perioadele şi cifrele lor.
data.identitati.control_intre_taieturi object Totalul pe sectoare faţă de cel pe scadenţe, pe fiecare trimestru. perechi_deschise listează ce nu se închide.
data.identitati.control_intre_taieturi.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.control_intre_taieturi.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.control_intre_taieturi.perechi_verificate integer
data.identitati.control_intre_taieturi.perechi_inchise integer Câte perechi verificate s-au închis în toleranţă.
data.identitati.control_intre_taieturi.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.control_intre_taieturi.perechi_deschise_numar integer
data.identitati.control_intre_taieturi.perechi_deschise[].trimestru string Trimestrul la care se referă valoarea.
data.identitati.control_intre_taieturi.perechi_deschise[].luna_referinta string
data.identitati.control_intre_taieturi.perechi_deschise[].pe_sectoare string
data.identitati.control_intre_taieturi.perechi_deschise[].pe_scadente string
data.identitati.control_intre_taieturi.perechi_deschise[].abatere string Diferenţa măsurată între cele două mărimi comparate.
data.identitati.control_intre_taieturi.perechi_deschise[].se_inchide boolean Dacă verificarea s-a închis în toleranţă.
data.identitati.comparatie_bpm6 object Nu e o identitate: BPM5 şi BPM6 măsoară altfel. Arată de ce arhiva nu se lipeşte de seria curentă.
data.identitati.comparatie_bpm6.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.comparatie_bpm6.perechi_comparate.TDET_TGED string
data.identitati.comparatie_bpm6.perioade_comune integer
data.identitati.comparatie_bpm6.raport_bpm5_bpm6.TDET_TGED.min string
data.identitati.comparatie_bpm6.raport_bpm5_bpm6.TDET_TGED.max string
data.identitati.comparatie_bpm6.ultimele[].perioada string Perioada la care se referă valoarea.
data.identitati.comparatie_bpm6.ultimele[].TDET_TGED.bpm5 string
data.identitati.comparatie_bpm6.ultimele[].TDET_TGED.bpm6 string
data.identitati.comparatie_bpm6.ultimele[].TDET_TGED.raport string Raportul dintre cele două mărimi comparate.
data.identitati.compunere_total object Compunerea scrisă explicit, fiindcă prefixul codului n-o dă.
data.identitati.compunere_total.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.compunere_total.total string
data.identitati.compunere_total.componente array Componentele care se adună în total.
data.identitati.compunere_total.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.compunere_total.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.compunere_total.perioade_verificate integer
data.identitati.compunere_total.perioade_inchise integer
data.identitati.compunere_total.abatere_maxima string Cea mai mare abatere întâlnită între suma componentelor şi total.
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.perioade integer Perioadele pentru care există valori.
meta.pozitii_totale integer Câte poziţii se potrivesc filtrelor, dincolo de pagina curentă.
meta.pozitii_returnate integer Câte poziţii s-au întors efectiv în răspunsul ăsta.
meta.ierarhie_din string
meta.nota_bpm6 string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_ierarhie string Cum se citeşte ierarhia clasificării şi ce niveluri nu se adună între ele.
meta.nota_identitate string Cum se verifică identitatea de mai sus şi ce înseamnă când nu se închide.
meta.nota_control string Ce verificare de control s-a făcut pe valorile din răspuns.
meta.nota_ritm 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 string data e null, iar aici stă motivul. Nu există valori BPM5 în bază pentru dimensiunea cerută. Intervalul e în întregime în afara acoperirii; seriile s-au încheiat în 2014 şi nu se mai actualizează. Se suprapune peste acoperire, dar n-are valori.
meta.fara_date_cod string 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/datorie-externa/arhiva
{
    "data": {
        "metodologie": "BPM5",
        "dimensiune": "sectoare",
        "frecventa": "trimestrial",
        "de_la": "2001-T4",
        "pana_la": "2014-T2",
        "unitate": "milioane EUR",
        "filtre": [],
        "perioade": [
            {
                "perioada": "2001-T4",
                "luna_sursa": "2001-10",
                "data_referinta": "2001-12-31"
            }
        ],
        "pozitii": [
            {
                "cod": "TDET_TGED",
                "eticheta": "Datoria externă brută totală",
                "cale": [
                    "Datoria externă brută totală"
                ],
                "nivel": 1,
                "parinte": null,
                "natura": "stoc",
                "unitate": "milioane EUR",
                "perioade_publicate": 51,
                "valori": {
                    "2001-T4": "14787.6",
                    "2002-T1": "15239.1",
                    "2002-T2": "14950.1",
                    "2002-T3": "15729.7",
                    "2002-T4": "16199.7",
                    "2003-T1": "16352.7",
                    "2003-T2": "16394.1",
                    "2003-T3": "17849.4",
                    "2003-T4": "17835.3",
                    "2004-T1": "18949.8",
                    "2004-T2": "20054.1",
                    "2004-T3": "21351.0",
                    "2004-T4": "21505.0",
                    "2005-T1": "24255.0",
                    "2005-T2": "26766.0",
                    "2005-T3": "29204.0",
                    "2005-T4": "30913.6",
                    "2006-T1": "33028.5",
                    "2006-T2": "35131.1",
                    "2006-T3": "37369.4",
                    "2006-T4": "41196.1",
                    "2007-T1": "44499.8",
                    "2007-T2": "49094.7",
                    "2007-T3": "54063.1",
                    "2007-T4": "58628.7",
                    "2008-T1": "61027.1",
                    "2008-T2": "66635.7",
                    "2008-T3": "70552.4",
                    "2008-T4": "72354.4",
                    "2009-T1": "73187.1",
                    "2009-T2": "76679.7",
                    "2009-T3": "81062.6",
                    "2009-T4": "81205.4",
                    "2010-T1": "87144.9",
                    "2010-T2": "88838.5",
                    "2010-T3": "91129.7",
                    "2010-T4": "92458.3",
                    "2011-T1": "95057.4",
                    "2011-T2": "98701.4",
                    "2011-T3": "98694.1",
                    "2011-T4": "98723.5",
                    "2012-T1": "99791.6",
                    "2012-T2": "100044.2",
                    "2012-T3": "100158.5",
                    "2012-T4": "99680.6",
                    "2013-T1": "99707.0",
                    "2013-T2": "98032.9",
                    "2013-T3": "97606.0",
                    "2013-T4": "96600.2",
                    "2014-T1": "93238.0",
                    "2014-T2": "92958.0"
                }
            }
        ],
        "identitati": {
            "descompunere": {
                "identitate": "fiecare poziţie = suma copiilor ei direcţi",
                "noduri_cu_copii": 14,
                "noduri_inchise": 14,
                "verificari": 714,
                "abateri": []
            },
            "control_intre_taieturi": {
                "identitate": "datoria brută totală (pe sectoare, trimestrial) = termen lung + termen scurt (pe scadenţe, la ultima lună a trimestrului)",
                "toleranta": "0.1500",
                "perechi_verificate": 39,
                "perechi_inchise": 27,
                "nota": "Seria trimestrială se citeşte la eticheta ei, cea lunară la sfârşitul trimestrului. Abaterile mari sunt în 2008 — o revizuire aplicată la o tăietură şi nu la cealaltă —, restul sunt de ordinul unităţilor. `perechi_deschise` le dă pe toate, cele mai mari întâi.",
                "perechi_deschise_numar": 12,
                "perechi_deschise": [
                    {
                        "trimestru": "2008-T3",
                        "luna_referinta": "2008-09",
                        "pe_sectoare": "70552.4",
                        "pe_scadente": "69293.2",
                        "abatere": "1259.2",
                        "se_inchide": false
                    }
                ]
            },
            "comparatie_bpm6": {
                "nota": "Nu e o identitate şi nu trebuie să se închidă: BPM5 şi BPM6 sunt metodologii diferite. Cifrele arată de ce arhiva nu se lipeşte de seria curentă.",
                "perechi_comparate": {
                    "TDET_TGED": "TDE6T_B"
                },
                "perioade_comune": 30,
                "raport_bpm5_bpm6": {
                    "TDET_TGED": {
                        "min": "0.9161",
                        "max": "1.0166"
                    }
                },
                "ultimele": [
                    {
                        "perioada": "2013-T3",
                        "TDET_TGED": {
                            "bpm5": "97606.0",
                            "bpm6": "104773.4",
                            "raport": "0.9316"
                        }
                    }
                ]
            },
            "compunere_total": {
                "identitate": "datoria externă brută totală = datoria externă brută + investiţii directe intercompanii",
                "total": "TDET_TGED",
                "componente": [
                    "TDET_GED",
                    "TDET_DINV"
                ],
                "nota": "Scrisă explicit: prefixul codului face toate trei seriile rădăcini, deci compunerea nu se vede din cod.",
                "toleranta": "0.1500",
                "perioade_verificate": 51,
                "perioade_inchise": 51,
                "abatere_maxima": "0.1"
            }
        }
    },
    "meta": {
        "sursa": "BNR — arhiva datoriei externe, metodologia BPM5 (clasa 579).",
        "acoperire": {
            "de_la": "2001-T4",
            "pana_la": "2014-T2"
        },
        "perioade": 51,
        "pozitii_totale": 52,
        "pozitii_returnate": 52,
        "ierarhie_din": "cod",
        "nota_bpm6": "Arhiva nu se lipeşte de /datorie-externa. Pe cele 30 perioade comune, rapoartele BPM5/BPM6 sunt în `identitati.comparatie_bpm6.raport_bpm5_bpm6` — pe termenul scurt coboară până la 0,828.",
        "nota_ierarhie": "Ierarhia vine din cod la această tăietură, ca la succesoarea ei BPM6. Regula e a clasei, nu a familiei.",
        "nota_identitate": "14 din 14 noduri se închid, pe 714 verificări. Pe tăietura pe scadenţe, cele două luni care nu se închid — 2010-11 şi 2013-09, ambele cu −0,4 — pică şi în clasa BPM6: neconcordanţa a supravieţuit schimbării de metodologie. (BPM6 mai are o lună deschisă, 2024-03, cu 7,9 — după sfârşitul arhivei.)",
        "nota_control": "27 din 39 perechi se închid între cele două tăieturi. Abaterile mari sunt în 2008 (trei trimestre, până la 1.259,2); celelalte 9 sunt sub 2. Toate sunt în `identitati.control_intre_taieturi.perechi_deschise`, cele mai mari întâi.",
        "nota_ritm": "Prima observaţie a fiecărei clase e singură în anul ei — decembrie 2004 la scadenţe, T4 2001 la sectoare — apoi ritmul devine uniform.",
        "nota_null": "`null` într-o perioadă înseamnă că poziţia 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.
422validareinterval_prea_lung peste 140 de perioade, dimensiune în afara listei, sau nivel_max în afara intervalului 1–4. dimensiune_necunoscuta.
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": "interval_prea_lung peste 140 de perioade, dimensiune în afara listei, sau nivel_max în afara intervalului 1–4. dimensiune_necunoscuta.",
        "detalii": {
            "dimensiune": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}