oneapi
Sign in
Financiar v1 / Calendar

What this day is

The full record of one day: is it a working day? a public holiday? a bridge day set by Government Decision? did the NBR publish a rate? is TARGET2 open? Three distinct calendars, in a single response.

GET
https://oneapi.ro/api/financiar/v1/zi

Query parameters

NameTypeDescriptionAccepted values
dataoptional string | null Optional: the day, YYYY-MM-DD (years 1990–2100). Without it, today (Romanian time). e.g. 2026-04-06e.g. 2026-12-25e.g. 2024-06-15

How it behaves

  • The complete profile of a day in a single request: is it a working day, a public holiday, a bridge day set by Government decision, did NBR publish a rate, is TARGET2 open.
  • Three distinct calendars meet here and must not be confused. Working days follow art. 139 of the Labour Code, with ORTHODOX Easter. Banking days are an empirical fact — whether NBR published quotes or not. TARGET2 has a calendar of its own, with GREGORIAN Easter.
  • The divergence between calendars is real, not theoretical: in 2026, TARGET2 is closed on 6 April, when Romania works, and open on 13 April, when Romania is on holiday.
  • lucratoare follows the general rule: a weekday that is not a public holiday. A Government bridge day does NOT change it if it applies to public-sector staff only — and every bridge day recorded so far is of that kind. For a private company, 2 May 2025 was an ordinary working day. The bridge day is reported separately, with aplicabil_la, so each reader can decide whether it concerns them.
  • zi_bancara_bnr is not a synonym for lucratoare: there are four working days on which NBR did not publish without it being a holiday — 30 June and 1 July 2005 (the ROL→RON denomination), 31 December 2007 and 3 January 2012. Anyone computing a value date needs the banking fact, not the legal one.
  • A null in zi_bancara_bnr means "unknown" — the day lies outside the quote coverage (before 2005-01-03 or after the last published day). It is not to be confused with false, which would assert that NBR was closed.
  • Holidays are computed, not read from a table: Orthodox Easter by algorithm, the rest from rules versioned per year. For future years the answer is a PROJECTION of current legislation — the list can change by law.

What it is for

  • Checking whether a due date falls on a working day.
  • Establishing the value date of a payment.
  • Checking euro settlement availability.

Response structure

FieldTypeDescription
data.data string
data.zi_saptamana string Day of the week, with 1 = Monday.
data.zi_saptamana_iso integer
data.lucratoare boolean A weekday that is not a public holiday. Bridge days for public-sector staff do not change it.
data.sarbatori[] string[] The public holidays of the day, each with a stable code and mobila: true for those tied to Easter. An EMPTY array if the day is not a holiday, and with TWO entries when two holidays fall on the same day (2026-06-01 = Children's Day + Whit Monday).
data.zi_libera_hg object | null The bridge day set by Government decision: the enacting instrument, whom it applies to (bugetari or toti) and whether it must be made up.
data.target2_deschis boolean | null Whether the European euro settlement system operates on that day.
data.zi_bancara_bnr boolean | null true/false for whether NBR published quotes; null outside the coverage.
data.urmatoarea_zi_lucratoare string The first working day strictly after the requested day.
meta.temei string The legal basis for the values or for the way they are computed.
meta.nota string A note on how to read the response — a pitfall, a convention or a limit of the source.
meta.calendare.lucratoare string
meta.calendare.zi_bancara_bnr string
meta.calendare.target2_deschis string Whether the European euro settlement system operates on that day.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/zi
{
    "data": {
        "data": "2026-10-07",
        "zi_saptamana": "miercuri",
        "zi_saptamana_iso": 3,
        "lucratoare": true,
        "sarbatori": [],
        "zi_libera_hg": null,
        "target2_deschis": true,
        "zi_bancara_bnr": null,
        "urmatoarea_zi_lucratoare": "2026-10-08"
    },
    "meta": {
        "temei": "art. 139 Codul Muncii (sărbători legale); Paştele ortodox calculat, nu tabelat.",
        "nota": "Pentru anii viitori răspunsul e o proiecţie a legislaţiei actuale: lista sărbătorilor se poate schimba prin lege.",
        "calendare": {
            "lucratoare": "Zi de săptămână care nu e sărbătoare legală. Punţile de HG pentru bugetari NU o schimbă.",
            "zi_bancara_bnr": "Fapt empiric: a publicat BNR cotaţii. `null` în afara acoperirii.",
            "target2_deschis": "Calendar propriu, cu Paştele GREGORIAN — diferit de cel românesc."
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareA date written other than YYYY-MM-DD or outside the years 1990–2100.
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": "A date written other than YYYY-MM-DD or outside the years 1990–2100.",
        "detalii": {
            "data": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}