oneapi
Sign in
Business v1 / Firme

Contact details

The company's contact details (phone, fax, e-invoicing, tax domicile, tax office) from ANAF.

GET
https://oneapi.ro/api/business/v1/firme/{cui}/contact

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

  • The website, emails and phones the company publishes on its own site are at /firme/{cui}/web (Pro plan).
  • The company's public contact details, as they appear in the sources. Coverage varies — many companies have no published phone or e-mail.
  • ⚠️ A company that is in the register but has no ANAF tax record answers 200 with data: null and meta.fara_date, NOT 404 — 15,785 cases out of 3,909,449 (0.4%). 404 is reserved for tax IDs that do not exist in the register. Until 30 Sep 2026 both returned the same 404, so a client could not tell a real 404 from "has no contact details".

What it is for

  • Autofilling phone and e-mail when creating a customer in a CRM.
  • Enriching a lead list with published contact details.
  • Checking that the contact details you hold match the public ones.

Response structure

All fields below live inside data.

FieldTypeDescription
cui integer The tax ID.
telefon string | null The phone number in the ANAF record.
fax string | null The fax number in the ANAF record.
e_factura boolean Enrolled in e-Invoicing.
domiciliu_fiscal string | null The fiscal domicile, in the form ANAF publishes.
organ_fiscal string | null The tax office the company belongs to.

Response examples

GEThttps://oneapi.ro/api/business/v1/firme/6719278/contact
{
    "data": {
        "cui": 6719278,
        "telefon": "0212246677",
        "fax": null,
        "e_factura": false,
        "domiciliu_fiscal": "MUNICIPIUL BUCUREŞTI, Sector 6 Mun. Bucureşti, Bld. Timişoara, nr. 26",
        "organ_fiscal": "Direcţia Generală de Administrare a Marilor Contribuabili"
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitThe company with tax ID [{cui}] was not found in the Trade Register. "Exists, but has no contact details" is NOT a 404 — it is a 200 with meta.fara_date.
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": {
            "cui": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}