Investment position, the BPM5 archive
The methodology the NBR abandoned in 2014 — 37 series, 47 observations, 1999-Q4 → 2014-Q2. It takes the history seven years further back than the BPM6 series.
It cannot be chained with /pozitie-investitionala, and that is not a warning but a figure. Across the 30 common quarters, the BPM5/BPM6 ratio runs between 0.908 and 0.996 on assets and between 0.936 and 0.995 on liabilities; in 2014-Q2 the net position is −85,858 under BPM5 and −89,960 under BPM6. The comparison is computed on every request, in identitati.comparatie_bpm6.
The rhythm is not uniform: between 1999 and 2003 the source publishes a single observation per year, at its end, and only from 2004-Q1 does it become quarterly. Every period carries its own ritm.
The name does not distinguish the side, the code does. Nine names are used by two series each — „Financial derivatives" is both an asset and a liability — so a path built from the name would place assets under liabilities. The hierarchy is taken from the code.
The identity adapts to what the source publishes: financial derivatives enter only from 2005-Q1, so in older observations the asset total has four components, not five. Their number is reported in componente_in_timp, so that the arrival of derivatives is visible rather than smoothed over.
The net position does not exist as a series in the class — the net block gives it computed, assets minus liabilities.
Query parameters
active or pasive. The net position is returned regardless, in the net block.
activepasive
YYYY-Tn or YYYY-MM. A month is rounded to the quarter containing it.
e.g. 2024-06-15
YYYY-Tn or YYYY-MM.
e.g. 2014-T2
nivel_max=1 leaves only the two totals.
1 – 3
How it behaves
- The international investment position under the BPM5 methodology, which the NBR retired in 2014 — 37 series, 47 observations, 1999-Q4 → 2014-Q2. It carries the history seven years further back than the BPM6 series at
/pozitie-investitionala. - It does not splice onto the BPM6 series, and that is a figure, not a warning. Across the 30 quarters where both publish, the BPM5/BPM6 ratio runs between 0.909 and 0.996 on assets and between 0.937 and 0.995 on liabilities. In 2014-Q2 the net position is −85,858 under BPM5 and −89,960 under BPM6 — 4.1 billion euro for the same quarter.
identitati.comparatie_bpm6gives the comparison pair by pair, computed on every request. - The rhythm is not uniform. Between 1999 and 2003 the source publishes a single observation per year, at its end; only from 2004-Q1 does it become quarterly. Anyone asking for "the quarterly history since 1999" gets five annual points followed by 42 quarterly ones, and
perioade[].ritmsays which is which. - The name does not distinguish the side; the code does. Nine names are used by two series each — "Derivate financiare" is both
PIIT_AEDF(asset) andPIIT_PEDF(liability) — so the path in the name would silently file assets under liabilities. The hierarchy comes from the code:AE…assets,PE…liabilities. - This is the module's third form of hierarchy ambiguity, which is why the path-versus-code check runs on every class: for the reserves the name was right and the code incomplete, for trade in services the name was flat and only the code carried the structure, here the name is ambiguous.
- The identity adapts to what the source publishes. Financial derivatives only enter from 2005-Q1 and money market instruments from 2004-Q4, so in older observations the sum has fewer components. Their count is reported in
componente_in_timp, so each one's entry is visible rather than smoothed over. - Exactly one quarter of 47 fails to close: 2004-Q3. Direct investment by non-residents is published as 10,810.8, while its components sum to 12,078.6. The total falls against the previous quarter although both components rise — 9,887 → 10,184 and 1,747 → 1,895 — so the wrong figure is the total, not the components. The neighbouring quarters close exactly. The deviation is reported in
identitati.descompunere.abateri, not buried by widening the tolerance. - The net position does not exist as a series in this class:
PIIT_NAis total assets,PIIT_NPtotal liabilities. Thenetblock gives it computed, so nobody has to subtract it themselves. - Periods carry
data_referintaat quarter end, as in the BPM6 series — it is a stock too. The tolerance is derived: all 1,713 values fit in two decimals, so a sum ofkcomponents is bounded by(k+1) × 0.005.
What it is for
- Romania's external position before EU accession, which the current series does not cover.
- How foreign direct investment grew between 1999 and 2007.
- The NBR's reserves in the 2000s, as part of external assets.
Response structure
BPM5. It is why these figures cannot be chained to /pozitie-investitionala.
anual up to 2003, trimestrial from 2004.
null at the two totals.
data is null and this says why. No BPM5 values in the database. The interval falls outside the coverage (1999-Q4 → 2014-Q2).
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"metodologie": "BPM5",
"de_la": "1999-T4",
"pana_la": "2014-T2",
"unitate": "milioane EUR",
"filtre": [],
"perioade": [
{
"trimestru": "1999-T4",
"data_referinta": "1999-12-31",
"luna_sursa": "1999-10",
"ritm": "anual"
}
],
"net": {
"1999-T4": "-7093.89",
"2000-T4": "-9166.77",
"2001-T4": "-10725.06",
"2002-T4": "-9250.94",
"2003-T4": "-13013.00",
"2004-T1": "-15251.30",
"2004-T2": "-16243.90",
"2004-T3": "-14892.00",
"2004-T4": "-16454.00",
"2005-T1": "-17246.00",
"2005-T2": "-19116.00",
"2005-T3": "-21583.00",
"2005-T4": "-23146.50",
"2006-T1": "-26002.20",
"2006-T2": "-29041.70",
"2006-T3": "-32564.80",
"2006-T4": "-36891.00",
"2007-T1": "-42193.10",
"2007-T2": "-48984.00",
"2007-T3": "-54886.40",
"2007-T4": "-54222.70",
"2008-T1": "-57559.10",
"2008-T2": "-63993.80",
"2008-T3": "-67250.60",
"2008-T4": "-69006.40",
"2009-T1": "-69274.90",
"2009-T2": "-71715.40",
"2009-T3": "-72803.60",
"2009-T4": "-73741.10",
"2010-T1": "-75902.70",
"2010-T2": "-75187.90",
"2010-T3": "-77277.80",
"2010-T4": "-77846.00",
"2011-T1": "-81956.90",
"2011-T2": "-82226.50",
"2011-T3": "-81450.50",
"2011-T4": "-84394.30",
"2012-T1": "-84448.50",
"2012-T2": "-84826.70",
"2012-T3": "-85115.30",
"2012-T4": "-89481.40",
"2013-T1": "-87176.70",
"2013-T2": "-86903.88",
"2013-T3": "-85619.19",
"2013-T4": "-87225.10",
"2014-T1": "-85344.30",
"2014-T2": "-85857.50"
},
"pozitii": [
{
"cod": "PIIT_NA",
"latura": "active",
"eticheta": "active",
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"perioade_publicate": 47,
"valori": {
"1999-T4": "8182.52",
"2000-T4": "10206.24",
"2001-T4": "12939.72",
"2002-T4": "12900.86",
"2003-T4": "12490.00",
"2004-T1": "13060.20",
"2004-T2": "13985.50",
"2004-T3": "15773.00",
"2004-T4": "17692.00",
"2005-T1": "20041.00",
"2005-T2": "22160.00",
"2005-T3": "24620.00",
"2005-T4": "25741.50",
"2006-T1": "27309.20",
"2006-T2": "27071.20",
"2006-T3": "28426.50",
"2006-T4": "32062.00",
"2007-T1": "32547.70",
"2007-T2": "33761.50",
"2007-T3": "36117.10",
"2007-T4": "36867.30",
"2008-T1": "36929.70",
"2008-T2": "37772.70",
"2008-T3": "39427.30",
"2008-T4": "39039.30",
"2009-T1": "38834.50",
"2009-T2": "40510.40",
"2009-T3": "44261.10",
"2009-T4": "43713.50",
"2010-T1": "48732.90",
"2010-T2": "49123.90",
"2010-T3": "50133.60",
"2010-T4": "50759.50",
"2011-T1": "50881.60",
"2011-T2": "52838.90",
"2011-T3": "52965.90",
"2011-T4": "52480.30",
"2012-T1": "53886.10",
"2012-T2": "52553.00",
"2012-T3": "52381.80",
"2012-T4": "51189.90",
"2013-T1": "53187.90",
"2013-T2": "51684.80",
"2013-T3": "52688.70",
"2013-T4": "51426.20",
"2014-T1": "51394.70",
"2014-T2": "51578.80"
}
}
],
"identitati": {
"descompunere": {
"identitate": "fiecare poziţie = suma copiilor ei direcţi, dintre cei publicaţi în perioada aceea",
"noduri_cu_copii": 13,
"noduri_inchise": 10,
"verificari": 611,
"regula_tolerantei": "(k+1) × 0,005 milioane pentru k componente — valorile clasei încap în două zecimale",
"componente_in_timp": {
"PIIT_NA": {
"4": "1999-T4",
"5": "2005-T1"
},
"PIIT_AEIP": {
"2": "1999-T4",
"3": "2004-T4"
},
"PIIT_NP": {
"3": "1999-T4",
"4": "2005-T1"
}
},
"abateri": [
{
"nod": "PIIT_NA",
"copii": 5,
"verificari_inchise": 46,
"verificari": 47,
"abatere_maxima": "0.30",
"unde": {
"trimestru": "2004-T3",
"componente_incluse": 4,
"total": "15773.00",
"suma_componentelor": "15772.70"
}
}
]
},
"comparatie_bpm6": {
"nota": "Nu e o identitate şi nu trebuie să se închidă: BPM5 şi BPM6 sunt metodologii diferite. Cifrele există ca să se vadă că cele două serii nu se pot înlănţui într-un istoric lung.",
"trimestre_comune": 30,
"raport_bpm5_bpm6": {
"active": {
"min": "0.9089",
"max": "0.9962"
},
"pasive": {
"min": "0.9368",
"max": "0.9951"
}
},
"perechi": [
{
"trimestru": "2007-T1",
"active": {
"bpm5": "32547.70",
"bpm6": "32829.00",
"raport": "0.9914"
},
"pasive": {
"bpm5": "74740.80",
"bpm6": "75110.00",
"raport": "0.9951"
}
}
]
}
}
},
"meta": {
"sursa": "BNR — arhivă poziţia investiţională internaţională, metodologia BPM5 (clasa 577).",
"acoperire": {
"de_la": "1999-T4",
"pana_la": "2014-T2"
},
"perioade": 47,
"pozitii_totale": 37,
"pozitii_returnate": 37,
"ritm": {
"1999": "anual",
"2000": "anual",
"2001": "anual",
"2002": "anual",
"2003": "anual",
"2004": "trimestrial",
"2005": "trimestrial",
"2006": "trimestrial",
"2007": "trimestrial",
"2008": "trimestrial",
"2009": "trimestrial",
"2010": "trimestrial",
"2011": "trimestrial",
"2012": "trimestrial",
"2013": "trimestrial",
"2014": "trimestrial"
},
"nota_bpm6": "Seria asta nu se lipeşte de /pozitie-investitionala: pe cele 30 trimestre comune raportul BPM5/BPM6 e între 0.9089 şi 0.9962 la active. Cifrele sunt în `identitati.comparatie_bpm6`, pereche cu pereche.",
"nota_ritm": "Între 1999 şi 2003 sursa publică o singură observaţie pe an, la sfârşitul lui; din 2004-T1 devine trimestrială. `perioade[].ritm` o spune pentru fiecare punct.",
"nota_ierarhie": "Ierarhia vine din cod, nu din denumire: nouă denumiri sunt comune celor două laturi, deci calea din denumire ar aşeza activele sub pasive.",
"nota_identitate": "10 din 13 noduri se închid, pe 611 verificări. Suma include doar componentele publicate în perioada respectivă, iar `componente_in_timp` arată de când intră fiecare — derivatele financiare abia din 2005-T1.",
"nota_net": "Poziţia netă nu există ca serie în clasă; blocul `net` o dă calculată, totalul activelor minus totalul pasivelor.",
"nota_null": "`null` într-un trimestru înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": {
"metodologie": "BPM5",
"de_la": "1999-T4",
"pana_la": "2014-T2",
"unitate": "milioane EUR",
"filtre": {
"latura": "pasive",
"nivel_max": 2
},
"perioade": [
{
"trimestru": "1999-T4",
"data_referinta": "1999-12-31",
"luna_sursa": "1999-10",
"ritm": "anual"
}
],
"net": {
"1999-T4": "-7093.89",
"2000-T4": "-9166.77",
"2001-T4": "-10725.06",
"2002-T4": "-9250.94",
"2003-T4": "-13013.00",
"2004-T1": "-15251.30",
"2004-T2": "-16243.90",
"2004-T3": "-14892.00",
"2004-T4": "-16454.00",
"2005-T1": "-17246.00",
"2005-T2": "-19116.00",
"2005-T3": "-21583.00",
"2005-T4": "-23146.50",
"2006-T1": "-26002.20",
"2006-T2": "-29041.70",
"2006-T3": "-32564.80",
"2006-T4": "-36891.00",
"2007-T1": "-42193.10",
"2007-T2": "-48984.00",
"2007-T3": "-54886.40",
"2007-T4": "-54222.70",
"2008-T1": "-57559.10",
"2008-T2": "-63993.80",
"2008-T3": "-67250.60",
"2008-T4": "-69006.40",
"2009-T1": "-69274.90",
"2009-T2": "-71715.40",
"2009-T3": "-72803.60",
"2009-T4": "-73741.10",
"2010-T1": "-75902.70",
"2010-T2": "-75187.90",
"2010-T3": "-77277.80",
"2010-T4": "-77846.00",
"2011-T1": "-81956.90",
"2011-T2": "-82226.50",
"2011-T3": "-81450.50",
"2011-T4": "-84394.30",
"2012-T1": "-84448.50",
"2012-T2": "-84826.70",
"2012-T3": "-85115.30",
"2012-T4": "-89481.40",
"2013-T1": "-87176.70",
"2013-T2": "-86903.88",
"2013-T3": "-85619.19",
"2013-T4": "-87225.10",
"2014-T1": "-85344.30",
"2014-T2": "-85857.50"
},
"pozitii": [
{
"cod": "PIIT_NP",
"latura": "pasive",
"eticheta": "pasive",
"nivel": 1,
"parinte": null,
"unitate": "milioane EUR",
"perioade_publicate": 47,
"valori": {
"1999-T4": "15276.41",
"2000-T4": "19373.01",
"2001-T4": "23664.78",
"2002-T4": "22151.80",
"2003-T4": "25503.00",
"2004-T1": "28311.50",
"2004-T2": "30229.40",
"2004-T3": "30665.00",
"2004-T4": "34146.00",
"2005-T1": "37287.00",
"2005-T2": "41276.00",
"2005-T3": "46203.00",
"2005-T4": "48888.00",
"2006-T1": "53311.40",
"2006-T2": "56112.90",
"2006-T3": "60991.30",
"2006-T4": "68953.00",
"2007-T1": "74740.80",
"2007-T2": "82745.50",
"2007-T3": "91003.50",
"2007-T4": "91090.00",
"2008-T1": "94488.80",
"2008-T2": "101766.50",
"2008-T3": "106677.90",
"2008-T4": "108045.70",
"2009-T1": "108109.40",
"2009-T2": "112225.80",
"2009-T3": "117064.70",
"2009-T4": "117454.60",
"2010-T1": "124635.60",
"2010-T2": "124311.80",
"2010-T3": "127411.40",
"2010-T4": "128605.50",
"2011-T1": "132838.50",
"2011-T2": "135065.40",
"2011-T3": "134416.40",
"2011-T4": "136874.60",
"2012-T1": "138334.60",
"2012-T2": "137379.70",
"2012-T3": "137497.10",
"2012-T4": "140671.30",
"2013-T1": "140364.60",
"2013-T2": "138588.68",
"2013-T3": "138307.89",
"2013-T4": "138651.30",
"2014-T1": "136739.00",
"2014-T2": "137436.30"
}
}
],
"identitati": {
"descompunere": {
"identitate": "fiecare poziţie = suma copiilor ei direcţi, dintre cei publicaţi în perioada aceea",
"noduri_cu_copii": 13,
"noduri_inchise": 10,
"verificari": 611,
"regula_tolerantei": "(k+1) × 0,005 milioane pentru k componente — valorile clasei încap în două zecimale",
"componente_in_timp": {
"PIIT_NA": {
"4": "1999-T4",
"5": "2005-T1"
},
"PIIT_AEIP": {
"2": "1999-T4",
"3": "2004-T4"
},
"PIIT_NP": {
"3": "1999-T4",
"4": "2005-T1"
}
},
"abateri": [
{
"nod": "PIIT_NA",
"copii": 5,
"verificari_inchise": 46,
"verificari": 47,
"abatere_maxima": "0.30",
"unde": {
"trimestru": "2004-T3",
"componente_incluse": 4,
"total": "15773.00",
"suma_componentelor": "15772.70"
}
}
]
},
"comparatie_bpm6": {
"nota": "Nu e o identitate şi nu trebuie să se închidă: BPM5 şi BPM6 sunt metodologii diferite. Cifrele există ca să se vadă că cele două serii nu se pot înlănţui într-un istoric lung.",
"trimestre_comune": 30,
"raport_bpm5_bpm6": {
"active": {
"min": "0.9089",
"max": "0.9962"
},
"pasive": {
"min": "0.9368",
"max": "0.9951"
}
},
"perechi": [
{
"trimestru": "2007-T1",
"active": {
"bpm5": "32547.70",
"bpm6": "32829.00",
"raport": "0.9914"
},
"pasive": {
"bpm5": "74740.80",
"bpm6": "75110.00",
"raport": "0.9951"
}
}
]
}
}
},
"meta": {
"sursa": "BNR — arhivă poziţia investiţională internaţională, metodologia BPM5 (clasa 577).",
"acoperire": {
"de_la": "1999-T4",
"pana_la": "2014-T2"
},
"perioade": 47,
"pozitii_totale": 37,
"pozitii_returnate": 5,
"ritm": {
"1999": "anual",
"2000": "anual",
"2001": "anual",
"2002": "anual",
"2003": "anual",
"2004": "trimestrial",
"2005": "trimestrial",
"2006": "trimestrial",
"2007": "trimestrial",
"2008": "trimestrial",
"2009": "trimestrial",
"2010": "trimestrial",
"2011": "trimestrial",
"2012": "trimestrial",
"2013": "trimestrial",
"2014": "trimestrial"
},
"nota_bpm6": "Seria asta nu se lipeşte de /pozitie-investitionala: pe cele 30 trimestre comune raportul BPM5/BPM6 e între 0.9089 şi 0.9962 la active. Cifrele sunt în `identitati.comparatie_bpm6`, pereche cu pereche.",
"nota_ritm": "Între 1999 şi 2003 sursa publică o singură observaţie pe an, la sfârşitul lui; din 2004-T1 devine trimestrială. `perioade[].ritm` o spune pentru fiecare punct.",
"nota_ierarhie": "Ierarhia vine din cod, nu din denumire: nouă denumiri sunt comune celor două laturi, deci calea din denumire ar aşeza activele sub pasive.",
"nota_identitate": "10 din 13 noduri se închid, pe 611 verificări. Suma include doar componentele publicate în perioada respectivă, iar `componente_in_timp` arată de când intră fiecare — derivatele financiare abia din 2005-T1.",
"nota_net": "Poziţia netă nu există ca serie în clasă; blocul `net` o dă calculată, totalul activelor minus totalul pasivelor.",
"nota_null": "`null` într-un trimestru înseamnă că poziţia n-a fost publicată atunci, nu zero."
}
}
{
"data": null,
"meta": {
"de_la": "2024-T2",
"pana_la": "2014-T2",
"acoperire": {
"de_la": "1999-T4",
"pana_la": "2014-T2"
},
"fara_date": "Intervalul cerut e în întregime în afara acoperirii (1999-T4 → 2014-T2).",
"fara_date_cod": "in_afara_acoperirii"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | The series has ended and is no longer updated. |
| 422 | validare | interval_prea_lung beyond 60 periods, a side outside the list, or nivel_max outside 1–3. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "validare",
"mesaj": "interval_prea_lung beyond 60 periods, a side outside the list, or nivel_max outside 1–3.",
"detalii": {
"latura": [
"The value sent does not satisfy the parameter rule."
]
}
}
}