Cunoaștere deschisă
România
Date publice / API

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.

static.anaf.ro ↗

Cum începi

  1. 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ă.
  2. În found[], citește identificarea din date_generale, TVA din inregistrare_scop_Tva și inactivitatea din stare_inactiv; verifică separat notFound.
  3. Pentru îmbinări, extrage found[].date_generale.cui într-o coloană separată; răspunsul nu este un tabel deja aplatizat.

Acces și verificări

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.

Documentația folosită ↗

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.json
import 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ăTipDescriere
found[].date_generale.cuiintegerCodul fiscal
found[].date_generale.datadate (YYYY-MM-DD)Data de referință
found[].date_generale.denumiretextDenumirea înregistrată
found[].date_generale.adresatextAdresa fiscală
found[].inregistrare_scop_Tva.scpTVAbooleanÎnregistrare în scopuri de TVA
found[].stare_inactiv.statusInactivibooleanInactivitate fiscală
found[].inregistrare_SplitTVA.statusSplitTVAbooleanÎ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.