Business v1 / Firme
Semnale de risc
Faptele publicate de autorităţi care contează pentru cine ar contracta cu firma — stare, inactivare
fiscală, datorii, situaţia ultimului bilanţ — fiecare cu punctajul şi explicaţia lui, plus ce NU s-a
putut verifica. ⚠️ Scorul nu vine cu etichetă de verdict: pragul îl alege cine afişează.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/risc
Parametri de cale
NumeTipDescriereExemplu
cuiobligatoriu
string
Codul de identificare fiscală al firmei, fără prefixul
RO (ex. 6719278).
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Semnalele de risc ale unei firme, adunate din datele pe care platforma le are deja: starea la registru, insolvenţa, datoriile la ANAF, sancţiunile, inactivitatea fiscală.
- ⚠️ Răspunsul NU poartă o etichetă de verdict („risc ridicat"). Dă cifra şi faptele din care e făcută, iar pragul îl alege cine afişează — un cuvânt de verdict ajunge în capturi de ecran rupt de semnalele care l-au produs.
- ⚠️ ABSENŢA DATELOR NU E RISC. O firmă fără bilanţ depus nu primeşte puncte pentru asta; apare în
necunoscut. Altfel scorul ar pedepsi firmele mici, care raportează mai puţin, şi ar recompensa cele despre care nu se publică nimic.
La ce folosește
- Trierea unui partener înainte de un contract, cu faptele la vedere.
- Decizia dacă merită cerut un document suplimentar:
necunoscutspune exact ce lipseşte. - Monitorizarea unui portofoliu de clienţi pe semnale, nu pe o etichetă.
Structura răspunsului
CâmpTipDescriere
data[].cui
integer
Codul de identificare fiscală, fără prefixul
RO.
data[].stare
string | null
data[].scor
integer
data[].semnale[]
mixed[]
data[].necunoscut[].tip
string
data[].necunoscut[].de_ce
string
data.cui
integer
Codul fiscal al firmei.
data.stare
object
Starea firmei la registrul comerţului, aşa cum o clasifică platforma — e contextul fără care scorul nu se citeşte.
data.scor
integer
Scorul, 0–100. ⚠️
0 înseamnă „niciun semnal găsit", NU „firmă bună": ce n-a putut fi verificat e în necunoscut. Semnalul cel mai greu dă baza, iar restul adaugă cel mult 15 puncte peste el — gravitatea nu se adună liniar, altfel trei fapte mărunte ar depăşi o insolvenţă.
data.semnale[]
array
Faptele găsite, fiecare cu tipul, greutatea şi sursa din care vine. Doar fapte publicate de autorităţi şi regăsite pentru CUI-ul cerut.
data.necunoscut[]
array
Ce NU s-a putut verifica, cu motivul. Nu e o notă de subsol, e jumătate din răspuns: un scor mic la o firmă despre care nu ştim nimic înseamnă altceva decât acelaşi scor la una verificată pe toate capetele. 42,6% din firme n-au niciun bilanţ depus.
meta.metoda
string
Metoda de calcul, în răspuns şi nu doar în documentaţie — un scor fără metodă e o opinie anonimă, iar cine îl afişează trebuie să poată spune de unde vine.
Exemple de răspuns
GEThttps://oneapi.ro/api/business/v1/firme/6719278/risc
{
"data": {
"cui": 6719278,
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"scor": 25,
"semnale": [
{
"tip": "datorii_anaf",
"puncte": 25,
"explicatie": "Firma apare pe lista datornicilor publicată de ANAF."
}
],
"necunoscut": []
},
"meta": {
"metoda": "Scorul se calculează DOAR din fapte publicate de autorităţi şi regăsite pentru firma asta. Absenţa datelor nu adaugă puncte — apare în `necunoscut`. Semnalul cel mai greu dă baza, iar restul adaugă cel mult 15 puncte peste el: gravitatea nu se adună liniar."
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/risc
{
"data": {
"cui": 14399840,
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"scor": 12,
"semnale": [
{
"tip": "profit_negativ",
"puncte": 12,
"explicatie": "Ultimul bilanț depus arată pierdere.",
"valoare": "bilanţul pe 2025"
}
],
"necunoscut": []
},
"meta": {
"metoda": "Scorul se calculează DOAR din fapte publicate de autorităţi şi regăsite pentru firma asta. Absenţa datelor nu adaugă puncte — apare în `necunoscut`. Semnalul cel mai greu dă baza, iar restul adaugă cel mult 15 puncte peste el: gravitatea nu se adună liniar."
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/risc
{
"data": {
"cui": 2054341,
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"scor": 100,
"semnale": [
{
"tip": "radiata",
"puncte": 100,
"explicatie": "Firma e radiată din registrul comerțului: nu mai există ca entitate.",
"valoare": "radiată"
}
],
"necunoscut": []
},
"meta": {
"metoda": "Scorul se calculează DOAR din fapte publicate de autorităţi şi regăsite pentru firma asta. Absenţa datelor nu adaugă puncte — apare în `necunoscut`. Semnalul cel mai greu dă baza, iar restul adaugă cel mult 15 puncte peste el: gravitatea nu se adună liniar."
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/risc
{
"data": {
"cui": 24890577,
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"scor": 0,
"semnale": [],
"necunoscut": []
},
"meta": {
"metoda": "Scorul se calculează DOAR din fapte publicate de autorităţi şi regăsite pentru firma asta. Absenţa datelor nu adaugă puncte — apare în `necunoscut`. Semnalul cel mai greu dă baza, iar restul adaugă cel mult 15 puncte peste el: gravitatea nu se adună liniar."
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 404 | negasit | CUI-ul nu există în registrul comerţului. |
| 422 | cui_invalid | CUI-ul nu are forma unui cod fiscal românesc (2–10 cifre). |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "cui_invalid",
"mesaj": "CUI-ul nu are forma unui cod fiscal românesc (2–10 cifre).",
"detalii": {
"cui": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}