oneapi
Sign in
Financiar v1 / Calendar

TARGET2 settlement calendar

The days on which the European euro settlement system is closed, for a year, plus the number of settlement days. Its own calendar, with a GREGORIAN Easter — it does not coincide with the Romanian one.

For the days on which the two calendars contradict each other, see /target2/divergente?an=.

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

Query parameters

NameTypeDescriptionAccepted values
anoptional integer | null Optional: the year, YYYY (1999–2100 — TARGET started in 1999). Without it, the current year. 1990 – 2100

How it behaves

  • The days on which TARGET2, the Eurosystem's euro settlement system, is closed — plus the number of settlement days in the year.
  • Since 2000 (except 2001) the closing days are six: New Year's Day, Good Friday, Easter Monday, 1 May, Christmas Day and Boxing Day. Easter is GREGORIAN, not Orthodox, so the calendar does NOT overlap with the Romanian one.
  • The number of settlement days nevertheless varies from year to year, even with the same number of closures: a closure falling on a Saturday or Sunday subtracts nothing, being a weekend already. In 2026 only one of the six falls at a weekend (256 settlement days), in 2027 three (258).
  • meta.verificare writes out the arithmetic identity, so the result can be confirmed at a glance.
  • For the days on which the two calendars contradict each other — the case that produces unsettled payments — see /target2/divergente?an=.

What it is for

  • Checking whether a euro payment can settle on a given date.
  • Establishing the value date of a euro transfer.
  • Counting the settlement days in a year.

Response structure

FieldTypeDescription
data.an integer The year the data refers to.
data.zile_inchise[].data string
data.zile_inchise[].zi_saptamana string Day of the week, with 1 = Monday.
data.zile_inchise[].denumire string The holiday causing the closure, in the Gregorian calendar.
data.zile_inchise[].in_weekend boolean true if the closure falls on a Saturday or Sunday — in which case it subtracts no settlement day.
meta.zile_inchise integer
meta.inchise_in_zile_de_lucru integer How many closures fall Monday to Friday, i.e. actually reduce the count.
meta.zile_de_decontare integer How many days in the year euro settlement is actually possible.
meta.verificare string Which check was run on the values in the response.
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.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/target2
{
    "data": {
        "an": 2026,
        "zile_inchise": [
            {
                "data": "2026-01-01",
                "zi_saptamana": "joi",
                "denumire": "Anul Nou",
                "in_weekend": false
            }
        ]
    },
    "meta": {
        "zile_inchise": 6,
        "inchise_in_zile_de_lucru": 5,
        "zile_de_decontare": 256,
        "verificare": "365 − 104 − 5 = 256",
        "temei": "calendarul TARGET2 al Eurosistemului; Paştele GREGORIAN, nu ortodox.",
        "nota": "O închidere care cade în weekend nu scade nicio zi de decontare — de aceea numărul de zile de decontare variază de la an la an chiar la acelaşi număr de închideri. În 2026 sunt 6 zile de închidere, ca în calendarul obişnuit (din 2000, cu excepţia lui 2001)."
    }
}

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 year outside 1990–2100, or an_inainte_de_target2 for a year before 1999, when TARGET did not exist.
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 year outside 1990–2100, or an_inainte_de_target2 for a year before 1999, when TARGET did not exist.",
        "detalii": {
            "an": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}