Business v1 / Firme
Financials in EUR
The company's balance sheets converted to euro at the central bank rate on each financial year's closing day — so the years are comparable with each other and with foreign data.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/financiar/eur
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
- This route does not require the company to be in the trade register. The Ministry of Finance also receives filings from entities outside it — associations, foundations, institutions: 103,953 entities, with 905,993 rows. Their financial statements are served normally, but
/firme/{cui}answers 404, because a trade-register profile genuinely does not exist.data.in_registru_onrctells you which case you are in, so the 404 on the profile does not look inconsistent. - When a company filed twice for the same year, the specialised set (the complete one) is served, not the generic
webmirror. If the two genuinely disagree on figures — 17 cases in the whole database, all in 2009 — the year carries aconflictfield naming the other family and the indicators that differ. The source gives neither a filing date nor a restatement marker, so we cannot say which figure is correct; we serve the more complete one and flag that a disagreement existed. - The same financial statements, with each value converted to EUR at the year-end rate (BNR) of that year. Each year also carries the rate used (
curs_eur), so the conversion is traceable. - Converting at each year's rate avoids the distortion of a single rate applied retroactively — a leu in 2015 is not worth a leu in 2024. For real comparisons across years, see also
/financiar/real.
What it is for
- Reporting to foreign partners or investors.
- Comparisons between companies from different countries.
Response structure
All fields below live inside data.
FieldTypeDescription
cui
integer
The tax ID.
in_registru_onrc
boolean
Whether the entity also has a profile at
/firme/{cui}. false for those filing with the Ministry of Finance without being in the trade register.
ani[]
object[]
The balance sheets by year, with each one's indicators.
ani[].conflict[].familie
The other filing submitted for the same year. Present only when the figures genuinely differ.
ani[].conflict[].indicatori[]
Codes of the indicators the two filings disagree on. Missing and zero do not count as a disagreement.
Response examples
GEThttps://oneapi.ro/api/business/v1/firme/6719278/financiar/eur
{
"data": {
"cui": 6719278,
"in_registru_onrc": true,
"ani": [
{
"an": 2008,
"tip": "SOCIETATI COMERCIALE CARE DEPUN BILANT LUNG, BILANT SCURT SI RAPORTARI ANUALE",
"familie": "web",
"caen": 4711,
"decodat": true,
"indicatori": [
{
"cod": "I1",
"denumire": "ACTIVE IMOBILIZATE - TOTAL",
"valoare": 111431788,
"valoare_eur": 27961404
}
],
"curs_eur": 3.9852
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/financiar/eur
{
"data": {
"cui": 14399840,
"in_registru_onrc": true,
"ani": [
{
"an": 2008,
"tip": "SOCIETATI COMERCIALE CARE DEPUN BILANT LUNG, BILANT SCURT SI RAPORTARI ANUALE",
"familie": "web",
"caen": 4754,
"decodat": true,
"indicatori": [
{
"cod": "I1",
"denumire": "ACTIVE IMOBILIZATE - TOTAL",
"valoare": 4533669,
"valoare_eur": 1137626
}
],
"curs_eur": 3.9852
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/financiar/eur
{
"data": {
"cui": 2054341,
"in_registru_onrc": true,
"ani": [
{
"an": 2008,
"tip": "SOCIETATI COMERCIALE CARE DEPUN BILANT LUNG, BILANT SCURT SI RAPORTARI ANUALE",
"familie": "web",
"caen": 1439,
"decodat": true,
"indicatori": [
{
"cod": "I1",
"denumire": "ACTIVE IMOBILIZATE - TOTAL",
"valoare": 9438768,
"valoare_eur": 2368455
}
],
"curs_eur": 3.9852
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/financiar/eur
{
"data": {
"cui": 24890577,
"in_registru_onrc": true,
"ani": [
{
"an": 2009,
"tip": "SOCIETATI COMERCIALE CARE DEPUN BILANT LUNG, BILANT SCURT SI RAPORTARI ANUALE",
"familie": "webblbssl",
"caen": 4619,
"decodat": true,
"indicatori": [
{
"cod": "I1",
"denumire": "ACTIVE IMOBILIZATE - TOTAL",
"valoare": 72827,
"valoare_eur": 17224
}
],
"curs_eur": 4.2282
}
]
}
}
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 | Company [{cui}] 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."
]
}
}
}