oneapi
Sign in
Business v1 / Firme

Company by EUID

Finds the company by its European Unique Identifier (EUID), the ROONRC.J40/7734/1992 form used across the interconnected EU registers.

GET
https://oneapi.ro/api/business/v1/firme/dupa-euid/{euid}

Path parameters

NameTypeDescriptionExample
euidrequired string European Unique Identifier of the company (e.g. ROONRC.J39/600/2006).

Query parameters

This route accepts no query parameters.

How it behaves

  • Finds the company by its EUID (European Unique Identifier, the BRIS identifier) and returns the profile.

What it is for

  • Linking a Romanian company to its record in the European BRIS system.
  • Reconciling data received from a partner in another member state.
  • Verifying a company's identity in a cross-border flow.

Response structure

All fields below live inside data.

FieldTypeDescription
cui integer The tax ID.
denumire string | null The name.
cod_inmatriculare string | null The trade register order number (J…).
euid string | null The European Unique Identifier of the company.
forma_juridica string | null Legal form (SRL, SA, PFA…).
stare string | null The company status, as an object: denumire is the raw ONRC text (107 distinct values in use), categorie is our classification into 7 buckets — activa, suspendata, dizolvata, lichidare, radiata, insolventa, alta — which is what you filter or group by. cod is the ONRC code of the status.
data_inmatriculare string | null The trade register incorporation date.
sediu.raw[] string | integer The registered office address as the source writes it, field by field; empty keys are omitted.
sediu.rezolvat.localitate_id integer The internal locality id in Locations.
sediu.rezolvat.localitate string The locality.
sediu.rezolvat.cod_siruta integer | null The locality SIRUTA code — chainable to /api/locations/v1.
sediu.rezolvat.uat string | null The administrative-territorial unit.
sediu.rezolvat.judet string | null The county.
sediu.rezolvat.regiune string | null The development region.
sediu.rezolvat.cod_nuts string | null The NUTS code of the territorial unit.
sediu.rezolvat.populatie integer | null The locality population (census).
sediu.rezolvat.strada_id integer | null The street id in Locations — chainable to /api/locations/v1/strazi/{id}.
sediu.rezolvat.strada string | null The street.
sediu.rezolvat.potrivire[] string How confident the link to the register is, for locality and for street.
sediu.rezolvat.coordonate.lat number Latitude, in decimal degrees (WGS 84).
sediu.rezolvat.coordonate.lng number Longitude, in decimal degrees (WGS 84).
sediu.rezolvat.coordonate.precizie string ⚠️ How fine the point is, in four steps that are NOT interchangeable: numar (the OSM address point, matched exactly on the house number in the register — 1,308,114 companies), numar_aproximativ (the same kind of point, matched only on the integer part: "4A" placed at "4" — 115,040 companies), strada (street centroid) and localitate (the rest). Only drop a pin for the first two; a pin on strada claims a precision we do not have.
caen_principal.cod string The primary CAEN code.
caen_principal.denumire string | null The name of the primary activity.
caen_principal.versiune string The CAEN revision the code is expressed in.
fiscal.platitor_tva boolean VAT-registered as of the last sync.
fiscal.tva_la_incasare boolean Applies VAT on collection.
fiscal.split_tva boolean Applies split VAT.
fiscal.inactiv_fiscal boolean Declared fiscally inactive.
fiscal.e_factura boolean Enrolled in e-Invoicing.
fiscal.radiata boolean The company is struck off.
prezente[] mixed Which other datasets the company appears in (financials, procurement, registers…).

Response examples

GEThttps://oneapi.ro/api/business/v1/firme/dupa-euid/ROONRC.J40/7734/1992
{
    "data": {
        "cui": 3790028,
        "denumire": "TAI PAN 15 LTD IMPORT EXPORT SRL",
        "cod_inmatriculare": "J40/7734/1992",
        "euid": "ROONRC.J40/7734/1992",
        "forma_juridica": "SRL",
        "stare": {
            "cod": "1084",
            "denumire": "radiată",
            "categorie": "radiata"
        },
        "data_inmatriculare": "1992-03-31",
        "sediu": {
            "raw": {
                "judet": "Bucureşti",
                "localitate": "Bucureşti Sectorul 5",
                "strada": "Str. SEBASTIAN",
                "numar": "11",
                "bloc": "S30",
                "scara": "A",
                "etaj": "8",
                "apartament": "25",
                "sector": 5,
                "cod_postal": "63052"
            },
            "rezolvat": {
                "localitate_id": 13754,
                "localitate": "București Sectorul 5",
                "cod_siruta": 179187,
                "uat": "București",
                "judet": "București",
                "regiune": "București-Ilfov",
                "cod_nuts": "RO321",
                "populatie": 240288,
                "strada_id": null,
                "strada": null,
                "potrivire": {
                    "loc": "exact",
                    "str": "none"
                },
                "coordonate": {
                    "lat": 44.435278,
                    "lng": 26.102778,
                    "precizie": "localitate"
                }
            }
        },
        "caen_principal": null,
        "fiscal": {
            "platitor_tva": false,
            "tva_la_incasare": false,
            "split_tva": false,
            "inactiv_fiscal": false,
            "e_factura": false,
            "radiata": false
        },
        "prezente": {
            "nr_persoane": 0,
            "ani_financiar": [],
            "nr_achizitii": 0,
            "registre": []
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitNo company with the EUID [{euid}].
422validareThe route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.
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": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.",
        "detalii": {
            "euid": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}