oneapi
Sign in
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 POST because 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": []
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareAn undeclared parameter or a value that fails validation. The offending field is in detalii.
422cui_lipsaSend a cui array with at least one tax ID.
429cota_depasitaThe 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."
    }
}