oneapi
Autentificare
Financiar v1 / CursIstoricPerioada

Curs mediu în lei vechi

Media oficială BNR în ROL a unei luni (?luna=AAAA-LL, 1991–2005) ori a unui an (?an=AAAA, 1985–2005).
Perioada e obligatorie: seria s-a încheiat la denominare, deci nu există o perioadă curentă.

Lunar: 1991-01 → 2005-06 la dolar, 1999-01 încolo la euro. Optzeci şi cinci dintre aceste luni sunt
dinaintea seriei zilnice
, care începe în 1998-01-05: pentru ele valoarea publicată e singura sursă, iar
verificare.disponibila e false, cu motivul scris. Din 1998 încolo răspunsul arată alături media
recalculată din cotaţiile zilnice şi diferenţa. Fiecare cifră vine şi în lei noi, împărţită la 10.000.

GET
https://oneapi.ro/api/financiar/v1/curs-istoric/mediu

Parametri de interogare

NumeTipDescriereValori acceptate
lunaopțional string | null O lună, AAAA-LL, între 1991-01 şi 2005-06. Nu se trimite împreună cu an. ex. 2000-06
anopțional integer | null Un an, AAAA, între 1985 şi 2005. 1985 – 2005
valutalistăopțional text Opţional, USD sau EUR, separate prin virgulă. Fără el, ambele. ex. USD

Cum se comportă

  • Media oficială BNR în lei vechi a unei luni (?luna=AAAA-LL, 1991-01 → 2005-06) ori a unui an (?an=AAAA, din 1985). Una dintre ele e obligatorie: seria s-a încheiat la denominare, deci nu există o perioadă curentă de pus implicit.
  • Media lunară a cursului în lei vechi, aşa cum o publică BNR. Dolarul din 1991-01, euro din 1999-01, amândoi până în 2005-06 — ultima lună dinaintea denominării.
  • Optzeci şi cinci dintre aceste luni sunt dinaintea seriei zilnice, care începe în 1998-01-05. Pentru ele valoarea publicată e singura sursă care există, nu doar în acest API: nu se poate recalcula din nimic. verificare.disponibila e false, cu motivul scris, în loc să lipsească fără explicaţie.
  • Din 1998 încolo răspunsul arată alături media recalculată din cotaţiile zilnice în ROL, numărul de zile bancare care au intrat în ea şi diferenţa — verificat, se închide.
  • Fiecare cifră vine şi ca echivalent_ron, împărţită la 10.000: rata denominării de la 1 iulie 2005. Aşa se pot pune pe acelaşi grafic cele două epoci, între care sunt patru ordine de mărime.
  • Rută separată de /curs-mediu, aşa cum /curs-istoric e separată de /curs: altă unitate, altă epocă monetară, alt set de valute. Pe perioadă, în lei vechi, sursa publică doar dolarul şi euro — cotaţiile zilnice acoperă treizeci de valute, la /curs-istoric/interval.
  • Media anuală a cursului în lei vechi. Dolarul din 1985 — cea mai adâncă dată din tot modulul — euro din 1999, amândoi până în 2005.
  • E media celor douăsprezece medii lunare publicate, nu a cotaţiilor zilnice: aceeaşi convenţie ca în epoca leului nou. Verificat pe anii cu toate componentele — 14 din 14 la dolar, 6 din 6 la euro. Componentele se întorc în construita_din, cu media lor recalculată şi diferenţa.
  • Pentru anii de dinainte de 1991 componentele lunare nu există, iar construita_din.disponibila e false cu motivul scris. Paisprezece ani — 1985–1998 la dolar — n-au nici măcar seria lunară sub ei.
  • Anul 2005 e un caz aparte, şi ruta îl marchează în loc să-l compună. Leul s-a denominat la 1 iulie, deci în lei vechi există numai şase luni; dar cifra anuală publicată în ROL acoperă tot anul — e media în lei noi, exprimată în lei vechi. Măsurat: 29.136,55 faţă de 2,9137 × 10.000, diferenţa fiind rotunjirea celei de-a patra zecimale. Media celor şase luni în ROL ar da 28.522,38, cu 614 lei mai puţin. Cine ar compune anul din componentele lui ar obţine altă cifră decât cea oficială.
  • Cifrele spun singure ce s-a întâmplat: 17,14 lei/dolar în 1985, 76,47 în 1991, 1.655 în 1994, peste 32.000 în 2004.

La ce folosește

  • Deflatarea unei sume din anii ’90 la cursul lunii ei.
  • Reconstituirea unui contract vechi exprimat în dolari.
  • Seria lungă a deprecierii leului, dinaintea oricărei serii zilnice.
  • Serii lungi de depreciere a leului, din 1985 încoace.
  • Conversia unui bilanţ anual vechi la cursul mediu oficial al anului.
  • Punctul de plecare al oricărei analize de inflaţie pe termen lung.

Structura răspunsului

CâmpTipDescriere
data.perioada string Perioada la care se referă valoarea.
data.de_la string Începutul intervalului acoperit de răspuns.
data.pana_la string Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.epoca string
data.fel string
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.valute[].valuta string Codul ISO 4217 al valutei.
data.valute[].eticheta string Eticheta afişabilă a valorii — versiunea citibilă a codului de alături.
data.valute[].valoare string Cifra publicată, în lei vechi pentru o unitate de valută.
data.valute[].echivalent_ron string Aceeaşi cifră în lei noi, împărţită la 10.000.
data.valute[].verificare object Media recalculată din cotaţiile zilnice, cu numărul de zile şi diferenţa — sau motivul pentru care martorul nu există.
data.valute[].verificare.disponibila boolean
data.valute[].verificare.metoda string
data.valute[].verificare.zile_cotate integer
data.valute[].verificare.calculat string
data.valute[].verificare.diferenta string
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.nota_martor string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_denominare string Denominarea din 2005 (1 leu nou = 10.000 lei vechi) şi ce înseamnă pentru comparaţii.
meta.zilnic string
meta.epoca_urmatoare string
meta.fara_date data e null, iar aici stă motivul. Cotaţia există la sursă, dar importul nostru e în urmă; răspunsul spune până când avem date.
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/curs-istoric/mediu?luna=2000-06&valuta=USD
{
    "data": {
        "perioada": "2000-06",
        "de_la": "2000-06-01",
        "pana_la": "2000-06-30",
        "epoca": "ROL",
        "fel": "mediu",
        "unitate": "ROL pentru o unitate de valută",
        "valute": [
            {
                "valuta": "USD",
                "eticheta": "dolarul SUA",
                "valoare": "21030.640000",
                "echivalent_ron": "2.103064",
                "verificare": {
                    "disponibila": true,
                    "metoda": "media aritmetică a cotaţiilor zilnice",
                    "zile_cotate": 22,
                    "calculat": "21030.63",
                    "diferenta": "0.01"
                }
            }
        ]
    },
    "meta": {
        "sursa": "BNR — cursul de schimb, serii lunare în lei vechi (clasa 703).",
        "acoperire": {
            "de_la": "1991-01",
            "pana_la": "2005-06"
        },
        "nota_martor": "Media oficială e media aritmetică a cotaţiilor zilnice. Cotaţiile în lei vechi încep în 1998-01-05; pentru lunile de dinainte valoarea publicată e singura sursă, iar `verificare` o spune.",
        "nota_denominare": "`echivalent_ron` e cifra împărţită la 10.000, rata denominării din 2005-07-01.",
        "zilnic": "Cotaţiile zi cu zi ale aceleiaşi luni: /financiar/v1/curs-istoric/interval?de_la=2000-06-01&pana_la=2000-06-30",
        "epoca_urmatoare": "Din iulie 2005, în lei noi: /financiar/v1/curs-mediu?luna=AAAA-LL."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404dupa_denominareLuna e de după 2005-06; răspunsul trimite la /curs-mediu. negasit — valuta cerută n-are valoare în luna aceea (euro nu există înainte de 1999).
422validarePerioadă lipsă, luna şi an trimise împreună, lună în afara 1991–2005 ori an în afara 1985–2005; pentru perioadele de după denominare, /curs-mediu. valuta_necunoscuta — pe perioadă se publică doar USD şi EUR.
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": "Perioadă lipsă, luna şi an trimise împreună, lună în afara 1991–2005 ori an în afara 1985–2005; pentru perioadele de după denominare, /curs-mediu. valuta_necunoscuta — pe perioadă se publică doar USD şi EUR.",
        "detalii": {
            "luna": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}