Business v1 / Firme
Companies in bulk
The summaries of several companies at once. JSON body: { "cui": [123, 456, ...] } (50 at most). Returns the companies found plus the list of tax ids not found.
POST
https://oneapi.ro/api/business/v1/firme/batch
Request body
Sent as JSON in the request body (Content-Type: application/json) — not in the query string.
NameTypeDescriptionAccepted values
cuioptional
array | null
List of tax IDs (max. 50), in the request body.
Three codes
Request body
{
"cui": [
6719278,
14399840,
2054341
]
}
Cu prefix RO, amestecat
Request body
{
"cui": [
"RO6719278",
"199150"
]
}
Cu intrări necitibile — fiecare primește un motiv
Request body
{
"cui": [
6719278,
"abc",
99999999999
]
}
Două firme cu fonduri și datorii
Request body
{
"cui": [
199150,
35333601
]
}
Query parameters
This route accepts no query parameters.
How it behaves
- Takes a list of tax IDs and returns the summary profiles found plus the list of codes not found — for bulk validation and enrichment, without one call per company.
- The method is
POSTbecause the list of codes can be long and has no business in a query string (logs, telemetry, history). The limit is 50 codes per request.
What it is for
- Validating a list of customers (existence, status, VAT).
- Bulk-enriching a CRM starting from tax IDs.
Response structure
All fields below live inside data.
FieldTypeDescription
gasite[].cui
integer
The tax ID of the company found.
gasite[].denumire
string | null
The company name.
gasite[].cod_inmatriculare
string | null
The trade register order number (J…).
gasite[].forma_juridica
string | null
Legal form (SRL, SA, PFA…).
gasite[].stare
string | null
Company status (active, struck off…).
gasite[].data_inmatriculare
string | null
The trade register incorporation date.
gasite[].sediu.judet
string
The county of the registered office.
gasite[].sediu.localitate
string
The locality of the registered office.
gasite[].sediu.cod_siruta
integer
The locality SIRUTA code — chainable to /api/locations/v1.
gasite[].caen_principal.cod
string
The primary CAEN code.
gasite[].caen_principal.denumire
string | null
The name of the primary activity.
gasite[].fiscal.tva
boolean
VAT-registered.
gasite[].fiscal.inactiv
boolean
Declared fiscally inactive.
gasite[].fiscal.e_factura
boolean
Enrolled in e-Invoicing.
gasite[].financiar
object | null
The latest filed balance sheet (year, turnover, net profit, employees);
null for companies without one — sole traders, new companies —, not zero.
gasite[].financiar.an
integer
The balance-sheet year.
gasite[].financiar.cifra_afaceri
number | null
Net turnover, in lei.
gasite[].financiar.profit_net
number | null
Net profit, in lei; negative = loss.
gasite[].financiar.salariati
integer | null
The average number of employees.
negasite[]
integer[]
The requested tax IDs that do not exist in the register — reported, not silently dropped.
Response examples
body: {"cui": [6719278, 14399840, 2054341]}
POSThttps://oneapi.ro/api/business/v1/firme/batch
{
"data": {
"gasite": [
{
"cui": 2054341,
"denumire": "SMIRODAVA S.A.",
"cod_inmatriculare": "J27/24/1991",
"forma_juridica": "SA",
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"data_inmatriculare": "1991-01-22",
"sediu": {
"judet": "Neamț",
"localitate": "Roman",
"cod_siruta": 120879
},
"caen_principal": {
"cod": "1410",
"denumire": "Fabricarea articolelor de îmbrăcăminte prin tricotare sau croșetare"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 1177675,
"profit_net": 4974,
"salariati": 3
}
}
],
"negasite": [],
"invalide": []
}
}
body: {"cui": ["RO6719278", "199150"]}
POSThttps://oneapi.ro/api/business/v1/firme/batch
{
"data": {
"gasite": [
{
"cui": 199150,
"denumire": "FARMEC SA",
"cod_inmatriculare": "J1991000014122",
"forma_juridica": "SA",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "1991-01-16",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "2042",
"denumire": "Fabricarea parfumurilor și a produselor cosmetice (de toaletă)"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 399161177,
"profit_net": 13766048,
"salariati": 719
}
}
],
"negasite": [],
"invalide": []
}
}
body: {"cui": [6719278, "abc", 99999999999]}
POSThttps://oneapi.ro/api/business/v1/firme/batch
{
"data": {
"gasite": [
{
"cui": 6719278,
"denumire": "MEGA IMAGE SRL",
"cod_inmatriculare": "J1994027872407",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "1994-12-27",
"sediu": {
"judet": "București",
"localitate": "București Sectorul 6",
"cod_siruta": 179196
},
"caen_principal": {
"cod": "4711",
"denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 12256333315,
"profit_net": 124841094,
"salariati": 10171
}
}
],
"negasite": [],
"invalide": [
{
"valoare": "abc",
"motiv": "Nu conţine cifre."
}
]
}
}
body: {"cui": [199150, 35333601]}
POSThttps://oneapi.ro/api/business/v1/firme/batch
{
"data": {
"gasite": [
{
"cui": 199150,
"denumire": "FARMEC SA",
"cod_inmatriculare": "J1991000014122",
"forma_juridica": "SA",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "1991-01-16",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "2042",
"denumire": "Fabricarea parfumurilor și a produselor cosmetice (de toaletă)"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 399161177,
"profit_net": 13766048,
"salariati": 719
}
}
],
"negasite": [],
"invalide": []
}
}
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. |
| 422 | validare | An undeclared parameter or a value that fails validation. The offending field is in detalii. |
| 422 | cui_lipsa | Send a cui array with at least one tax ID. |
| 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": "An undeclared parameter or a value that fails validation. The offending field is in detalii."
}
}