oneapi
Sign in
Financiar v1 / Calcul

Revaluation of a foreign-currency balance

Revalues a foreign currency balance at the closing rate of a reporting period.

Something other than /calcul/diferente-curs, even though the arithmetic looks the same. There you give two dates and get a SETTLEMENT difference — an invoice issued in January, collected in August. Here you give a PERIOD, and you do not choose the rate: the rule chooses it, the one at the period's close. A balance revalued at some arbitrary day's rate is a revaluation at the wrong rate, and the figure looks just as convincing.

The period, in a single parameter with three forms: 2026-07 (month), 2026-T2 (quarter), 2026 (year). They are unambiguous by shape, and the second is the very label the NBR publishes.

The starting point is given either as valoare_lei — the figure from your books — or as de_la_perioada, the period at whose close the balance was last revalued. The second is the real monthly cycle and takes the rate from our data.

The response also says which banking day the closing rate comes from: that is what goes into the note to the financial statements.

Only MONETARY items are revalued — receivables, payables, cash. A non-refundable advance or stock paid for in foreign currency is not revalued. From the parameters there is no way to know what the balance is, so the route checks nothing: the limit is declared, not assumed.

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

Query parameters

NameTypeDescriptionAccepted values
sumarequired string Required. The balance in foreign currency. e.g. 10000e.g. 5000e.g. 20000
valutarequired string Required. Three-letter code. max 3 car.
pozitierequired string Required: creanta or datorie. No default. creantadatorie
perioadarequired string Required: 2026-07, 2026-T2 or 2026. e.g. 2024-06e.g. 2024-03e.g. 2024-09
valoare_leioptional string | null The value the balance is carried at. Excludes de_la_perioada. e.g. 49500e.g. 23000e.g. 118000
de_la_perioadaoptional string | null The period at whose close it was last revalued. Excludes valoare_lei. e.g. 2023-T4

How it behaves

  • Revalues a foreign-currency balance at the CLOSING rate of a reporting period.
  • Different from /calcul/diferente-curs, even though the arithmetic looks the same. There you give two dates and get a SETTLEMENT difference — an invoice issued in January, collected in August. Here you give a PERIOD, and you do not choose the rate: the rule does, the one at the close of the period. A balance revalued at the rate of an arbitrary day is a revaluation at the wrong rate, and the figure looks just as good.
  • The period, in a single parameter with three forms: 2026-07 (month), 2026-T2 (quarter), 2026 (year). They are unambiguous by shape, and the second is the very label NBR publishes.
  • The starting point, in two mutually exclusive modes. valoare_lei is the figure in the ledger. de_la_perioada takes the closing rate of the period in which the balance was last revalued — the real monthly cycle, with the figure taken from our data. When you give valoare_lei, the response also returns curs_implicit, so you can see at what rate the balance is carried.
  • The sign comes from pozitie, required and with no default: on a payable, an increase in the lei value is an expense, not income. The same rate movement is a gain on a receivable and a loss on a payable.
  • The response says which banking DAY the closing rate comes from — information the official NBR series does not carry, but which goes into the note to the accounts and is checked by an auditor.
  • A period in progress has no closing rate and returns 404: the "close" of an unfinished period is simply the most recent rate. For a balance as of today, use /calcul/diferente-curs with today's date.
  • Only MONETARY items are revalued — receivables, payables, cash. A non-refundable advance or inventory paid in foreign currency is not revalued. The parameters cannot tell what the balance is, so the route checks nothing: the limit is declared, not assumed.
  • cont_orientativ (765 favourable, 665 unfavourable) is INDICATIVE: the classification depends on accounting policy, not on our data.

What it is for

  • Revaluing foreign-currency receivables and payables at month end.
  • Revaluing foreign-currency cash at year end.
  • Checking a revaluation done at the wrong rate.

Response structure

FieldTypeDescription
data.suma string Sum of the values, in the unit indicated alongside.
data.valuta string ISO 4217 currency code.
data.denumire string The name, exactly as the source publishes it.
data.pozitie string Position of the item in the response order.
data.perioada.eticheta string Display label for the value — the readable version of the code next to it.
data.perioada.de_la string Start of the covered interval.
data.perioada.pana_la string End of the covered interval, inclusive.
data.inregistrat.fel string valoare_data or din_inchiderea_anterioara.
data.inregistrat.valoare_lei string
data.inregistrat.curs_implicit string The rate the balance is carried at, derived from the given value. Only in the first mode.
data.reevaluat.curs_inchidere string The closing rate of the period, RON per one unit.
data.reevaluat.provine_din_ziua string The banking day the rate comes from. It goes into the note to the accounts.
data.reevaluat.valoare_lei string
data.diferenta.valoare string The accounting difference, signed according to the position.
data.diferenta.valoare_exacta string
data.diferenta.fel string favorabila, nefavorabila or neutra.
data.diferenta.variatie_valoare_lei string The gross change in lei value, without the position sign.
data.diferenta.cont_orientativ string 765 or 665. Indicative — see the note.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.nota_curs string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_pozitie string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_cont string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_monetare string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_provenienta string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.fara_date data is null and this says why. The period is still in progress, the currency has no close for it, or the period is before 2005. The la field says which period produced the gap.
meta.fara_date_cod The short, STABLE word for the reason, for clients that branch on it in code: fara_date is prose and may be rephrased, this is not.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/calcul/reevaluare?suma=10000&valuta=EUR&pozitie=creanta&perioada=2024-06&valoare_lei=49500
{
    "data": {
        "suma": "10000",
        "valuta": "EUR",
        "denumire": "Euro",
        "pozitie": "creanta",
        "perioada": {
            "eticheta": "2024-06",
            "de_la": "2024-06-01",
            "pana_la": "2024-06-30"
        },
        "inregistrat": {
            "fel": "valoare_data",
            "valoare_lei": "49500.00",
            "curs_implicit": "4.95"
        },
        "reevaluat": {
            "curs_inchidere": "4.9771",
            "provine_din_ziua": "2024-06-28",
            "valoare_lei": "49771.00"
        },
        "diferenta": {
            "valoare": "271.00",
            "valoare_exacta": "271",
            "fel": "favorabila",
            "variatie_valoare_lei": "271.00",
            "cont_orientativ": "765"
        }
    },
    "meta": {
        "sursa": "BNR — cursul de schimb al pieţei valutare, serii de sfârşit de perioadă.",
        "nota_curs": "Cursul e cel de la ÎNCHIDEREA perioadei, ales de regulă, nu de client. Pentru o diferenţă între două date alese de tine: /financiar/v1/calcul/diferente-curs.",
        "nota_pozitie": "Semnul vine din `pozitie`: la datorie, creşterea valorii în lei e cheltuială, nu venit.",
        "nota_cont": "Contul 765 e ORIENTATIV (plan general OMFP 1802/2014). Încadrarea ţine de politica contabilă, nu de datele noastre.",
        "nota_monetare": "Se reevaluează doar elementele monetare — creanţe, datorii, disponibil. Ruta nu poate şti ce e soldul, deci nu verifică: limita e declarată.",
        "nota_provenienta": "Ziua bancară din `reevaluat.provine_din_ziua` e informaţia care se trece în nota la bilanţ; seria oficială nu o conţine."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422perioade_inversateThe starting period is not before the reporting one; missing pozitie; missing or doubled starting point; malformed parameters.
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": "perioade_inversate",
        "mesaj": "The starting period is not before the reporting one; missing pozitie; missing or doubled starting point; malformed parameters.",
        "detalii": {
            "suma": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}