oneapi
Sign in
Financiar v1 / Calcul

Conversion across the 2005 denomination

Converts an amount between old lei (ROL) and new lei (RON), at the fixed 10,000:1 ratio established by Law 348/2004.

If a date is given as well, the response says which currency was the reference then and flags the mismatch: an amount declared in RON for a date in 1998 is almost certainly a misreading.

GET
https://oneapi.ro/api/financiar/v1/calcul/denominare

Query parameters

NameTypeDescriptionAccepted values
sumarequired string Required. May be negative and may carry up to 4 decimals. e.g. 1000e.g. 2500.75
dinrequired string Required: ROL or RON. Lowercase is accepted. ROLRONrolron
dataoptional string | null Optional. Enables the consistency check between the declared currency and the date given. e.g. 2024-06-15

How it behaves

  • Converts an amount between old lei (ROL) and new lei (RON), at the fixed ratio of 10,000:1 set by Law 348/2004, in force from 1 July 2005.
  • If a date is given as well, the response says which currency was the reference at that time and flags the mismatch: an amount declared in RON for a date in 1998 is almost certainly a misreading, and the result would be wrong by four orders of magnitude.
  • The window from 1 January to 1 July 2005 is ambiguous and we do not guess it. NBR expresses its exchange-rate archive in new lei from 1 January 2005 onwards, even though the legal denomination took place on 1 July. For dates inside that window, moneda_de_referinta_la_data is null, with the explanation: the unit depends on the source of the figure, not on the calendar.
  • Old lei remained legal tender until 31 December 2006, circulating in parallel with the new ones.
  • The route is especially useful together with indexation: an amount from the 1990s indexed to today's value is still expressed in old lei, and here it is brought into new lei.

What it is for

  • Bringing an amount from old documents into new lei.
  • Checking which currency a figure in a document is expressed in.

Response structure

FieldTypeDescription
data[] object[]
meta[] string[] The response envelope: the source, the freshness and the notes that go with the data.
data.suma_convertita string The result. Converting to new lei it is rounded to the cent; converting to old lei it stays exact.
data.suma_convertita_exacta string The unrounded result.
data.moneda_de_referinta_la_data string ROL, RON, or absent for the ambiguous window in the first half of 2005.
data.declaratie_coerenta boolean false when the declared currency does not match the date. Absent when it cannot be established.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/calcul/denominare?suma=1000&din=ROL
{
    "data": {
        "suma": "1000",
        "din": "ROL",
        "in": "RON",
        "raport": "1 RON = 10,000 ROL",
        "suma_convertita": "0.10",
        "suma_convertita_exacta": "0.1"
    },
    "meta": {
        "temei": "Legea 348/2004 privind denominarea monedei naţionale: 1 leu nou (RON) = 10.000 lei vechi (ROL), de la 1 iulie 2005.",
        "circulatie_paralela": "Leii vechi au rămas mijloc legal de plată până la 31 decembrie 2006."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareMalformed amount, din missing or other than ROL/RON, malformed or future date.
429cota_depasitaThe 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": "Malformed amount, din missing or other than ROL/RON, malformed or future date.",
        "detalii": {
            "suma": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}