Financiar v1 / Fiscal
Fiscal thresholds in force
The micro-enterprise ceiling and the VAT exemption threshold, at a date. The same source as the rates, but a separate route because it is a different question: a threshold says „from here the regime changes", a rate says „this much is paid".
⚠️ plafon_micro has a gap from 1 January 2025 — the source has no entry after 31 December 2024. A la_data after that gets an error, and the gap is also listed at /fiscal/acoperire.
GET
https://oneapi.ro/api/financiar/v1/fiscal/praguri
Query parameters
NameTypeDescriptionAccepted values
la_dataoptional
string | null
Optional,
YYYY-MM-DD; defaults to today.
e.g. 2024-06-15
tipoptional
string | null
Optional:
plafon_micro or prag_tva_scutire.
plafon_microprag_tva_scutire
How it behaves
- The micro-enterprise ceiling and the VAT exemption threshold at a given date, from the same shared registry as the rates.
- A separate route from
/fiscal/cotebecause it is a different question: a threshold says "past this point the regime changes", a rate says "this much is paid". Someone looking for a threshold does not want to filter through rates. - ⚠️
plafon_microhas a gap from 1 January 2025 — the registry holds no entry after 31.12.2024. A laterla_datareturns an error rather than the last known value. The gap is also listed explicitly at/fiscal/acoperire.
What it is for
- Checking whether a company still qualifies as a micro-enterprise at a given date.
- The threshold above which VAT registration becomes mandatory.
Response structure
FieldTypeDescription
data.la_data
string
The date the returned values are valid on.
data.valori[].indicator
string
The statistical indicator the value refers to.
data.valori[].valoare
string
The value published by the source for the combination above.
data.valori[].unitate
string
eur for the micro ceiling, lei for the VAT threshold — the thresholds are not all in the same currency.
data.valori[].de_la
string
Start of the covered interval.
data.valori[].pana_la
null
End of the covered interval, inclusive.
data.valori[].act_normativ
string
data.valori[].de_verificat
boolean
true when the value has not been confirmed against the text of the act.
meta.sursa
string
The official source the data comes from, with its licence where one is required.
meta.de_verificat
array
Which values used are not legally confirmed. Empty means all are.
meta.nota_acoperire
string
Why the total is a lower bound, in prose.
meta.total_e_limita_de_jos is the word to switch on in code.
meta.fara_date
data is null and this says why. The quote exists at the source, but our import is behind; the response says how far our data goes. For plafon_micro, any date from 2025 onwards.
meta.fara_date_cod
The short, STABLE word for the reason, for clients that branch on it in code:
fara_date is prose and may be rephrased, this is not.
Response examples
GEThttps://oneapi.ro/api/financiar/v1/fiscal/praguri
{
"data": {
"la_data": "2026-10-07",
"valori": [
{
"indicator": "plafon_micro",
"valoare": "100000",
"unitate": "eur",
"de_la": "2026-01-01",
"pana_la": null,
"act_normativ": "OUG 156/2024",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Legislaţia fiscală, curatată manual, cu act normativ pe fiecare valoare. Cotele, pragurile şi salariul minim se citesc din registrul comun `business_indicatori_fiscali`.",
"de_verificat": [],
"nota_acoperire": "Ce perioade acoperă fiecare set şi ce e neconfirmat: /financiar/v1/fiscal/acoperire."
}
}
GEThttps://oneapi.ro/api/financiar/v1/fiscal/praguri?la_data=2024-06-15
{
"data": {
"la_data": "2024-06-15",
"valori": [
{
"indicator": "plafon_micro",
"valoare": "500000",
"unitate": "eur",
"de_la": "2023-01-01",
"pana_la": "2024-12-31",
"act_normativ": "Legea 370/2022",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Legislaţia fiscală, curatată manual, cu act normativ pe fiecare valoare. Cotele, pragurile şi salariul minim se citesc din registrul comun `business_indicatori_fiscali`.",
"de_verificat": [],
"nota_acoperire": "Ce perioade acoperă fiecare set şi ce e neconfirmat: /financiar/v1/fiscal/acoperire."
}
}
GEThttps://oneapi.ro/api/financiar/v1/fiscal/praguri?tip=prag_tva_scutire
{
"data": {
"la_data": "2026-10-07",
"valori": [
{
"indicator": "prag_tva_scutire",
"valoare": "395000",
"unitate": "lei",
"de_la": "2025-09-01",
"pana_la": null,
"act_normativ": "Legea 141/2025",
"de_verificat": false
}
]
},
"meta": {
"sursa": "Legislaţia fiscală, curatată manual, cu act normativ pe fiecare valoare. Cotele, pragurile şi salariul minim se citesc din registrul comun `business_indicatori_fiscali`.",
"de_verificat": [],
"nota_acoperire": "Ce perioade acoperă fiecare set şi ce e neconfirmat: /financiar/v1/fiscal/acoperire."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.fiscal_referinta is not in the current plan. |
| 422 | validare | tip is not a threshold (rates are at /fiscal/cote) or la_data is not a date; detalii says which. |
| 429 | cota_depasita | The 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": "tip is not a threshold (rates are at /fiscal/cote) or la_data is not a date; detalii says which.",
"detalii": {
"la_data": [
"The value sent does not satisfy the parameter rule."
]
}
}
}