Financiar v1 / CursVamal
Cursul vamal al unei luni
Cursul aplicabil pentru determinarea valorii în vamă într-o lună (?luna=AAAA-LL), pentru toate valutele
sau doar cele cerute. Fără luna, luna în curs. Acoperirea începe la mai 2016, când a intrat în vigoare
art. 146 din Regulamentul de punere în aplicare (UE) 2015/2447.
Nu e cursul zilei. E cotaţia BNR din penultima zi de miercuri a lunii anterioare, fixă pe toată
luna. Răspunsul spune din ce zi provine, ca regula să poată fi verificată cerând acea cotaţie pe
/curs/{valuta}?data=.
GET
https://oneapi.ro/api/financiar/v1/curs-vamal
Parametri de interogare
NumeTipDescriereValori acceptate
lunaopțional
string | null
Opţional: luna,
AAAA-LL, din 2016-05. Fără ea, luna în curs.
ex. 2024-06
valutalistăopțional
text
Filtru opţional:
?valuta=EUR,USD.
ex. EURex. EUR,USD
Cum se comportă
- Cursul aplicabil pentru determinarea valorii în vamă într-o lună (
?luna=AAAA-LL); fără ea, luna în curs. - Nu e cursul zilei. E cotaţia BNR din penultima zi de miercuri a lunii ANTERIOARE, fixă pe toată luna de aplicare (art. 146 din Regulamentul de punere în aplicare (UE) 2015/2447). Folosirea cursului zilnic la o declaraţie vamală schimbă baza de impozitare cu o diferenţă mică, greu de observat.
- Răspunsul poartă
cotatie_dinşipenultima_miercuri, deci regula e verificabilă: se cere aceeaşi zi pe/curs/{valuta}?data=şi se compară.meta.verificareconţine chiar calea. - Cinci valute se publică la 100 de unităţi;
valoare_unitarae deja împărţită la multiplicator. - Acoperirea începe la mai 2016. Cifrele au fost confruntate cu tabelele oficiale ale Autorităţii Vamale, recuperate din arhiva web: 1.149 din 1.149 de valori identice la a patra zecimală.
- Acoperirea începe la mai 2016, când a intrat în vigoare art. 146 din Reg. (UE) 2015/2447. Lunile anterioare sunt refuzate cu explicaţie: până atunci se aplica art. 171 din Reg. 2454/93, care avea o clauză de 5% — dacă cotaţia unei miercuri se abătea cu cel puţin 5% de la cea în uz, o înlocuia din miercuri următoare, iterativ. Regula rupea perioadele la mijloc de lună, iar o grilă lunară nu o poate exprima. De aceea perioada nu e în date, în loc să fie aproximată.
La ce folosește
- Conversia valorii în vamă la o declaraţie de import.
- Verificarea cursului folosit de un declarant.
- Calculul valorii în vamă pentru o declaraţie dintr-o lună trecută.
- Verificarea unei declaraţii vamale depuse anterior.
- Recalcularea corectă a unui import, cu cursul lunii, nu cu cel de azi.
Structura răspunsului
CâmpTipDescriere
data.luna
string
Luna la care se referă datele.
data.aplicabil_de_la
string
Prima zi a lunii de aplicare.
data.aplicabil_pana_la
string
Ultima zi a lunii de aplicare.
data.moneda_baza
string
Moneda faţă de care sunt exprimate cotaţiile.
data.cotatie_din
string
Ziua din care provine cotaţia BNR folosită.
data.penultima_miercuri
string
Penultima miercuri a lunii anterioare — regula din art. 146.
data.baza_legala
string
Temeiul aplicabil lunii respective.
data.cotatii[].valuta
string
Codul ISO 4217 al valutei.
data.cotatii[].valoare
string
Valoarea publicată de sursă pentru combinaţia de mai sus.
data.cotatii[].multiplicator
integer
Cu cât se înmulţeşte valoarea ca să ajungă în unitatea de bază.
data.cotatii[].valoare_unitara
string
Valoarea raportată la o singură unitate.
meta.sursa
string
Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.cotatii
integer
Câte cotaţii intră în răspuns.
meta.regula
string
Regula după care s-a calculat sau s-a ales valoarea.
meta.verificare
string
Ce verificare s-a rulat pe valorile din răspuns.
meta.nota
string
Precizare despre cum se citesc datele din răspuns — o capcană, o convenţie sau o limită a sursei.
meta.fara_date
data e null, iar aici stă motivul. Nu există cursuri vamale în bază.
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-vamal?valuta=EUR
{
"data": {
"luna": "2026-09",
"aplicabil_de_la": "2026-09-01",
"aplicabil_pana_la": "2026-09-30",
"moneda_baza": "RON",
"cotatie_din": "2026-08-19",
"penultima_miercuri": "2026-08-19",
"baza_legala": "art. 146 Reg. (UE) 2015/2447",
"cotatii": [
{
"valuta": "EUR",
"valoare": "5.2452",
"multiplicator": 1,
"valoare_unitara": "5.2452"
}
]
},
"meta": {
"sursa": "derivat din cursul de referinţă BNR.",
"cotatii": 1,
"regula": "Cotaţia BNR din penultima zi de miercuri a lunii anterioare, fixă pe toată luna de aplicare.",
"verificare": "Cotaţia se poate confrunta cerând /financiar/v1/curs/EUR?data=2026-08-19 (la fel pentru orice valută din grilă).",
"nota": "Nu e cursul zilei. Folosirea cursului zilnic la o declaraţie vamală schimbă baza de impozitare cu o diferenţă mică, greu de observat."
}
}
GEThttps://oneapi.ro/api/financiar/v1/curs-vamal?luna=2024-06&valuta=EUR,USD
{
"data": {
"luna": "2024-06",
"aplicabil_de_la": "2024-06-01",
"aplicabil_pana_la": "2024-06-30",
"moneda_baza": "RON",
"cotatie_din": "2024-05-22",
"penultima_miercuri": "2024-05-22",
"baza_legala": "art. 146 Reg. (UE) 2015/2447",
"cotatii": [
{
"valuta": "EUR",
"valoare": "4.9745",
"multiplicator": 1,
"valoare_unitara": "4.9745"
}
]
},
"meta": {
"sursa": "derivat din cursul de referinţă BNR.",
"cotatii": 2,
"regula": "Cotaţia BNR din penultima zi de miercuri a lunii anterioare, fixă pe toată luna de aplicare.",
"verificare": "Cotaţia se poate confrunta cerând /financiar/v1/curs/EUR?data=2024-05-22 (la fel pentru orice valută din grilă).",
"nota": "Nu e cursul zilei. Folosirea cursului zilnic la o declaraţie vamală schimbă baza de impozitare cu o diferenţă mică, greu de observat."
}
}
GEThttps://oneapi.ro/api/financiar/v1/curs-vamal
{
"data": {
"luna": "2026-09",
"aplicabil_de_la": "2026-09-01",
"aplicabil_pana_la": "2026-09-30",
"moneda_baza": "RON",
"cotatie_din": "2026-08-19",
"penultima_miercuri": "2026-08-19",
"baza_legala": "art. 146 Reg. (UE) 2015/2447",
"cotatii": [
{
"valuta": "AED",
"valoare": "1.2303",
"multiplicator": 1,
"valoare_unitara": "1.2303"
}
]
},
"meta": {
"sursa": "derivat din cursul de referinţă BNR.",
"cotatii": 36,
"regula": "Cotaţia BNR din penultima zi de miercuri a lunii anterioare, fixă pe toată luna de aplicare.",
"verificare": "Cotaţia se poate confrunta cerând /financiar/v1/curs/AED?data=2026-08-19 (la fel pentru orice valută din grilă).",
"nota": "Nu e cursul zilei. Folosirea cursului zilnic la o declaraţie vamală schimbă baza de impozitare cu o diferenţă mică, greu de observat."
}
}
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 | Luna nu are date. |
| 422 | validare | Lună scrisă altfel decât AAAA-LL ori anterioară lui 2016-05 (art. 146 din Reg. (UE) 2015/2447 se aplică din 1 mai 2016). |
| 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": "Lună scrisă altfel decât AAAA-LL ori anterioară lui 2016-05 (art. 146 din Reg. (UE) 2015/2447 se aplică din 1 mai 2016).",
"detalii": {
"luna": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}