Cotaţia BNR faţă de cea BCE
Aceeaşi zi, aceeaşi valută, două surse oficiale — cu diferenţa calculată şi statutul fiecărei cifre
declarat.
Doar EUR e o comparaţie directă. BNR publică RON/EUR, BCE publică RON per EUR: aceeaşi mărime,
ambele publicate. Măsurat pe cele 5.426 de zile comune (2005 → azi): diferenţă medie 0,0029 lei
(0,0695%), maxim 0,0685; identice în doar 155 de zile, adică 2,9%. Din 2020 încoace media a
scăzut la 0,00117 lei.
Pentru celelalte valute comparaţia e indirectă, iar abaterea se dublează. BCE nu publică RON/USD;
cifra se obţine ca (RON/EUR) ÷ (USD/EUR), adică un curs încrucişat calculat de noi. Abaterea
medie urcă de la 0,07% la 0,12–0,18%, cu maxime de 2–4% (JPY: 4,03%). De aceea bce.statut spune pe
fiecare cerere dacă cifra e publicat sau derivat, iar la derivat vin şi componentele din care a
ieşit — altfel abaterea mai mare la USD ar părea că una dintre surse e mai proastă.
Niciuna nu e greşită, şi se poate arăta. Media diferenţei CU SEMN e −0,00045, o cincime din media
absolută: BNR e mai mare în 2.328 de zile şi mai mic în 2.943. Fără bias sistematic — e zgomot de
moment al fixingului, nu o convenţie diferită. Exact concluzia pe care ruta există s-o prevină.
Se compară doar zile în care au publicat amândouă. Calendarele diferă — sărbătorile româneşti nu
sunt cele TARGET2 — iar două cotaţii din zile diferite se pot scădea numeric fără să însemne ceva.
Ziua cerută fără publicare la ambele coboară la ultima zi comună, marcată prin exact.
Multiplicatorii se normalizează. BNR publică HUF, IDR, ISK, JPY şi KRW pe 100 de unităţi, BCE pe
una; fără normalizare, diferenţa ar ieşi de o sută de ori mai mare. bnr.publicat păstrează cifra
aşa cum e publicată, cu multiplicatorul ei.
Opt valute ale BNR nu sunt cotate de BCE — AED, EGP, MDL, RSD, UAH, plus XAU şi XDR, care nici
nu sunt valute. Cerute aici, primesc un refuz care spune de ce, nu o comparaţie goală.
Parametri de interogare
YYYY-MM-DD. Implicit ultima zi în care au publicat amândouă. Nu poate fi în viitor.
ex. 2024-06-15
Cum se comportă
- Aceeaşi zi, aceeaşi valută, două surse oficiale — cu diferenţa calculată şi statutul fiecărei cifre declarat.
- Doar EUR e o comparaţie directă. BNR publică RON/EUR, BCE publică RON per EUR: aceeaşi mărime, ambele publicate. Măsurat pe cele 5.426 de zile comune (2005 → azi): diferenţă medie 0,0029 lei (0,0695%), maxim 0,0685; identice în doar 155 de zile, adică 2,9%. Din 2020 încoace media a scăzut la 0,00117 lei.
- Pentru celelalte valute comparaţia e indirectă, iar abaterea se dublează. BCE nu publică RON/USD; cifra se obţine ca
(RON/EUR) ÷ (USD/EUR), adică un curs încrucişat calculat de noi. Abaterea medie urcă de la 0,07% la 0,12–0,18%, cu maxime de 2–4% (JPY: 4,03%). De aceeabce.statutspune pe fiecare cerere dacă cifra epublicatsauderivat, iar la derivat vin şi componentele din care a ieşit — altfel abaterea mai mare la USD ar părea că una dintre surse e mai proastă. - Niciuna nu e greşită, şi se poate arăta. Media diferenţei CU SEMN e −0,00045, o cincime din media absolută: BNR e mai mare în 2.328 de zile şi mai mic în 2.943. Fără bias sistematic — e zgomot de moment al fixingului, nu o convenţie diferită. Exact concluzia pe care ruta există s-o prevină.
- Se compară doar zile în care au publicat amândouă. Calendarele diferă — sărbătorile româneşti nu sunt cele TARGET2 — iar două cotaţii din zile diferite se pot scădea numeric fără să însemne ceva. Ziua cerută fără publicare la ambele coboară la ultima zi comună, marcată prin
exact; se caută cel mult zece zile în urmă. - Multiplicatorii se normalizează. BNR publică HUF, IDR, ISK, JPY şi KRW pe 100 de unităţi, BCE pe una; fără normalizare, diferenţa ar ieşi de o sută de ori mai mare.
bnr.publicatpăstrează cifra aşa cum e publicată, cu multiplicatorul ei. - Valorile unitare au şase zecimale, nu patru. La valutele publicate pe 100 de unităţi, cursul unitar are ordinul 0,028, iar o diferenţă reală de 0,000032 s-ar rotunji la 0,0000 şi ar arăta ca „identice".
- Opt valute ale BNR nu sunt cotate de BCE — AED, EGP, MDL, RSD, UAH, plus XAU şi XDR, care nici nu sunt valute. Cerute aici, primesc un refuz care spune de ce, nu o comparaţie goală.
La ce folosește
- Verificarea unei cifre de curs când sursa nu e cunoscută.
- Documentarea, într-un dosar, a diferenţei dintre cele două fixinguri la o zi anume.
- Alegerea sursei potrivite pentru un contract care nu o precizează.
Structura răspunsului
true doar dacă ziua întoarsă e cea cerută.
publicat la EUR, derivat la restul.
null când e publicată.
null când e publicată.
BNR − BCE, în lei, cu şase zecimale.
data e null, iar aici stă motivul. Nu există curs în bază. BNR o cotează, BCE nu. Nicio zi, în ultimele zece, cu publicare la ambele.
fara_date e proză şi se poate reformula, ăsta nu.
Exemple de răspuns
{
"data": {
"valuta": "EUR",
"data": "2026-09-21",
"data_ceruta": "2026-09-21",
"exact": true,
"bnr": {
"valoare": "5.264900",
"publicat": {
"valoare": "5.2649",
"multiplicator": 1
},
"sens": "RON pentru o unitate de EUR",
"statut": "publicat"
},
"bce": {
"valoare": "5.264700",
"sens": "RON pentru o unitate de EUR",
"statut": "publicat",
"formula": null,
"componente": null
},
"diferenta": {
"absoluta": "0.000200",
"procent": "0.0038",
"sens": "BNR − BCE"
}
},
"meta": {
"surse": {
"bnr": "Banca Naţională a României — cursul de referinţă.",
"bce": "Banca Centrală Europeană — cursul de referinţă (seria EXR)."
},
"nota_statut": "Ambele cifre sunt publicate ca atare: EUR e singura valută pentru care cele două surse cotează aceeaşi mărime.",
"nota_diferenta": "Niciuna dintre surse nu e greşită. Pe 5.426 de zile comune, BNR e mai mare în 2.328 şi mai mic în 2.943, iar media diferenţei cu semn (−0,00045) e o cincime din media absolută (0,0029): zgomot de moment al fixingului, nu o convenţie diferită.",
"nomenclator": "/financiar/v1/valute"
}
}
{
"data": {
"valuta": "USD",
"data": "2026-09-21",
"data_ceruta": "2026-09-21",
"exact": true,
"bnr": {
"valoare": "4.586700",
"publicat": {
"valoare": "4.5867",
"multiplicator": 1
},
"sens": "RON pentru o unitate de USD",
"statut": "publicat"
},
"bce": {
"valoare": "4.581984",
"sens": "RON pentru o unitate de USD",
"statut": "derivat",
"formula": "RON/USD = (RON/EUR) ÷ (USD/EUR)",
"componente": {
"ron_per_eur": "5.2647",
"USD_per_eur": "1.1490"
}
},
"diferenta": {
"absoluta": "0.004716",
"procent": "0.1029",
"sens": "BNR − BCE"
}
},
"meta": {
"surse": {
"bnr": "Banca Naţională a României — cursul de referinţă.",
"bce": "Banca Centrală Europeană — cursul de referinţă (seria EXR)."
},
"nota_statut": "Cifra BCE e DERIVATĂ, nu publicată: BCE cotează totul faţă de euro, deci RON/USD se obţine ca raport a două cotaţii ale ei, din aceeaşi zi. Abaterea faţă de BNR e în medie de două ori mai mare decât la EUR tocmai din cauza asta.",
"nota_diferenta": "Niciuna dintre surse nu e greşită. Pe 5.426 de zile comune, BNR e mai mare în 2.328 şi mai mic în 2.943, iar media diferenţei cu semn (−0,00045) e o cincime din media absolută (0,0029): zgomot de moment al fixingului, nu o convenţie diferită.",
"nomenclator": "/financiar/v1/valute"
}
}
{
"data": {
"valuta": "EUR",
"data": "2024-06-14",
"data_ceruta": "2024-06-15",
"exact": false,
"bnr": {
"valoare": "4.977100",
"publicat": {
"valoare": "4.9771",
"multiplicator": 1
},
"sens": "RON pentru o unitate de EUR",
"statut": "publicat"
},
"bce": {
"valoare": "4.977300",
"sens": "RON pentru o unitate de EUR",
"statut": "publicat",
"formula": null,
"componente": null
},
"diferenta": {
"absoluta": "-0.000200",
"procent": "-0.0040",
"sens": "BNR − BCE"
}
},
"meta": {
"surse": {
"bnr": "Banca Naţională a României — cursul de referinţă.",
"bce": "Banca Centrală Europeană — cursul de referinţă (seria EXR)."
},
"nota_statut": "Ambele cifre sunt publicate ca atare: EUR e singura valută pentru care cele două surse cotează aceeaşi mărime.",
"nota_diferenta": "Niciuna dintre surse nu e greşită. Pe 5.426 de zile comune, BNR e mai mare în 2.328 şi mai mic în 2.943, iar media diferenţei cu semn (−0,00045) e o cincime din media absolută (0,0029): zgomot de moment al fixingului, nu o convenţie diferită.",
"nota_zi": "Ziua cerută n-are publicare la ambele surse; s-a folosit ultima zi comună. Calendarele diferă: sărbătorile româneşti nu sunt cele TARGET2.",
"nomenclator": "/financiar/v1/valute"
}
}
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. |
| 404 | negasit | BNR n-o cotează. |
| 422 | validare | Cod de valută malformat sau dată în viitor. |
| 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": "Cod de valută malformat sau dată în viitor.",
"detalii": {
"valuta": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}