Financiar v1 / Fiscal
Costul total al angajatorului
Cât îl costă pe angajator un salariu brut: brutul plus contribuţia asiguratorie pentru muncă,
cu CAM separat şi cu temeiul ei.
⚠️ CAM e singura contribuţie datorată de angajator în regimul de după 2018 — restul se reţin din
brutul salariatului. De aceea costul total e brut + CAM, nu brut + toate contribuţiile.
POST
https://oneapi.ro/api/financiar/v1/calcul/salariu/cost-angajator
Corpul cererii
Se trimite ca JSON, în corpul cererii (Content-Type: application/json) — nu în şirul de interogare.
NumeTipDescriereValori acceptate
brutobligatoriu
integer | null
Obligatoriu, în lei întregi.
1 – 100000000
la_dataopțional
string | null
Opţional,
AAAA-LL-ZZ; implicit ziua curentă.
5.000 lei brut
Corpul cererii
{
"brut": 5000
}
10.000 lei brut
Corpul cererii
{
"brut": 10000
}
La salariul minim
Corpul cererii
{
"brut": 4050
}
Cotele din 2023
Corpul cererii
{
"brut": 5000,
"la_data": "2023-06-15"
}
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Cât îl costă pe angajator un salariu brut: brutul plus contribuţia asiguratorie pentru muncă, cu CAM separat şi cu temeiul ei.
- ⚠️ CAM e singura contribuţie datorată de angajator în regimul de după 2018 — restul se reţin din brutul salariatului. De aceea costul total e brut + CAM, nu brut + toate contribuţiile. E greşeala clasică la bugetarea unei angajări.
- ⚠️ POST şi retenţie zero, ca la celelalte calculatoare.
La ce folosește
- Bugetarea unei angajări, pornind de la brutul negociat.
- Costul real al unei echipe, pe o lună.
Structura răspunsului
CâmpTipDescriere
data.brut
integer
Cel mai mic brut întreg care dă exact netul cerut.
data.cam
integer
Contribuţia asiguratorie pentru muncă, rotunjită la leu.
data.cost_total
integer
Brut + CAM.
data.la_data
string
Data la care sunt valabile valorile întoarse.
data.facilitate
null
data.componente[].cod
string
Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.componente[].denumire
string
Denumirea, aşa cum o publică sursa.
data.componente[].baza_de_calcul
integer
Suma pe care s-a aplicat cota — la impozit e baza impozabilă, nu brutul.
data.componente[].cota
string
data.componente[].valoare
integer
Valoarea publicată de sursă pentru combinaţia de mai sus.
data.componente[].act_normativ
string
Temeiul cotei aplicate componentei.
data.componente[].de_verificat
boolean
meta.sursa
string
Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.retentie
string
Confirmarea că intrarea nu s-a scris nicăieri.
meta.nota_acoperire
string
De ce totalul e o limită de jos, în proză.
meta.total_e_limita_de_jos e cuvântul pe care comuţi în cod.
meta.fara_date
data e null, iar aici stă motivul. Cotele nu acoperă data cerută.
meta.fara_date_cod
Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod:
fara_date e proză şi se poate reformula, ăsta nu.
Exemple de răspuns
body: {"brut": 5000}
POSThttps://oneapi.ro/api/financiar/v1/calcul/salariu/cost-angajator
{
"data": {
"brut": 5000,
"cam": 113,
"cost_total": 5113,
"la_data": "2026-10-07",
"facilitate": null,
"componente": [
{
"cod": "cam",
"denumire": "Contribuţia asiguratorie pentru muncă",
"baza_de_calcul": 5000,
"cota": "2.25%",
"valoare": 113,
"act_normativ": "Codul Fiscal art.220^3",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Cotele vin din registrul comun `business_indicatori_fiscali`; facilităţile şi grila deducerii, din `Modules/Financiar/resources/fiscal`, cu act normativ pe fiecare valoare.",
"retentie": "Zero. Intrarea nu se scrie nicăieri — nici în bază, nici în cache, nici în log.",
"nota_acoperire": "Ce e acoperit şi ce nu: /financiar/v1/fiscal/acoperire."
}
}
body: {"brut": 10000}
POSThttps://oneapi.ro/api/financiar/v1/calcul/salariu/cost-angajator
{
"data": {
"brut": 10000,
"cam": 225,
"cost_total": 10225,
"la_data": "2026-10-07",
"facilitate": null,
"componente": [
{
"cod": "cam",
"denumire": "Contribuţia asiguratorie pentru muncă",
"baza_de_calcul": 10000,
"cota": "2.25%",
"valoare": 225,
"act_normativ": "Codul Fiscal art.220^3",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Cotele vin din registrul comun `business_indicatori_fiscali`; facilităţile şi grila deducerii, din `Modules/Financiar/resources/fiscal`, cu act normativ pe fiecare valoare.",
"retentie": "Zero. Intrarea nu se scrie nicăieri — nici în bază, nici în cache, nici în log.",
"nota_acoperire": "Ce e acoperit şi ce nu: /financiar/v1/fiscal/acoperire."
}
}
body: {"brut": 4050}
POSThttps://oneapi.ro/api/financiar/v1/calcul/salariu/cost-angajator
{
"data": {
"brut": 4050,
"cam": 91,
"cost_total": 4141,
"la_data": "2026-10-07",
"facilitate": null,
"componente": [
{
"cod": "cam",
"denumire": "Contribuţia asiguratorie pentru muncă",
"baza_de_calcul": 4050,
"cota": "2.25%",
"valoare": 91,
"act_normativ": "Codul Fiscal art.220^3",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Cotele vin din registrul comun `business_indicatori_fiscali`; facilităţile şi grila deducerii, din `Modules/Financiar/resources/fiscal`, cu act normativ pe fiecare valoare.",
"retentie": "Zero. Intrarea nu se scrie nicăieri — nici în bază, nici în cache, nici în log.",
"nota_acoperire": "Ce e acoperit şi ce nu: /financiar/v1/fiscal/acoperire."
}
}
body: {"brut": 5000, "la_data": "2023-06-15"}
POSThttps://oneapi.ro/api/financiar/v1/calcul/salariu/cost-angajator
{
"data": {
"brut": 5000,
"cam": 113,
"cost_total": 5113,
"la_data": "2023-06-15",
"facilitate": null,
"componente": [
{
"cod": "cam",
"denumire": "Contribuţia asiguratorie pentru muncă",
"baza_de_calcul": 5000,
"cota": "2.25%",
"valoare": 113,
"act_normativ": "Codul Fiscal art.220^3",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Cotele vin din registrul comun `business_indicatori_fiscali`; facilităţile şi grila deducerii, din `Modules/Financiar/resources/fiscal`, cu act normativ pe fiecare valoare.",
"retentie": "Zero. Intrarea nu se scrie nicăieri — nici în bază, nici în cache, nici în log.",
"nota_acoperire": "Ce e acoperit şi ce nu: /financiar/v1/fiscal/acoperire."
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă sau invalid. |
| 403 | feature_indisponibil | financiar.fiscal_calcul nu e în planul curent. |
| 422 | validare | brut_lipsa. |
| 429 | cota_depasita | Cota 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": "brut_lipsa."
}
}