Balanţa de plăţi
Balanţa de plăţi BPM6 — 208 poziţii, lunar din ianuarie 2005 şi trimestrial, cu exact aceleaşi
coduri la ambele frecvenţe. Soldul contului curent în mai 2026: −2.711,0 milioane euro.
Structura e flux × poziţie. Şase fluxuri — credit, debit, sold, active nete, pasive nete, net —
peste un arbore de până la cinci niveluri: „CONTUL CURENT; Bunuri; Merchanting - export net;
Merchanting - bunuri...". 94 de poziţii stau la nivelul patru şi 57 la nivelul cinci, deci
* nivel_max există ca să poţi cere doar structura de sus.
*
* Identitatea sold = credit − debit se închide pe toate perechile, dar numai cu toleranţă de
* ±1 milion — şi toleranţa nu e aleasă din prudenţă, ci măsurată. Pe contul curent abaterea e
* exact 0 sau exact 1, niciodată altceva (numărătoarea pe toată seria e în meta.nota_identitate):
* rotunjirea independentă a trei cifre
* exprimate în milioane. Cu o toleranţă de 0,51 identitatea ar fi părut că pică într-un sfert din luni.
* identitati.toleranta o declară, ca „toate perechile se închid" să nu sune mai tare decât e.
Verificarea identităţii se face pe toate poziţiile, nu pe cele întoarse: un filtru pe
flux=sold n-are voie să facă garanţia să dispară.
Ierarhia vine din denumire, care poartă calea completă. Prefixul codului dă azi acelaşi părinte în
toate cele 192 de cazuri, dar e o coincidenţă de construcţie; parinte se află din cale, fără
presupuneri.
Poziţiile fără nicio valoare pe toată seria stau la adâncimi diferite — până la nivelul patru —
deci se recunosc după lipsa valorilor pe TOATĂ seria, nu pe fereastra cerută şi nu după lungimea
codului. este_antet le marchează.
Merchanting-ul şi-a schimbat convenţia de semn: până în 2012 1BM = 1BMV − 1BMA, cu achiziţiile
pozitive; din 2013 1BM = 1BMA + 1BMV, cu achiziţiile negative. 1Z („Bunuri şi servicii") e frate
cu 1B şi 1S, nu părintele lor: suma copiilor contului curent le numără de două ori.
Perioadele se scriu YYYY-MM la ambele frecvenţe; la trimestrial, luna de început a trimestrului.
Parametri de interogare
lunar. Sau trimestrial — aceleaşi 208 poziţii.
lunartrimestrial
YYYY-MM. Fără el, ultima perioadă publicată.
ex. 2024-06-15
YYYY-MM. Maximum 120 de perioade.
ex. 2024-06-15
credit, debit, sold, active_nete, pasive_nete, net.
creditdebitsoldactive_netepasive_netenet
Cum se comportă
- Balanţa de plăţi în metodologia BPM6 — 208 poziţii, lunar din ianuarie 2005 şi trimestrial. Soldul contului curent în mai 2026: −2.711,0 milioane euro (credit 13.161, debit 15.872).
- Cele două frecvenţe au EXACT aceleaşi coduri — verificat, zero diferenţe în ambele sensuri. E aceeaşi structură la altă granularitate, deci o rută cu un parametru, nu două care ar diverge la prima corectură.
- Structura e flux × poziţie. Şase fluxuri — credit, debit, sold, active nete, pasive nete, net — peste un arbore de până la cinci niveluri: „CONTUL CURENT; Bunuri; Merchanting - export net; Merchanting - bunuri...". 94 de poziţii stau la nivelul patru şi 57 la nivelul cinci, de aceea există
nivel_max. - Identitatea
sold = credit − debitse închide pe toate perechile, dar numai cu toleranţă de ±1 milion — şi toleranţa e MĂSURATĂ, nu aleasă din prudenţă. Pe contul curent, abaterea e exact 0 sau exact 1, niciodată altceva —meta.nota_identitatedă numărătoarea pe toată seria: rotunjirea independentă a trei cifre exprimate în milioane. Cu o toleranţă de 0,51 identitatea ar fi părut că pică într-un sfert din luni.identitati.tolerantao declară, ca „toate perechile se închid" să nu sune mai tare decât e. - Verificarea identităţii se face pe TOATE poziţiile, nu pe cele întoarse. Un filtru pe
flux=soldîntoarce două poziţii, dar identitatea raportează în continuare cele 32 de perechi verificate: e garanţia că cifrele se leagă, şi n-are voie să dispară cu un filtru. - Ierarhia vine din denumire, care poartă calea completă. Prefixul codului dă azi acelaşi părinte în toate cele 192 de cazuri, dar e o coincidenţă de construcţie, nu o regulă declarată — aşa că
parintese află dincale, fără presupuneri. Verificat: zero părinţi nerezolvaţi. - Şase poziţii n-au nicio valoare pe toată seria şi stau la adâncimi diferite — până la nivelul patru: merchanting şi veniturile din active de rezervă la debit, activele de rezervă la pasive ş.a., unde BPM6 nu înregistrează nimic. Nu se recunosc după lungimea codului, ci după lipsa valorilor pe TOATĂ seria — nu pe fereastra cerută, unde o serie începută mai târziu ar părea goală.
este_antetle marchează. - Merchanting-ul şi-a schimbat convenţia de semn. Până în 2012
1BM = 1BMV − 1BMA, cu achiziţiile (1BMA) pozitive; din 20131BM = 1BMA + 1BMV, cu achiziţiile negative. O singură formulă nu închide ambele perioade. 1Z(„Bunuri şi servicii") e frate cu1Bşi1S, nu părintele lor:1Z = 1B + 1S, în toate lunile. Nu aduna toţi copiii contului curent — bunurile şi serviciile s-ar număra de două ori.- Perioadele se scriu
YYYY-MMla ambele frecvenţe; la trimestrial, luna de început a trimestrului. Maximum 120 de perioade.
La ce folosește
- Deficitul de cont curent, lună de lună, cu componentele lui.
- Exportul şi importul de servicii pe categorii — transport, turism, IT.
- Contul financiar: investiţii directe, de portofoliu, active de rezervă.
Structura răspunsului
milioane EUR.
null la rădăcini.
true la poziţiile fără nicio valoare pe toată seria (nu doar pe fereastră).
data e null, iar aici stă motivul. Nu există valori pentru frecvenţa cerută. Intervalul e în întregime în afara acoperirii. Se suprapune peste ea, dar n-are nicio valoare în el.
fara_date e proză şi se poate reformula, ăsta nu.
Exemple de răspuns
{
"data": {
"frecventa": "lunar",
"de_la": "2026-07",
"pana_la": "2026-07",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
"2026-07"
],
"pozitii": [
{
"cod": "BOP6L_N_4",
"flux": "net",
"eticheta": "ERORI ȘI OMISIUNI",
"cale": [
"ERORI ȘI OMISIUNI"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"este_antet": false,
"luni_publicate": 1,
"valori": {
"2026-07": "1375.00"
}
}
],
"identitati": {
"identitate": "sold = credit − debit",
"perechi_verificate": 32,
"perechi_inchise": 32,
"abatere_maxima": "1.00",
"toleranta": "1"
}
},
"meta": {
"sursa": "BNR — balanţa de plăţi, metodologia BPM6.",
"acoperire": {
"de_la": "2005-01",
"pana_la": "2026-07"
},
"luni": 1,
"pozitii_totale": 202,
"pozitii_returnate": 202,
"nota_frecvente": "Lunar şi trimestrial au exact aceleaşi 208 coduri — verificat, zero diferenţe. E aceeaşi structură la altă granularitate.",
"nota_identitate": "Toleranţa de ±1 milion nu e aleasă din prudenţă, ci măsurată: pe contul curent, pe toată seria, abaterea e exact 0 în 192 perioade şi exact 1 în 67 — rotunjirea a trei cifre exprimate în milioane. Verificarea se face pe toate poziţiile, nu pe cele întoarse de filtre.",
"nota_ierarhie": "`cale` şi `parinte` vin din denumire, care poartă calea completă. Prefixul codului dă azi acelaşi părinte, dar e o coincidenţă de construcţie, nu o regulă declarată de sursă.",
"nota_antete": "6 poziţii n-au nicio valoare pe toată seria — BPM6 nu înregistrează nimic acolo (merchanting şi venituri din active de rezervă la debit, active de rezervă la pasive ş.a.) — şi stau la adâncimi diferite. `este_antet` le marchează, socotit pe toată seria, nu pe fereastra cerută.",
"nota_merchanting": "Merchanting-ul şi-a schimbat convenţia de semn: până în 2012 `1BM = 1BMV − 1BMA`, cu achiziţiile (`1BMA`) pozitive; din 2013 `1BM = 1BMA + 1BMV`, cu achiziţiile negative. Aceeaşi formulă nu închide ambele perioade.",
"nota_1z": "`1Z` („Bunuri şi servicii\") e frate cu `1B` şi `1S` sub contul curent, nu părintele lor: `1Z = 1B + 1S`. Nu aduna toţi copiii contului curent — bunurile şi serviciile s-ar număra de două ori.",
"nota_null": "`null` într-o perioadă înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": {
"frecventa": "lunar",
"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": "BOP6L_N_4",
"flux": "net",
"eticheta": "ERORI ȘI OMISIUNI",
"cale": [
"ERORI ȘI OMISIUNI"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"este_antet": false,
"luni_publicate": 26,
"valori": {
"2024-06": "1043.00",
"2024-07": "-868.00",
"2024-08": "1363.00",
"2024-09": "446.00",
"2024-10": "370.00",
"2024-11": "964.00",
"2024-12": "574.00",
"2025-01": "559.00",
"2025-02": "-1260.00",
"2025-03": "-888.00",
"2025-04": "714.00",
"2025-05": "-502.00",
"2025-06": "-535.00",
"2025-07": "-32.00",
"2025-08": "760.00",
"2025-09": "-922.00",
"2025-10": "1561.00",
"2025-11": "492.00",
"2025-12": "255.00",
"2026-01": "399.00",
"2026-02": "-575.00",
"2026-03": "603.00",
"2026-04": "1637.00",
"2026-05": "426.00",
"2026-06": "-301.00",
"2026-07": "1375.00"
}
}
],
"identitati": {
"identitate": "sold = credit − debit",
"perechi_verificate": 828,
"perechi_inchise": 828,
"abatere_maxima": "1.00",
"toleranta": "1"
}
},
"meta": {
"sursa": "BNR — balanţa de plăţi, metodologia BPM6.",
"acoperire": {
"de_la": "2005-01",
"pana_la": "2026-07"
},
"luni": 26,
"pozitii_totale": 202,
"pozitii_returnate": 202,
"nota_frecvente": "Lunar şi trimestrial au exact aceleaşi 208 coduri — verificat, zero diferenţe. E aceeaşi structură la altă granularitate.",
"nota_identitate": "Toleranţa de ±1 milion nu e aleasă din prudenţă, ci măsurată: pe contul curent, pe toată seria, abaterea e exact 0 în 192 perioade şi exact 1 în 67 — rotunjirea a trei cifre exprimate în milioane. Verificarea se face pe toate poziţiile, nu pe cele întoarse de filtre.",
"nota_ierarhie": "`cale` şi `parinte` vin din denumire, care poartă calea completă. Prefixul codului dă azi acelaşi părinte, dar e o coincidenţă de construcţie, nu o regulă declarată de sursă.",
"nota_antete": "6 poziţii n-au nicio valoare pe toată seria — BPM6 nu înregistrează nimic acolo (merchanting şi venituri din active de rezervă la debit, active de rezervă la pasive ş.a.) — şi stau la adâncimi diferite. `este_antet` le marchează, socotit pe toată seria, nu pe fereastra cerută.",
"nota_merchanting": "Merchanting-ul şi-a schimbat convenţia de semn: până în 2012 `1BM = 1BMV − 1BMA`, cu achiziţiile (`1BMA`) pozitive; din 2013 `1BM = 1BMA + 1BMV`, cu achiziţiile negative. Aceeaşi formulă nu închide ambele perioade.",
"nota_1z": "`1Z` („Bunuri şi servicii\") e frate cu `1B` şi `1S` sub contul curent, nu părintele lor: `1Z = 1B + 1S`. Nu aduna toţi copiii contului curent — bunurile şi serviciile s-ar număra de două ori.",
"nota_null": "`null` într-o perioadă înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": {
"frecventa": "lunar",
"de_la": "2024-06",
"pana_la": "2024-06",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
"2024-06"
],
"pozitii": [
{
"cod": "BOP6L_N_4",
"flux": "net",
"eticheta": "ERORI ȘI OMISIUNI",
"cale": [
"ERORI ȘI OMISIUNI"
],
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"este_antet": false,
"luni_publicate": 1,
"valori": {
"2024-06": "1043.00"
}
}
],
"identitati": {
"identitate": "sold = credit − debit",
"perechi_verificate": 32,
"perechi_inchise": 32,
"abatere_maxima": "1.00",
"toleranta": "1"
}
},
"meta": {
"sursa": "BNR — balanţa de plăţi, metodologia BPM6.",
"acoperire": {
"de_la": "2005-01",
"pana_la": "2026-07"
},
"luni": 1,
"pozitii_totale": 202,
"pozitii_returnate": 202,
"nota_frecvente": "Lunar şi trimestrial au exact aceleaşi 208 coduri — verificat, zero diferenţe. E aceeaşi structură la altă granularitate.",
"nota_identitate": "Toleranţa de ±1 milion nu e aleasă din prudenţă, ci măsurată: pe contul curent, pe toată seria, abaterea e exact 0 în 192 perioade şi exact 1 în 67 — rotunjirea a trei cifre exprimate în milioane. Verificarea se face pe toate poziţiile, nu pe cele întoarse de filtre.",
"nota_ierarhie": "`cale` şi `parinte` vin din denumire, care poartă calea completă. Prefixul codului dă azi acelaşi părinte, dar e o coincidenţă de construcţie, nu o regulă declarată de sursă.",
"nota_antete": "6 poziţii n-au nicio valoare pe toată seria — BPM6 nu înregistrează nimic acolo (merchanting şi venituri din active de rezervă la debit, active de rezervă la pasive ş.a.) — şi stau la adâncimi diferite. `este_antet` le marchează, socotit pe toată seria, nu pe fereastra cerută.",
"nota_merchanting": "Merchanting-ul şi-a schimbat convenţia de semn: până în 2012 `1BM = 1BMV − 1BMA`, cu achiziţiile (`1BMA`) pozitive; din 2013 `1BM = 1BMA + 1BMV`, cu achiziţiile negative. Aceeaşi formulă nu închide ambele perioade.",
"nota_1z": "`1Z` („Bunuri şi servicii\") e frate cu `1B` şi `1S` sub contul curent, nu părintele lor: `1Z = 1B + 1S`. Nu aduna toţi copiii contului curent — bunurile şi serviciile s-ar număra de două ori.",
"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."
]
}
}
}