oneapi
Autentificare
Financiar v1 / RiscCredit

Servicii, anual, pe activitate sau mod de furnizare

Exportul şi importul de servicii tăiate pe două axe pe care seria lunară nu le are: activitatea
economică a firmei
(13 secţiuni CAEN × 16 tipuri de serviciu) sau modul de furnizare (32 de
tipuri × 4 moduri). Anual, 2022–2024.

Cele două tăieturi au acelaşi control şi se leagă de /comert-servicii. Totalurile anuale sunt
identice cifră cu cifră între ele, iar faţă de suma celor douăsprezece luni EBOPS diferă doar prin
rotunjire — 39.689,12 faţă de 39.689 în 2023. Controlul nu e o afirmaţie din documentaţie: se
calculează la fiecare cerere, în identitati.control_comert_servicii.

La importuri, „activitatea economică nealocată" e cea mai mare secţiune — 37,4% în 2022, 40,4%
* în 2023, 39,1% în 2024, faţă de circa 13% la exporturi. Face parte din partiţie, deci suma
* secţiunilor se închide, dar ponderea ei se raportează separat în identitati.nealocat: fără ea, o
* citire „pe sectoare" atribuie greşit restul.

Axele stau în ordine inversă în cod — la STEC serviciul e ultimul segment, la MOSA modul e — iar
ierarhia serviciilor vine din prefixul codului şi se validează prin sume la fiecare cerere.

Modul 3 GATS lipseşte legitim: prezenţa comercială e investiţie directă, nu comerţ cu servicii.
Că cele trei prezente sunt exhaustive se vede din faptul că se însumează la total.

GET
https://oneapi.ro/api/financiar/v1/servicii-anual

Parametri de interogare

NumeTipDescriereValori acceptate
dimensiuneopțional string | null Opţional, implicit activitate (secţiuni CAEN). Sau mod_furnizare — aceleaşi totaluri, altă a doua axă. activitatemod_furnizare
sensopțional string | null Opţional: export sau import. exportimport
serviciuopțional string | null Opţional, codul tipului de serviciu. Lista completă e în data.servicii. ex. ST
categorieopțional string | null Opţional — secţiune CAEN (A_B, J) sau mod (M1), după dimensiune. Lista e în data.categorii. ex. _Tex. MT
anopțional integer | null Opţional, 2022–2024. Fără el, toţi anii publicaţi. 2000 – 2100

Cum se comportă

  • Exportul şi importul de servicii tăiate pe două axe pe care seria lunară nu le are: activitatea economică a firmei (13 secţiuni CAEN × 16 tipuri de serviciu) sau modul de furnizare (32 de tipuri × 4 moduri). Anual, 2022–2024.
  • Cele două tăieturi au acelaşi control şi se leagă de /comert-servicii. Totalurile anuale sunt identice cifră cu cifră între ele, iar faţă de suma celor douăsprezece luni EBOPS diferă doar prin rotunjire: 39.689,12 aici faţă de 39.689 acolo, în 2023. De aceea e o rută cu un parametru, nu două.
  • Controlul nu e o afirmaţie din documentaţie — se calculează la fiecare cerere, în identitati.control_comert_servicii, şi se vede pereche cu pereche.
  • Toleranţa controlului vine din precizia CELEILALTE clase. Aici valorile au două zecimale, dar cele douăsprezece cifre lunare din EBOPS sunt milioane întregi, fiecare cu până la o jumătate de milion eroare de rotunjire — deci marja sumei lor e 6, nu 0,065. Cu regula locală aplicată greşit, toate cele şase perechi păreau că pică, deşi abaterile reale sunt între 0,10 şi 2,04. Într-o comparaţie între două clase, precizia mai grosieră o decide pe cea comună.
  • La importuri, „activitatea economică nealocată" e cea mai mare secţiune din clasificare — 37,4% în 2022, 40,4% în 2023 şi 39,1% în 2024, faţă de circa 13% la exporturi. Face parte din partiţie, deci suma secţiunilor se închide corect, dar ponderea ei se raportează separat în identitati.nealocat: fără cifra asta, o citire „pe sectoare" atribuie greşit restul.
  • Axele stau în ordine inversă în cod — la STEC serviciul e ultimul segment (STEC2A_E_A_B_ST → secţiunea A_B, serviciul ST), la MOSA modul e ultimul (MOSA_E_SC1_M2 → serviciul SC1, modul M2). Despărţirea se face per dimensiune, nu cu o regulă comună.
  • Ierarhia serviciilor vine din prefixul codului şi se validează prin sume la fiecare cerere — SJ1 sub SJ, SJ21 sub SJ2. Dacă nesting-ul ar fi o coincidenţă de şiruri, sumele n-ar ieşi. Pe mod_furnizare: 7 noduri, toate se închid, pe 143 de verificări.
  • Modul 3 GATS lipseşte legitim: prezenţa comercială e investiţie directă, nu comerţ cu servicii. Că cele trei prezente sunt exhaustive se vede din faptul că se însumează la total — 167 din 167 de verificări.
  • Toleranţa sumelor din interiorul clasei e derivată: toate cele 1.822 de valori încap în două zecimale, deci o sumă de k componente e mărginită de (k+1) × 0,005. E a treia regulă de toleranţă din modul şi toate trei sunt măsurate — milioane întregi la poziţia investiţională, o zecimală la remiteri, două aici.
  • Cele patru serii-antet, cu unitatea * şi fără valori, nu apar în răspuns.

La ce folosește

  • Ce sectoare exportă servicii: IT&C, transport, industrie prelucrătoare.
  • Cât din exportul de servicii se prestează „la distanţă", fără deplasare.
  • Serviciile de arhitectură şi inginerie, separat de restul consultanţei.

Structura răspunsului

CâmpTipDescriere
data.dimensiune string Dimensiunea după care sunt defalcate valorile.
data.axa string Ce înseamnă categorie la dimensiunea cerută.
data.ani array Anii pentru care există valori.
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.servicii object Codul fiecărui tip de serviciu şi eticheta lui. La mod_furnizare eticheta vine din seria „toate modurile", singura care descrie serviciul fără coada modului.
data.categorii object Valorile axei a doua şi etichetele lor.
data.categorii._T string
data.categorii.A_B string
data.categorii.C string
data.categorii.D_E string
data.categorii.F string
data.categorii.G string
data.categorii.H string
data.categorii.J string
data.categorii.K string
data.categorii.M string
data.categorii.N string
data.categorii.X string
data.categorii._U string
data.pozitii[].cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.pozitii[].sens string Sensul operaţiunii.
data.pozitii[].serviciu string
data.pozitii[].serviciu_eticheta string
data.pozitii[].serviciu_nivel integer Adâncimea în arborele de servicii.
data.pozitii[].serviciu_parinte null Codul serviciului-părinte, din prefixul codului. null la total.
data.pozitii[].categorie string Categoria din clasificarea sursei.
data.pozitii[].categorie_eticheta string
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[].ani_publicati integer Anii pe care sursa i-a publicat efectiv pentru seria asta.
data.pozitii[].valori object Valorile seriei, pe perioade.
data.identitati.partitie object Categoriile de pe axa a doua faţă de totalul ei, pe fiecare sens, serviciu şi an.
data.identitati.partitie.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.partitie.componente integer Componentele care se adună în total.
data.identitati.partitie.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.partitie.verificari integer Câte combinaţii au fost verificate.
data.identitati.partitie.verificari_inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.partitie.abatere_maxima string Cea mai mare abatere întâlnită între suma componentelor şi total.
data.identitati.arbore_servicii object Fiecare serviciu faţă de suma copiilor lui direcţi — validarea ierarhiei deduse din cod.
data.identitati.arbore_servicii.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.arbore_servicii.noduri_cu_copii integer Câte noduri din ierarhie au cel puţin un descendent.
data.identitati.arbore_servicii.noduri_inchise integer Câte noduri din ierarhie s-au închis în toleranţă.
data.identitati.arbore_servicii.verificari integer Câte combinaţii au fost verificate.
data.identitati.arbore_servicii.abateri array
data.identitati.control_comert_servicii object Totalul anual faţă de suma celor douăsprezece luni din /comert-servicii, pereche cu pereche.
data.identitati.control_comert_servicii.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.control_comert_servicii.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.control_comert_servicii.toleranta_nota string
data.identitati.control_comert_servicii.perechi_verificate integer
data.identitati.control_comert_servicii.perechi_inchise integer Câte perechi verificate s-au închis în toleranţă.
data.identitati.control_comert_servicii.perechi[].an string Anul la care se referă valoarea.
data.identitati.control_comert_servicii.perechi[].sens string Sensul operaţiunii.
data.identitati.control_comert_servicii.perechi[].aici string
data.identitati.control_comert_servicii.perechi[].comert_servicii string
data.identitati.control_comert_servicii.perechi[].abatere string Diferenţa măsurată între cele două mărimi comparate.
data.identitati.control_comert_servicii.perechi[].se_inchide boolean Dacă verificarea s-a închis în toleranţă.
data.identitati.nealocat object Doar la activitate: ponderea secţiunii reziduale în total, pe sens şi an.
data.identitati.nealocat.sectiune string Secţiunea din clasificare — nivelul cel mai larg.
data.identitati.nealocat.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.nealocat.procent_din_total.export object Valoarea pe sensul de export.
data.identitati.nealocat.procent_din_total.import object Valoarea pe sensul de import.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.ani_disponibili array
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.nota_control string Ce verificare de control s-a făcut pe valorile din răspuns.
meta.nota_partitie string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_arbore string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_toleranta string De unde vine toleranţa şi de ce nu e zero.
meta.nota_moduri 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ă pentru dimensiunea cerută.
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/servicii-anual
{
    "data": {
        "dimensiune": "activitate",
        "axa": "secţiune CAEN",
        "ani": [
            "2022",
            "2023",
            "2024"
        ],
        "unitate": "milioane EUR",
        "filtre": [],
        "servicii": {
            "ST": "Total",
            "SA": "Servicii de prelucrare a bunurilor",
            "SB": "Servicii de întreţinere şi reparaţii",
            "SC": "Servicii de transport",
            "SD": "Turism / Călătorii",
            "SE": "Servicii de construcţii",
            "SF": "Servicii de asigurare şi ale fondurilor de pensii",
            "SG": "Servicii financiare",
            "SH": "Taxe pentru utilizarea proprietăţii intelectuale",
            "SI": "Servicii de telecomunicaţii, informatice şi informaţionale",
            "SJ": "Alte servicii pentru afaceri",
            "SJ1": "Servicii de cercetare și dezvoltare",
            "SJ2": "Servicii de consultanță profesională și managerială",
            "SJ3": "Servicii tehnice, comerciale și alte servicii pentru afaceri",
            "SK": "Servicii personale, culturale şi recreaţionale",
            "SL": "Bunuri şi servicii guvernamentale, neclasificate în altă parte"
        },
        "categorii": {
            "_T": "Toate activitățile economice",
            "A_B": "Agricultură, silvicultură și pescuit",
            "C": "Industria prelucrătoare (C)",
            "D_E": "Producția și furnizarea de energie electrică și termică, gaze, apă caldă și aer condiționat",
            "F": "Construcții (F)",
            "G": "Comerț cu ridicata și cu amănuntul",
            "H": "Transport și depozitare (H)",
            "J": "Informații și comunicații (J)",
            "K": "Intermedieri financiare și asigurări (K)",
            "M": "Activități profesionale, științifice și tehnice (M)",
            "N": "Activități de servicii administrative și activități de servicii suport (N)",
            "X": "Alte activități (ILOPQRSTU)",
            "_U": "Activitate economică nealocată"
        },
        "pozitii": [
            {
                "cod": "STEC2A_E__T_ST",
                "sens": "export",
                "serviciu": "ST",
                "serviciu_eticheta": "Total",
                "serviciu_nivel": 1,
                "serviciu_parinte": null,
                "categorie": "_T",
                "categorie_eticheta": "Toate activitățile economice",
                "unitate": "mil. EUR",
                "ani_publicati": 3,
                "valori": {
                    "2022": "36161.52",
                    "2023": "39689.12",
                    "2024": "39642.16"
                }
            }
        ],
        "identitati": {
            "partitie": {
                "identitate": "totalul pe secţiune CAEN = suma categoriilor",
                "componente": 12,
                "toleranta": "0.065",
                "verificari": 38,
                "verificari_inchise": 38,
                "abatere_maxima": "0.02"
            },
            "arbore_servicii": {
                "identitate": "fiecare serviciu = suma copiilor lui direcţi",
                "noduri_cu_copii": 2,
                "noduri_inchise": 2,
                "verificari": 93,
                "abateri": []
            },
            "control_comert_servicii": {
                "identitate": "totalul anual = suma celor douăsprezece luni din /comert-servicii",
                "toleranta": "6",
                "toleranta_nota": "Derivată din precizia seriei lunare, care e în milioane întregi: douăsprezece cifre rotunjite dau o marjă de 6. Precizia mai grosieră dintre cele două clase o decide pe cea comună.",
                "perechi_verificate": 6,
                "perechi_inchise": 6,
                "perechi": [
                    {
                        "an": "2022",
                        "sens": "export",
                        "aici": "36161.52",
                        "comert_servicii": "36162.00",
                        "abatere": "0.48",
                        "se_inchide": true
                    }
                ]
            },
            "nealocat": {
                "sectiune": "_U",
                "nota": "Secţiunea „activitate economică nealocată\" face parte din partiţie, dar la importuri e cea mai mare din clasificare — peste 39%. Fără cifra asta, o citire „pe sectoare\" atribuie greşit restul.",
                "procent_din_total": {
                    "export": {
                        "2022": "13.25",
                        "2023": "12.94",
                        "2024": "13.97"
                    },
                    "import": {
                        "2022": "37.41",
                        "2023": "40.44",
                        "2024": "39.15"
                    }
                }
            }
        }
    },
    "meta": {
        "sursa": "BNR — comerţul cu servicii pe caracteristicile întreprinderilor (STEC) şi pe modalitatea de furnizare (MOS), serii anuale (clasa 2077).",
        "ani_disponibili": [
            "2022",
            "2023",
            "2024"
        ],
        "pozitii_totale": 416,
        "pozitii_returnate": 416,
        "nota_control": "Totalul anual e confruntat la fiecare cerere cu suma celor douăsprezece luni din /comert-servicii: 6 din 6 perechi se închid, cu toleranţa ±6. Aceea vine din precizia seriei lunare — milioane întregi — nu din a acestei clase: într-o comparaţie între două clase, precizia mai grosieră o decide pe cea comună.",
        "nota_partitie": "Categoriile de pe axa a doua formează o partiţie: 38 din 38 verificări se închid, cu toleranţa ±0.065 derivată pentru 12 componente.",
        "nota_arbore": "Ierarhia serviciilor vine din prefixul codului şi e validată prin sume: 2 din 2 noduri se închid, pe 93 verificări.",
        "nota_toleranta": "Toleranţa e derivată: toate valorile celor două clase încap în două zecimale, deci o sumă de k componente e mărginită de (k+1) × 0,005. E a treia regulă de toleranţă din modul şi toate trei sunt măsurate — milioane întregi la poziţia investiţională, o zecimală la remiteri, două aici.",
        "nota_moduri": "Modul 3 GATS — prezenţa comercială — lipseşte legitim: e investiţie directă, nu comerţ cu servicii. Cele trei prezente sunt exhaustive, ceea ce se vede din faptul că se însumează la total.",
        "nota_null": "`null` într-un an î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.
422validareDimensiune sau sens în afara listei, cod de serviciu ori categorie scrise altfel decât alfanumeric. dimensiune_necunoscuta, an_indisponibil — răspunsul dă anii publicaţi. serviciu_necunoscut şi categorie_necunoscuta — răspunsul dă listele, iar categoriile diferă între dimensiuni.
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": "Dimensiune sau sens în afara listei, cod de serviciu ori categorie scrise altfel decât alfanumeric. dimensiune_necunoscuta, an_indisponibil — răspunsul dă anii publicaţi. serviciu_necunoscut şi categorie_necunoscuta — răspunsul dă listele, iar categoriile diferă între dimensiuni.",
        "detalii": {
            "dimensiune": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}