Business v1 / Firme
Tax status
A company's complete tax status (ANAF): VAT (standard / on collection / split, with their periods), tax inactivation, e-invoicing enrolment, striking off, registration dates, NACE code, tax office and contact details.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/fiscal
Path parameters
NameTypeDescriptionExample
cuirequired
string
The company tax identification number, without the
RO prefix (e.g. 6719278).
Query parameters
This route accepts no query parameters.
How it behaves
- "Has none" is an answer, not an error. When the company exists but has nothing the route asks for, the response is
200withdata: nulland the reason inmeta.fara_date.404only means the company (tax ID) does not exist — that way you can tell the two apart and cache the negative answer. - The tax status from ANAF, grouped by theme: VAT (payer, cash-basis, split), fiscal inactivity, e-Invoicing, deregistration. The source is the official ANAF API.
- The history of tax-status changes is at
/firme/{cui}/fiscal/istoric; the tax-vector declarations at/firme/{cui}/vector-fiscal.
What it is for
- Deciding whether to invoice with or without VAT, based on the partner's official status.
- Checking tax inactivity before deducting an expense.
- Finding out whether the partner is enrolled in e-Invoicing before sending documents.
Response structure
FieldTypeDescription
data.cui
integer
The tax ID.
data.tva.platitor
boolean
VAT-registered.
data.tva.de_la
string | null
Since when it is registered for VAT.
data.tva.pana_la
string | null
Until when it was registered for VAT.
data.tva.la_incasare.activ
boolean
Is active.
data.tva.la_incasare.de_la
string | null
Since when VAT on collection applies.
data.tva.la_incasare.pana_la
string | null
Until when VAT on collection applied.
data.tva.la_incasare.tip
string | null
The type.
data.tva.split.activ
boolean
Is active.
data.tva.split.de_la
string | null
Since when split VAT applies.
data.tva.split.anulare
string | null
The date split VAT was cancelled.
data.inactiv.este_inactiv
boolean
Declared fiscally inactive.
data.inactiv.data_inactivare
string | null
The date inactivity was declared.
data.inactiv.data_reactivare
string | null
The reactivation date.
data.inactiv.data_publicare
string | null
The date of publication in the inactive taxpayers register.
data.e_factura.inrolat
boolean
Enrolled in e-Invoicing.
data.e_factura.de_la
string | null
Since when it is enrolled in e-Invoicing.
data.radiere.radiata
boolean
The company is struck off.
data.radiere.data
string | null
The strike-off date.
data.caen.cod
string
The code.
data.caen.denumire
string | null
The name.
data.caen.versiune
string
The nomenclature revision.
data.organ_fiscal
string | null
The tax office the company belongs to.
data.domiciliu_fiscal
string | null
The fiscal domicile, in the form ANAF publishes.
data.contact.telefon
string
The phone number in the ANAF record.opțional
data.contact.fax
string
The fax number in the ANAF record.opțional
data.verificat_anaf_la
string | null
When we last checked the status at ANAF.
meta.fara_date
Only when the response is empty: why there is no data (for instance "Firma nu are cod LEI înregistrat la GLEIF."). Absent when
data is filled in.
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/business/v1/firme/6719278/fiscal
{
"data": {
"cui": 6719278,
"tva": {
"platitor": true,
"de_la": "1995-01-04",
"pana_la": null,
"la_incasare": {
"activ": false,
"de_la": null,
"pana_la": null,
"tip": null
},
"split": {
"activ": false,
"de_la": null,
"anulare": null
}
},
"inactiv": {
"este_inactiv": false,
"data_inactivare": null,
"data_reactivare": null,
"data_publicare": null
},
"e_factura": {
"inrolat": false,
"de_la": null
},
"radiere": {
"radiata": false,
"data": null
},
"inregistrare": {
"data": "1995-01-05",
"stare": "TRANSFER(SOSIRE) din data 19.08.2016",
"forma_juridica": "SOCIETATE COMERCIALĂ CU RĂSPUNDERE LIMITATĂ",
"forma_proprietate": "PROPR.PRIVATA-CAPITAL PRIVAT STRAIN",
"forma_organizare": "PERSOANA JURIDICA"
},
"cod_caen": {
"cod": "4711",
"denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
"versiune": "CAEN Rev.2"
},
"organ_fiscal": "Direcţia Generală de Administrare a Marilor Contribuabili",
"domiciliu_fiscal": "MUNICIPIUL BUCUREŞTI, Sector 6 Mun. Bucureşti, Bld. Timişoara, nr. 26",
"contact": {
"telefon": "0212246677"
},
"verificat_anaf_la": "2026-08-16 00: 00: 00"
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/fiscal
{
"data": {
"cui": 14399840,
"tva": {
"platitor": true,
"de_la": "2002-02-01",
"pana_la": null,
"la_incasare": {
"activ": false,
"de_la": null,
"pana_la": null,
"tip": null
},
"split": {
"activ": false,
"de_la": null,
"anulare": null
}
},
"inactiv": {
"este_inactiv": false,
"data_inactivare": null,
"data_reactivare": null,
"data_publicare": null
},
"e_factura": {
"inrolat": false,
"de_la": null
},
"radiere": {
"radiata": false,
"data": null
},
"inregistrare": {
"data": "2002-01-23",
"stare": "INREGISTRAT din data 29.08.2006",
"forma_juridica": "SOCIETATE COMERCIALĂ PE ACŢIUNI",
"forma_proprietate": "PROPR.PRIVATA-CAPITAL PRIVAT AUTOHTON SI STRAIN",
"forma_organizare": "PERSOANA JURIDICA"
},
"cod_caen": {
"cod": "4754",
"denumire": "Comerț cu amănuntul al articolelor și aparatelor electrocasnice, în magazine specializate",
"versiune": "CAEN Rev.2"
},
"organ_fiscal": "Direcţia Generală de Administrare a Marilor Contribuabili",
"domiciliu_fiscal": "MUNICIPIUL BUCUREŞTI, Sector 2 Mun. Bucureşti, Str. Gara Herăstrău, nr. 6",
"contact": [],
"verificat_anaf_la": "2026-08-16 00: 00: 00"
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/fiscal
{
"data": {
"cui": 2054341,
"tva": {
"platitor": true,
"de_la": "1993-07-01",
"pana_la": "2025-05-13",
"la_incasare": {
"activ": false,
"de_la": null,
"pana_la": null,
"tip": null
},
"split": {
"activ": false,
"de_la": null,
"anulare": null
}
},
"inactiv": {
"este_inactiv": false,
"data_inactivare": "2025-05-13",
"data_reactivare": "2025-06-30",
"data_publicare": "2025-05-13"
},
"e_factura": {
"inrolat": false,
"de_la": null
},
"radiere": {
"radiata": false,
"data": null
},
"inregistrare": {
"data": "1992-11-29",
"stare": "TRANSFER(SOSIRE) din data 30.04.2024",
"forma_juridica": "SOCIETATE COMERCIALĂ PE ACŢIUNI",
"forma_proprietate": "PROPR.PRIVATA-CAPITAL PRIVAT AUTOHTON",
"forma_organizare": "PERSOANA JURIDICA"
},
"cod_caen": {
"cod": "1410",
"denumire": "Fabricarea articolelor de îmbrăcăminte prin tricotare sau croșetare",
"versiune": "CAEN Rev.3"
},
"organ_fiscal": "Administraţia Judeţeană a Finanţelor Publice Iaşi",
"domiciliu_fiscal": "IAŞI, Mun. Iaşi, Aleea Strugurilor, nr. 98",
"contact": {
"telefon": "0233743401",
"fax": "0233744490"
},
"verificat_anaf_la": "2026-08-17 00: 00: 00"
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/fiscal
{
"data": {
"cui": 24890577,
"tva": {
"platitor": true,
"de_la": "2009-01-06",
"pana_la": null,
"la_incasare": {
"activ": false,
"de_la": null,
"pana_la": null,
"tip": null
},
"split": {
"activ": false,
"de_la": null,
"anulare": null
}
},
"inactiv": {
"este_inactiv": false,
"data_inactivare": null,
"data_reactivare": null,
"data_publicare": null
},
"e_factura": {
"inrolat": true,
"de_la": "2022-08-01"
},
"radiere": {
"radiata": false,
"data": null
},
"inregistrare": {
"data": "2008-12-19",
"stare": "INREGISTRAT din data 18.12.2008",
"forma_juridica": "SOCIETATE COMERCIALĂ CU RĂSPUNDERE LIMITATĂ",
"forma_proprietate": "PROPR.PRIVATA-CAPITAL PRIVAT AUTOHTON",
"forma_organizare": "PERSOANA JURIDICA"
},
"cod_caen": {
"cod": "4619",
"denumire": "Intermedieri în comerțul cu produse diverse",
"versiune": "CAEN Rev.2"
},
"organ_fiscal": "Unitatea Fiscală Municipală Gheorgheni",
"domiciliu_fiscal": "HARGHITA, Mun. Gheorgheni, Str. Pompierilor, nr. 118",
"contact": {
"telefon": "0744397587"
},
"verificat_anaf_la": "2026-08-16 00: 00: 00"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | The company with tax ID [{cui}] was not found. |
| 422 | validare | The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored. |
| 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": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.",
"detalii": {
"cui": [
"The value sent does not satisfy the parameter rule."
]
}
}
}