oneapi
Autentificare
Financiar v1 / Calendar

Norma de lucru a unei luni

Zilele lucrătoare ale lunii înmulţite cu orele unei zile — cifra din pontaj şi din calculul
salariului. Pentru 2026, pe sectorul privat: 144 de ore în ianuarie, 184 în iulie, 2.000 pe an.

De ce nu e un câmp în /zile-lucratoare: are altă unitate, iar înmulţirea cu 8 nu e o
formalitate — e o convenţie (art. 112 Codul Muncii, 8 ore pe zi şi 40 pe săptămână) care trebuie
declarată, nu presupusă tăcut într-un câmp adăugat altundeva. De aceea ore_pe_zi apare în răspuns.

Şi de aceea poate fi schimbată: un contract cu normă parţială — 4 sau 6 ore — are nevoie de
aceeaşi cifră cu alt multiplicator. ore_pe_zi acceptă orice valoare între 1 şi 24, iar cea
folosită vine mereu în răspuns, ca rezultatul să nu poată fi citit greşit.

Norma pe sectorul public e provizorie pentru anii viitori, ca la /calendar?an=: depinde de
punţile stabilite prin hotărâre de Guvern, iar un an fără HG emis arată zero punţi — ceea ce nu
înseamnă că nu vor fi. provizoriu o declară.

Ambele sectoare vin oricum în răspuns, plus norma anuală ca reper şi defalcarea din care rezultă
zilele.

GET
https://oneapi.ro/api/financiar/v1/norma-lucru

Parametri de interogare

NumeTipDescriereValori acceptate
lunaopțional string | null Opţional: luna, AAAA-LL (anii 1990–2100). Fără ea, luna curentă. ex. 2024-05ex. 2026-05
sectoropțional string | null Opţional: privat (implicit) sau public. Diferă prin punţile de HG. privatpublic
ore_pe_ziopțional integer | null Opţional, implicit 8. Între 1 şi 24, pentru normă parţială. 1 – 24

Cum se comportă

  • Zilele lucrătoare ale lunii înmulţite cu orele unei zile — cifra din pontaj şi din calculul salariului. Pentru 2026, pe sectorul privat: 144 de ore în ianuarie, 184 în iulie, 2.000 pe an.
  • De ce nu e un câmp în /zile-lucratoare: are altă unitate, iar înmulţirea cu 8 nu e o formalitate — e o convenţie (art. 112 Codul Muncii, 8 ore pe zi şi 40 pe săptămână) care trebuie declarată, nu presupusă tăcut într-un câmp adăugat altundeva. De aceea ore_pe_zi apare mereu în răspuns.
  • Şi de aceea poate fi schimbată. Un contract cu normă parţială — 4 sau 6 ore — are nevoie de aceeaşi cifră cu alt multiplicator; altfel cine îl are ar reface singur calculul din zile. ore_pe_zi acceptă orice între 1 şi 24, iar cifra folosită vine în răspuns ca rezultatul să nu poată fi citit greşit.
  • Norma pe sectorul public e PROVIZORIE pentru anii viitori, ca la /calendar?an=: depinde de punţile stabilite prin hotărâre de Guvern, iar un an fără HG emis arată zero punţi — ceea ce nu înseamnă că nu vor fi. provizoriu o declară.
  • Pentru anii încheiaţi diferenţa e reală şi se vede: mai 2024 are 160 de ore pe privat şi 152 pe public, dintr-o singură punte.
  • Ambele sectoare vin oricum în răspuns, plus norma anuală ca reper şi defalcarea din care rezultă zilele: calendaristice − weekend − sărbători în zile lucrătoare − punţi.

La ce folosește

  • Norma lunară din pontaj şi din statul de plată.
  • Calculul salariului orar dintr-unul lunar, sau invers.
  • Bugetul de ore al unei echipe, cu norma parţială luată în seamă.

Structura răspunsului

CâmpTipDescriere
data.an integer Anul la care se referă datele.
data.luna integer Luna la care se referă datele.
data.perioada string Perioada la care se referă valoarea.
data.de_la string Începutul intervalului acoperit de răspuns.
data.pana_la string Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.sector string Sectorul instituţional ori economic.
data.ore_pe_zi integer Convenţia folosită. Vine mereu, ca cifra să nu poată fi citită greşit.
data.zile_lucratoare integer Zilele din care rezultă norma.
data.ore_norma integer Norma lunii, pentru sectorul şi orele cerute.
data.defalcare object Calendaristice, weekend, sărbători în zile lucrătoare, punţi scăzute.
data.defalcare.zile_calendaristice integer Toate zilele din interval, ambele capete incluse.
data.defalcare.zile_weekend integer Câte sâmbete şi duminici sunt în interval.
data.defalcare.sarbatori_in_zile_lucratoare integer Sărbători legale care cad luni–vineri. Doar acestea reduc numărul.
data.defalcare.punti_hg_scazute integer Punţi de HG scăzute. Mereu 0 la sector=privat.
data.privat object Zilele şi norma pe sectorul privat.
data.privat.zile_lucratoare integer Câte zile lucrătoare are perioada.
data.privat.ore_norma integer
data.public object Zilele şi norma pe sectorul public.
data.public.zile_lucratoare integer Câte zile lucrătoare are perioada.
data.public.ore_norma integer
data.anual object Norma întregului an, ca reper.
data.anual.zile_lucratoare integer Câte zile lucrătoare are perioada.
data.anual.ore_norma integer
data.punti_stabilite integer Câte punţi de HG sunt publicate pentru anul acesta.
data.provizoriu string true când anul e curent sau viitor şi nu există încă nicio punte publicată.
meta[] string[] Plicul răspunsului: sursa, prospeţimea şi precizările care însoţesc datele.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/norma-lucru
{
    "data": {
        "an": 2026,
        "luna": 10,
        "perioada": "2026-10",
        "de_la": "2026-10-01",
        "pana_la": "2026-10-31",
        "sector": "privat",
        "ore_pe_zi": 8,
        "zile_lucratoare": 22,
        "ore_norma": 176,
        "defalcare": {
            "zile_calendaristice": 31,
            "zile_weekend": 9,
            "sarbatori_in_zile_lucratoare": 0,
            "punti_hg_scazute": 0
        },
        "privat": {
            "zile_lucratoare": 22,
            "ore_norma": 176
        },
        "public": {
            "zile_lucratoare": 22,
            "ore_norma": 176
        },
        "anual": {
            "zile_lucratoare": 250,
            "ore_norma": 2000
        },
        "punti_stabilite": 0,
        "provizoriu": true
    },
    "meta": {
        "temei": "Art. 112 din Codul Muncii: durata normală a timpului de muncă e de 8 ore pe zi şi 40 pe săptămână. Sărbătorile legale: art. 139.",
        "formula": "zile_lucratoare × ore_pe_zi. Zilele se obţin ca la /financiar/v1/zile-lucratoare: calendaristice − weekend − sărbători în zile lucrătoare − punţi.",
        "nota_conventie": "Cele 8 ore pe zi sunt o convenţie declarată, nu o proprietate a lunii. Pentru normă parţială, dă `ore_pe_zi`; cifra folosită vine mereu în răspuns.",
        "nota_sector": "Punţile de HG se aplică, de regulă, doar instituţiilor publice. `ore_norma` urmează `sector`; ambele variante vin oricum.",
        "nota_provizoriu": "Pentru 2026 nu există încă nicio punte publicată prin HG, deci norma pe sectorul public coincide azi cu cea pe privat şi se poate schimba.",
        "calendarul_anului": "/financiar/v1/calendar?an=2026"
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareLună scrisă altfel decât AAAA-LL ori în afara anilor 1990–2100, sector în afara listei, ori ore_pe_zi în afara intervalului 1–24.
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": "Lună scrisă altfel decât AAAA-LL ori în afara anilor 1990–2100, sector în afara listei, ori ore_pe_zi în afara intervalului 1–24.",
        "detalii": {
            "luna": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}