oneapi
Autentificare
Financiar v1 / Spread

Prima de risc suveran

Cu cât se împrumută România mai scump decât zona euro, la aceeaşi maturitate: randamentul din
fixing-ul BNR minus punctul corespunzător de pe curba BCE, în puncte de bază.

Ruta există fiindcă alinierea e partea unde se greşeşte, nu scăderea. Calendarele nu coincid:
38 de zile româneşti n-au zi BCE (Paştele ortodox, 31 decembrie), 103 zile BCE n-au zi românească
(2, 6 şi 7 ianuarie), iar BCE publică cu o zi întârziere — azi BNR are 26 august, BCE are 25.
Cine ia „ultima valoare" de fiecare parte compară zile diferite fără să ştie. Aici ziua e una
* singură
, iar când cea cerută n-are pereche pe ambele surse, valoare e gol şi ultima zi în care
* au publicat AMÂNDOI vine în ultima — nu ultima zi a BNR.
*
* Emitentul nu se alege în locul clientului. BCE publică două curbe, ambele „zona euro": doar
emitenţii AAA (aaa, implicit) şi toate guvernele (toti_emitentii). La 10 ani, medianele
istorice sunt 407 şi 334 de puncte de bază — 73 de puncte diferenţă, adică o alegere tăcută ar
schimba răspunsul cu un sfert.

Toate cele cinci maturităţi ale fixing-ului au corespondent exact pe curba BCE — 6M↔6M, 12M↔1Y,
3Y↔3Y, 5Y↔5Y, 10Y↔10Y — deci nu se interpolează nimic pentru ca scăderea să fie posibilă.

În cele 3.891 de zile comune (din 10 ianuarie 2011), spread-ul n-a fost niciodată negativ, la
nicio maturitate şi niciun emitent.

GET
https://oneapi.ro/api/financiar/v1/spread/suveran

Parametri de interogare

NumeTipDescriereValori acceptate
maturitateopțional string | null Opţional: 6M, 12M, 3Y, 5Y, 10Y. Implicit 10Y — maturitatea în care se citează prima de risc. Doar data e obligatorie. 6M12M3Y5Y10Y
emitentopțional string | null Opţional: aaa (implicit) sau toti_emitentii. Care dintre cele două curbe ale BCE e reperul. aaatoti_emitentii
dataobligatoriu string Obligatoriu, YYYY-MM-DD. Nu poate fi în viitor. ex. 2024-06-15

Cum se comportă

  • ?data= e obligatorie, iar răspunsul are mereu aceeaşi formă: data (ziua cerută), valoare (completată numai dacă avem exact ziua aia) şi ultima (ultima zi publicată la sau înainte de ea, cu valoarea ei). valoare rămâne gol DELIBERAT când ziua cerută n-are publicare — cifra de altă zi stă separat, sub ultima, ca să nu poată fi folosită din greşeală într-un calcul. Lipsa datelor nu mai e o eroare: răspunsul e 200, iar comparaţia data vs ultima.data spune tot.
  • Cu cât se împrumută România mai scump decât zona euro, la aceeaşi maturitate: randamentul din fixing-ul BNR minus punctul corespunzător de pe curba BCE, în puncte de bază.
  • Ruta există fiindcă alinierea e partea unde se greşeşte, nu scăderea. Calendarele nu coincid: 38 de zile româneşti n-au zi BCE (Paştele ortodox, 31 decembrie) şi 103 zile BCE n-au zi românească (2, 6 şi 7 ianuarie). În plus, BCE publică cu o zi întârziere. Cine ia „ultima valoare" de fiecare parte compară zile diferite fără să ştie — aici ziua e una singură, cerută ca atare de la bază.
  • De aceea, când ziua cerută n-are pereche pe ambele surse, valoare e gol, iar ultima zi în care au publicat AMÂNDOI vine în ultima — nu ultima zi a BNR. Fără plafon de vechime.
  • Emitentul nu se alege în locul clientului. BCE publică două curbe, ambele „zona euro": doar emitenţii AAA (aaa, implicit) şi toate guvernele (toti_emitentii). La 10 ani, medianele istorice sunt 407 şi 334 de puncte de bază — 73 de puncte diferenţă, adică o alegere tăcută ar schimba răspunsul cu un sfert.
  • Toate cele cinci maturităţi ale fixing-ului au corespondent exact pe curba BCE: 6M↔6M, 12M↔1Y, 3Y↔3Y, 5Y↔5Y, 10Y↔10Y. Nu se interpolează nimic pentru ca scăderea să fie posibilă; singura diferenţă e de scriere, iar zona_euro.punct_curba spune cum îl numeşte BCE.
  • În cele 3.891 de zile comune (10 ianuarie 2011 → azi), spread-ul n-a fost niciodată negativ, la nicio maturitate şi niciun emitent. Medianele faţă de AAA: 343 pb la 6M, 359 la 12M, 404 la 3Y, 423 la 5Y, 407 la 10Y.
  • Randamentul românesc e mid-ul zilei, dar bid şi ask vin alături: cine vrea spread-ul faţă de o latură anume îl are fără o a doua cerere.

La ce folosește

  • Prima de risc pe care o cere piaţa pentru datoria suverană românească.
  • Reperul pentru preţul unei emisiuni româneşti în euro sau al unei obligaţiuni corporative.
  • Urmărirea în timp a apropierii sau depărtării de costul de finanţare al zonei euro.

Structura răspunsului

CâmpTipDescriere
data.data string Ziua cerută, exact cum ai trimis-o.
data.valoare null Spread-ul zilei cerute. null dacă în ziua aia n-au publicat amândouă sursele.
data.ultima object Ultima zi în care au publicat AMÂNDOI, la sau înainte de data: {data, valoare}. Nu e ultima zi a BNR — calendarele nu coincid.
data.ultima.data string
data.ultima.valoare.maturitate string Maturitatea, aşa cum o numeşte BNR.
data.ultima.valoare.luni integer Numărul de luni acoperite.
data.ultima.valoare.romania.randament string Mid-ul fixing-ului BNR, procente pe an.
data.ultima.valoare.romania.bid string Latura bid. Mai MARE decât ask: sunt randamente, nu preţuri.
data.ultima.valoare.romania.ask string Latura ask.
data.ultima.valoare.romania.sursa string
data.ultima.valoare.zona_euro.randament string Punctul de pe curba BCE, procente pe an. Poate fi negativ — în martie 2020 era.
data.ultima.valoare.zona_euro.emitent string Care curbă s-a folosit.
data.ultima.valoare.zona_euro.punct_curba string Cum se numeşte punctul la BCE: 1Y acolo unde BNR scrie 12M.
data.ultima.valoare.zona_euro.sursa string
data.ultima.valoare.spread.puncte_de_baza integer Diferenţa, întreagă, în puncte de bază — cum se citează prima de risc.
data.ultima.valoare.spread.puncte_procentuale string Aceeaşi diferenţă în puncte procentuale, ca să se lege de randamentele de deasupra.
meta.surse.romania string
meta.surse.zona_euro string
meta.acoperire.de_la string Prima perioadă pentru care avem date.
meta.acoperire.pana_la string Ultima perioadă pentru care avem date.
meta.acoperire.zile integer Numărul de zile acoperite.
meta.nota_zi string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_zi_comuna string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_emitent string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_maturitati string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_istoric string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.curba_romaneasca string
meta.curba_zonei_euro string

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/spread/suveran?data=2024-06-15
{
    "data": {
        "data": "2024-06-15",
        "valoare": null,
        "ultima": {
            "data": "2024-06-14",
            "valoare": {
                "maturitate": "10Y",
                "luni": 120,
                "romania": {
                    "randament": "6.78",
                    "bid": "6.89",
                    "ask": "6.66",
                    "sursa": "BNR — fixing titluri de stat"
                },
                "zona_euro": {
                    "randament": "2.41",
                    "emitent": "aaa",
                    "punct_curba": "10Y",
                    "sursa": "BCE — curba randamentelor zonei euro"
                },
                "spread": {
                    "puncte_de_baza": 437,
                    "puncte_procentuale": "4.37"
                }
            }
        }
    },
    "meta": {
        "surse": {
            "romania": "BNR — fixing titluri de stat (baza de date interactivă).",
            "zona_euro": "BCE — curba randamentelor titlurilor guvernamentale din zona euro."
        },
        "acoperire": {
            "de_la": "2011-01-10",
            "pana_la": "2026-09-18",
            "zile": 3909
        },
        "nota_zi": "Ziua cerută nu are publicare. `valoare` e gol DELIBERAT, ca să nu fie folosită o cifră care nu e a zilei cerute; ultima publicată înainte de ea e în `ultima`.",
        "nota_zi_comuna": "Ambele randamente vin din ACEEAŞI zi. Calendarele nu coincid — 38 de zile româneşti n-au zi BCE, 103 zile BCE n-au zi românească — iar BCE publică cu o zi întârziere, deci ziua implicită e ultima în care au publicat amândoi, nu azi.",
        "nota_emitent": "BCE publică două curbe, ambele „zona euro\": `aaa` (doar emitenţii AAA) şi `toti_emitentii`. La 10 ani medianele istorice sunt 407 şi 334 de puncte de bază — alegerea schimbă răspunsul, deci e a clientului.",
        "nota_maturitati": "Cele cinci maturităţi ale fixing-ului au corespondent exact pe curba BCE (12M la BNR e 1Y la BCE). Nu se interpolează nimic pentru comparaţie.",
        "nota_istoric": "În cele 3.891 de zile comune din 2011 încoace, spread-ul n-a fost niciodată negativ. Medianele pe maturitate, faţă de AAA: 343 pb la 6M, 359 la 12M, 404 la 3Y, 423 la 5Y, 407 la 10Y.",
        "curba_romaneasca": "/financiar/v1/titluri-stat/fixing",
        "curba_zonei_euro": "/financiar/v1/bce/curba"
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareMaturitate sau emitent în afara listei, ori dată malformată sau în viitor.
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": "Maturitate sau emitent în afara listei, ori dată malformată sau în viitor.",
        "detalii": {
            "maturitate": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}