Registrul fiscal al societăților — API ANAF
Serviciu web public pentru interogarea stării fiscale a agenților economici după codul unic de identificare (CUI): aplicare TVA, inactivitate fiscală, adrese și sedii.
Înainte de a folosi resursa
Versiunea documentată v9 primește cereri POST cu maximum 100 de CUI-uri și permite cel mult o cerere pe secundă. Răspunsul are listele found și notFound, cu obiecte imbricate. Nu stabilește bilanțuri contabile sau acționariat.
- Publicat de
- Agenția Națională de Administrare Fiscală
- Sursă
- Instituție publică
- Colecție
- Date publice
- Tip de resursă
- API
- Acoperire
- România
- Formate documentate
- JSON
- Licență / condiții
- Drepturi de clarificat
- Acces prin API
- API documentat
- Data examinării fișei
- 2026-10-22
- Ultima actualizare a resursei
- Necunoscută
- Audit tehnic al datelor
- Neefectuat
- Documentare
- Sursă consultată
Documentare
Documentația oficială v9 și un răspuns POST JSON pentru un CUI au fost inspectate la 22 octombrie 2026. Verificarea nu stabilește compatibilitatea v8 și nu este un audit complet al serviciului. Exemplul din dicționar folosește valori fictive.
Pagina citată documentează fișa. Verifică în sursa originală condițiile și versiunea înainte de reutilizare.
Cum începi
- Trimite o cerere POST la https://webservicesp.anaf.ro/api/PlatitorTvaRest/v9/tva cu lista de obiecte cui/data; respectă limita de 100 și o cerere pe secundă.
- În found[], citește identificarea din date_generale, TVA din inregistrare_scop_Tva și inactivitatea din stare_inactiv; verifică separat notFound.
- Pentru îmbinări, extrage found[].date_generale.cui într-o coloană separată; răspunsul nu este un tabel deja aplatizat.
Acces și verificări
- ANAF v9 — documentație și cerere POST ↗ · JSON
Exemplu inspectat la 2026-10-22
Exemple de cereri și condiții de acces
ANAF v9: POST, maximum 100 de CUI-uri pe cerere și cel mult o cerere pe secundă. Un răspuns JSON a fost inspectat la 22 octombrie 2026. Cele patru variante de cod nu au fost rulate integral în toate mediile.
curl --fail-with-body --silent --show-error --max-time 30 'https://webservicesp.anaf.ro/api/PlatitorTvaRest/v9/tva' \
-H 'Content-Type: application/json' \
--data '[{"cui":1590120,"data":"2026-10-21"}]' > anaf.json
jq '{found, notFound}' anaf.jsonimport json
import urllib.request
payload = [{"cui": 1590120, "data": "2026-10-21"}]
request = urllib.request.Request(
"https://webservicesp.anaf.ro/api/PlatitorTvaRest/v9/tva",
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json"}, method="POST"
)
with urllib.request.urlopen(request, timeout=30) as response:
data = json.load(response)
print(json.dumps({"found": data["found"], "notFound": data["notFound"]}, indent=2))library(httr2)
response <- request("https://webservicesp.anaf.ro/api/PlatitorTvaRest/v9/tva") |>
req_body_json(list(list(cui = 1590120, data = "2026-10-21"))) |>
req_timeout(30) |>
req_perform()
data <- resp_body_json(response)
str(data$found)-- First run the cURL example to save anaf.json.
-- found[] contains nested objects; this is an explicit projection.
SELECT item.date_generale.cui AS cui,
item.date_generale.denumire AS denumire,
item.inregistrare_scop_Tva.scpTVA AS scpTVA,
item.stare_inactiv.statusInactivi AS statusInactivi
FROM read_json_auto('anaf.json'), UNNEST(found) AS expanded(item);Dicționar de date și structura câmpurilor
ANAF v9 — căi JSON selectate din found[]; notFound conține CUI-urile negăsite
| Câmp / Coloană | Tip | Descriere |
|---|---|---|
found[].date_generale.cui | integer | Codul fiscal |
found[].date_generale.data | date (YYYY-MM-DD) | Data de referință |
found[].date_generale.denumire | text | Denumirea înregistrată |
found[].date_generale.adresa | text | Adresa fiscală |
found[].inregistrare_scop_Tva.scpTVA | boolean | Înregistrare în scopuri de TVA |
found[].stare_inactiv.statusInactivi | boolean | Inactivitate fiscală |
found[].inregistrare_SplitTVA.statusSplitTVA | boolean | Înscriere în sistemul de plată defalcată a TVA |
Exemplu cu valori fictive — structură JSON selectată
{
"found": [
{
"date_generale": {
"cui": 1234,
"data": "2026-10-21",
"denumire": "COMPANIE FICTIVĂ — EXEMPLU",
"adresa": "ADRESĂ FICTIVĂ"
},
"inregistrare_scop_Tva": {
"scpTVA": true
},
"stare_inactiv": {
"statusInactivi": false
},
"inregistrare_SplitTVA": {
"statusSplitTVA": false
}
}
],
"notFound": []
}Continuă cercetarea
Legături propuse editorial pentru orientare. Nu dovedesc integrarea tehnică sau compatibilitatea licențelor.