oneapi
Autentificare
Financiar v1 / Calendar

Unde diferă TARGET2 de calendarul românesc

Zilele în care cele două calendare se contrazic, în ambele sensuri. Cel periculos e „TARGET2
închis, România lucrează": o plată în euro programată atunci nu se decontează, deşi în România e
zi normală de lucru.

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

Parametri de interogare

NumeTipDescriereValori acceptate
anopțional integer | null Opţional: anul, AAAA (1999–2100 — TARGET a pornit în 1999). Fără el, anul curent. 1990 – 2100

Cum se comportă

  • Zilele în care calendarul TARGET2 şi cel românesc nu se potrivesc, în AMBELE sensuri.
  • Rută separată de /target2?an= pentru un motiv de structură: în lista de închideri TARGET2 apar doar zilele în care TARGET2 e închis. Zilele inverse — România închisă, TARGET2 deschis — nu apar deloc acolo, fiindcă nu sunt zile TARGET2. Puse împreună, ar fi ieşit o listă asimetrică.
  • Sensul periculos e „TARGET2 închis, România lucrează". O plată în euro programată atunci nu se decontează, deşi în România e zi normală de lucru. Sunt puţine zile pe an, dar toate cad în perioada Paştelui, unde diferenţa dintre calendarul gregorian şi cel ortodox e maximă — în 2027 sunt peste cinci săptămâni între ele.
  • Sensul invers — România închisă, TARGET2 deschis — e mai puţin costisitor: decontarea europeană funcţionează, dar în România nu se lucrează. Sunt mai multe astfel de zile, pentru că România are sărbători pe care Eurosistemul nu le ţine: Boboteaza, Ziua Copilului, Sf. Andrei, Ziua Naţională.
  • meta numără separat cele două sensuri, tocmai pentru că efectele n-au nimic în comun.
  • Weekendurile nu apar: sunt nelucrătoare în ambele calendare, deci nu pot diverge.

La ce folosește

  • Evitarea programării unei plăţi în euro într-o zi în care decontarea nu funcţionează.
  • Planificarea trezoreriei în perioada Paştelui.

Structura răspunsului

CâmpTipDescriere
data.an integer Anul la care se referă datele.
data.divergente[].data string
data.divergente[].zi_saptamana string Ziua săptămânii, cu 1 = luni.
data.divergente[].target2 string inchis sau deschis în ziua respectivă.
data.divergente[].romania string lucratoare sau nelucratoare potrivit legii româneşti.
data.divergente[].motiv string Sărbătoarea care produce diferenţa, din calendarul care e închis.
meta.divergente integer
meta.target2_inchis_romania_lucreaza integer Numărul zilelor din sensul periculos.
meta.romania_inchisa_target2_deschis integer Numărul zilelor din sensul invers.
meta.temei string Temeiul legal al valorilor sau al modului de calcul.
meta.nota string Precizare despre cum se citesc datele din răspuns — o capcană, o convenţie sau o limită a sursei.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/target2/divergente
{
    "data": {
        "an": 2026,
        "divergente": [
            {
                "data": "2026-01-02",
                "zi_saptamana": "vineri",
                "target2": "deschis",
                "romania": "nelucratoare",
                "motiv": "Anul Nou"
            }
        ]
    },
    "meta": {
        "divergente": 10,
        "target2_inchis_romania_lucreaza": 2,
        "romania_inchisa_target2_deschis": 8,
        "temei": "calendarul TARGET2 (Paştele gregorian) faţă de art. 139 Codul Muncii (Paştele ortodox).",
        "nota": "Sensul „TARGET2 închis, România lucrează\" e cel care produce pagube: plăţile în euro nu se decontează, deşi în România e zi lucrătoare. Sunt puţine zile pe an, dar toate cad în perioada Paştelui, când diferenţa dintre calendarul gregorian şi cel ortodox e maximă. Sensul invers e mai puţin costisitor: decontarea europeană funcţionează, dar în România nu se lucrează."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareAn în afara intervalului 1990–2100, ori an_inainte_de_target2 pentru un an dinainte de 1999, când TARGET nu exista.
429cota_depasitaCota 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": "An în afara intervalului 1990–2100, ori an_inainte_de_target2 pentru un an dinainte de 1999, când TARGET nu exista.",
        "detalii": {
            "an": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}