Comerţul cu servicii (EBOPS)
62 de categorii de servicii × 3 fluxuri — export, import, sold — lunar din ianuarie 2010 sau
trimestrial. Ambele frecvenţe au exact aceleaşi 186 de coduri.
Totalul e identic cu linia „Servicii" din contul curent al balanţei de plăţi: 197 din 197 de
luni, abatere 0. În mai 2026: export 3.640, import 2.634, sold 1.007 — aceleaşi cifre în ambele
rute. Asta e desfacerea liniei aceleia în 62 de poziţii, nu un set paralel de date.
Ierarhia e în cod, iar denumirea e plată — invers faţă de rezerve. Toate cele 186 de denumiri
stau la acelaşi nivel, deci structura se ia din sufixul codului, care se cuibăreşte pe caractere:
STRMP sub STRM sub STR sub S. cale se compune din etichetele strămoşilor, deci e derivată,
nu citită dintr-un câmp.
Codul nu e crezut pe cuvânt: identitati.ierarhie verifică fiecare nod cu copii faţă de suma
copiilor lui direcţi, la fiecare cerere. Dacă nesting-ul pe prefix ar fi o coincidenţă de şiruri,
sumele n-ar ieşi. Pe toată istoria, toate cele 48 de noduri se închid.
sold = export − import se verifică pe toate cele 62 de categorii, nu doar pe total — 10.609
verificări la lunar, toate în ±1.
Toleranţa sumelor e derivată: toate cele 31.827 de valori ale clasei sunt milioane întregi, deci o
sumă de k componente e mărginită de ⌊(k+1)/2⌋.
Parametri de interogare
lunar. Sau trimestrial — aceleaşi 186 de coduri.
lunartrimestrial
export, import, sold.
exportimportsold
YYYY-MM sau YYYY-Tn.
ex. 2024-06-15
YYYY-MM sau YYYY-Tn. Cel mult 120 de perioade.
ex. 2024-06-15
nivel_max=2 dă cele 12 capitole, fără subdiviziuni.
1 – 5
Cum se comportă
- Comerţul internaţional cu servicii în clasificarea extinsă EBOPS — 62 de categorii × 3 fluxuri (export, import, sold), lunar din ianuarie 2010 sau trimestrial. Ambele frecvenţe au exact aceleaşi 186 de coduri.
- Totalul e identic cu linia „Servicii" din contul curent al balanţei de plăţi — verificat pe 197 din 197 de luni, abatere 0. În mai 2026: export 3.640, import 2.634, sold 1.007, aceleaşi cifre în ambele rute. Ruta desface acea linie în 62 de poziţii; nu e un set paralel de date.
- Ierarhia e în cod, iar denumirea e plată — exact invers faţă de rezerve. Toate cele 186 de denumiri stau la acelaşi nivel („EXPORT; Servicii de transport maritim de pasageri"), deci calea din denumire nu spune nimic. Structura trăieşte în sufixul codului, care se cuibăreşte pe caractere:
STRMPsubSTRMsubSTRsubS. Verificarea cale-vs-cod, rulată la fiecare clasă, e cea care prinde diferenţa — la rezerve verdictul a fost invers. - Codul nu e crezut pe cuvânt.
calee derivată din etichetele strămoşilor, deci ar minţi dacă nesting-ul pe prefix ar fi o simplă coincidenţă de şiruri. De aceeaidentitati.ierarhieverifică, la fiecare cerere, fiecare nod cu copii faţă de suma copiilor lui direcţi: 48 de noduri, toate se închid, pe 7.989 de perioade-nod la lunar şi 2.637 la trimestrial. sold = export − importse verifică pe toate cele 62 de categorii, nu doar pe total — 10.609 verificări la lunar şi 3.497 la trimestrial, toate în ±1.- Ambele verificări rulează pe toate cele 186 de poziţii, indiferent de
fluxsaunivel_max: un filtru n-are voie să facă garanţia să dispară. - Toleranţa sumelor e derivată, fiindcă toate cele 31.827 de valori ale clasei sunt milioane întregi — verificat, niciuna cu zecimale — deci o sumă de
kcomponente e mărginită de⌊(k+1)/2⌋. La investiţiile directe regula nu se aplică, acolo valorile au zecimale. - Trimestrialul e suma celor trei luni (65 din 65, abatere maximă 1). Seria lunară merge cu patru luni mai departe.
- Fereastra e plafonată la 120 de perioade, ca la balanţa de plăţi — sunt 186 de poziţii.
La ce folosește
- Exportul de servicii informatice, categoria cea mai mare a României după transport.
- Balanţa turismului: cât cheltuiesc străinii aici faţă de cât cheltuiesc românii afară.
- Transportul rutier de mărfuri, separat de restul transporturilor.
Structura răspunsului
STRM e transportul maritim şi la export, şi la import.
null la totalul fiecărui flux.
abateri spune care.
data e null, iar aici stă motivul. Nu există valori pentru frecvenţa cerută. Intervalul e în afara acoperirii (ianuarie 2010 → prezent).
fara_date e proză şi se poate reformula, ăsta nu.
Exemple de răspuns
{
"data": {
"frecventa": "lunar",
"clasificare": "EBOPS",
"de_la": "2026-07",
"pana_la": "2026-07",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
"2026-07"
],
"pozitii": [
{
"cod": "CIS6L_E_S",
"flux": "export",
"categorie": "S",
"eticheta": "Servicii",
"cale": [
"Servicii"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"perioade_publicate": 1,
"valori": {
"2026-07": "4013"
}
}
],
"identitati": {
"ierarhie": {
"identitate": "fiecare poziţie = suma copiilor ei direcţi",
"noduri_cu_copii": 48,
"noduri_inchise": 48,
"verificari": 48,
"regula_tolerantei": "⌊(k+1)/2⌋ milioane pentru k componente — valorile clasei sunt milioane întregi",
"abateri": []
},
"sold": {
"identitate": "sold = export − import",
"categorii": 62,
"verificari": 62,
"verificari_inchise": 62,
"abatere_maxima": "1",
"toleranta": "1"
}
}
},
"meta": {
"sursa": "BNR — comerţul cu servicii, clasificarea extinsă EBOPS (clasa 1267).",
"acoperire": {
"de_la": "2010-01",
"pana_la": "2026-07"
},
"perioade": 1,
"categorii": 62,
"pozitii_totale": 186,
"pozitii_returnate": 186,
"nota_balanta": "Totalul de servicii e identic cu linia „Servicii\" din contul curent al balanţei de plăţi — verificat pe 197 din 197 de luni, abatere 0. Ruta desface acea linie în 62 de poziţii.",
"nota_ierarhie": "Denumirile sunt plate, toate la acelaşi nivel, deci ierarhia se ia din sufixul codului, care se cuibăreşte pe caractere. `cale` e derivată din etichetele strămoşilor, nu citită. Validarea nu e opţională: 48 din 48 noduri se închid faţă de suma copiilor, pe 48 verificări.",
"nota_toleranta": "Toleranţa sumelor e derivată — toate valorile clasei sunt milioane întregi, deci o sumă de k componente e mărginită de ⌊(k+1)/2⌋. La investiţiile directe regula nu se aplică, fiindcă acolo valorile au zecimale.",
"nota_frecvente": "Lunar şi trimestrial au aceleaşi 186 de coduri, iar trimestrialul e suma celor trei luni (65 din 65, abatere maximă 1). Seria lunară merge cu patru luni mai departe.",
"nota_null": "`null` într-o perioadă înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": {
"frecventa": "lunar",
"clasificare": "EBOPS",
"de_la": "2024-06",
"pana_la": "2026-07",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
"2024-06",
"2024-07",
"2024-08",
"2024-09",
"2024-10",
"2024-11",
"2024-12",
"2025-01",
"2025-02",
"2025-03",
"2025-04",
"2025-05",
"2025-06",
"2025-07",
"2025-08",
"2025-09",
"2025-10",
"2025-11",
"2025-12",
"2026-01",
"2026-02",
"2026-03",
"2026-04",
"2026-05",
"2026-06",
"2026-07"
],
"pozitii": [
{
"cod": "CIS6L_E_S",
"flux": "export",
"categorie": "S",
"eticheta": "Servicii",
"cale": [
"Servicii"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"perioade_publicate": 26,
"valori": {
"2024-06": "3300",
"2024-07": "3608",
"2024-08": "3300",
"2024-09": "3373",
"2024-10": "3434",
"2024-11": "3359",
"2024-12": "3738",
"2025-01": "3426",
"2025-02": "3391",
"2025-03": "3729",
"2025-04": "3512",
"2025-05": "3476",
"2025-06": "3742",
"2025-07": "3985",
"2025-08": "3512",
"2025-09": "3878",
"2025-10": "3823",
"2025-11": "3630",
"2025-12": "4161",
"2026-01": "3349",
"2026-02": "3481",
"2026-03": "4090",
"2026-04": "3766",
"2026-05": "3774",
"2026-06": "4330",
"2026-07": "4013"
}
}
],
"identitati": {
"ierarhie": {
"identitate": "fiecare poziţie = suma copiilor ei direcţi",
"noduri_cu_copii": 48,
"noduri_inchise": 48,
"verificari": 1248,
"regula_tolerantei": "⌊(k+1)/2⌋ milioane pentru k componente — valorile clasei sunt milioane întregi",
"abateri": []
},
"sold": {
"identitate": "sold = export − import",
"categorii": 62,
"verificari": 1612,
"verificari_inchise": 1612,
"abatere_maxima": "1",
"toleranta": "1"
}
}
},
"meta": {
"sursa": "BNR — comerţul cu servicii, clasificarea extinsă EBOPS (clasa 1267).",
"acoperire": {
"de_la": "2010-01",
"pana_la": "2026-07"
},
"perioade": 26,
"categorii": 62,
"pozitii_totale": 186,
"pozitii_returnate": 186,
"nota_balanta": "Totalul de servicii e identic cu linia „Servicii\" din contul curent al balanţei de plăţi — verificat pe 197 din 197 de luni, abatere 0. Ruta desface acea linie în 62 de poziţii.",
"nota_ierarhie": "Denumirile sunt plate, toate la acelaşi nivel, deci ierarhia se ia din sufixul codului, care se cuibăreşte pe caractere. `cale` e derivată din etichetele strămoşilor, nu citită. Validarea nu e opţională: 48 din 48 noduri se închid faţă de suma copiilor, pe 1248 verificări.",
"nota_toleranta": "Toleranţa sumelor e derivată — toate valorile clasei sunt milioane întregi, deci o sumă de k componente e mărginită de ⌊(k+1)/2⌋. La investiţiile directe regula nu se aplică, fiindcă acolo valorile au zecimale.",
"nota_frecvente": "Lunar şi trimestrial au aceleaşi 186 de coduri, iar trimestrialul e suma celor trei luni (65 din 65, abatere maximă 1). Seria lunară merge cu patru luni mai departe.",
"nota_null": "`null` într-o perioadă înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": {
"frecventa": "lunar",
"clasificare": "EBOPS",
"de_la": "2024-06",
"pana_la": "2024-06",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
"2024-06"
],
"pozitii": [
{
"cod": "CIS6L_E_S",
"flux": "export",
"categorie": "S",
"eticheta": "Servicii",
"cale": [
"Servicii"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"perioade_publicate": 1,
"valori": {
"2024-06": "3300"
}
}
],
"identitati": {
"ierarhie": {
"identitate": "fiecare poziţie = suma copiilor ei direcţi",
"noduri_cu_copii": 48,
"noduri_inchise": 48,
"verificari": 48,
"regula_tolerantei": "⌊(k+1)/2⌋ milioane pentru k componente — valorile clasei sunt milioane întregi",
"abateri": []
},
"sold": {
"identitate": "sold = export − import",
"categorii": 62,
"verificari": 62,
"verificari_inchise": 62,
"abatere_maxima": "1",
"toleranta": "1"
}
}
},
"meta": {
"sursa": "BNR — comerţul cu servicii, clasificarea extinsă EBOPS (clasa 1267).",
"acoperire": {
"de_la": "2010-01",
"pana_la": "2026-07"
},
"perioade": 1,
"categorii": 62,
"pozitii_totale": 186,
"pozitii_returnate": 186,
"nota_balanta": "Totalul de servicii e identic cu linia „Servicii\" din contul curent al balanţei de plăţi — verificat pe 197 din 197 de luni, abatere 0. Ruta desface acea linie în 62 de poziţii.",
"nota_ierarhie": "Denumirile sunt plate, toate la acelaşi nivel, deci ierarhia se ia din sufixul codului, care se cuibăreşte pe caractere. `cale` e derivată din etichetele strămoşilor, nu citită. Validarea nu e opţională: 48 din 48 noduri se închid faţă de suma copiilor, pe 48 verificări.",
"nota_toleranta": "Toleranţa sumelor e derivată — toate valorile clasei sunt milioane întregi, deci o sumă de k componente e mărginită de ⌊(k+1)/2⌋. La investiţiile directe regula nu se aplică, fiindcă acolo valorile au zecimale.",
"nota_frecvente": "Lunar şi trimestrial au aceleaşi 186 de coduri, iar trimestrialul e suma celor trei luni (65 din 65, abatere maximă 1). Seria lunară merge cu patru luni mai departe.",
"nota_null": "`null` într-o perioadă înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | interval_prea_lung peste 120 de perioade, flux în afara listei, sau nivel_max în afara intervalului 1–5. frecventa_necunoscuta — valoare în afara listei. |
| 429 | cota_depasita | Cota 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 120 de perioade, flux în afara listei, sau nivel_max în afara intervalului 1–5. frecventa_necunoscuta — valoare în afara listei.",
"detalii": {
"frecventa": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}