Open knowledge
Romania
Public data / API

Company fiscal registry — ANAF API

Public web service to query taxpayer fiscal status by unique identification code (CUI): VAT registration, fiscal inactivity, addresses and headquarters.

Before you use this resource

Queries require a POST request containing at most 500 CUI numbers per batch. Financial balance sheets and ownership records are not exposed (they belong to ONRC and Ministry of Finance).

Published by
National Agency for Fiscal Administration
Source
Public institution
Collection
Public data
Resource type
API
Coverage
Romania
Documented formats
JSON
Licence / terms
Rights need checking
API access
Documented API
Record review date
2026-09-07
Last resource update
Unknown
Technical data audit
Not performed
Documentation
Source reviewed

Documentation

Endpoint v8 verified via test POST with valid CUI; JSON response returns complete fiscal identification structure.

The cited page documents this record. Check the original source for terms and versions before reuse.

webservicesp.anaf.ro ↗

Getting started

  1. Submit a POST request to `/ws/tva` with an array of objects `{"cui": 123456, "data": "YYYY-MM-DD"}`.
  2. Read VAT status from `scpTVA` and fiscal inactivity flag from `statusInactivi`.
  3. Retain the registered name and company address for reconciliation with external registries.

Access and checks

Direct API queries

curl -s -X POST 'https://webservicesp.anaf.ro/PlatitorTvaRest/api/v8/ws/tva' \
  -H "Content-Type: application/json" \
  -d '[{"cui":1590120,"data":"2026-09-01"}]' | jq .
import urllib.request
import json

url = "https://webservicesp.anaf.ro/PlatitorTvaRest/api/v8/ws/tva"
payload = json.dumps([{"cui":1590120,"data":"2026-09-01"}]).encode("utf-8")
req = urllib.request.Request(
    url, data=payload,
    headers={"Content-Type": "application/json", "User-Agent": "CunoastereDeschisa/1.7"}
)
with urllib.request.urlopen(req) as resp:
    print(resp.read().decode("utf-8")[:500])
library(httr2)

resp <- request("https://webservicesp.anaf.ro/PlatitorTvaRest/api/v8/ws/tva") |>
  req_body_raw('[{"cui":1590120,"data":"2026-09-01"}]', "application/json") |>
  req_perform()
data <- resp_body_json(resp)
str(data)
-- DuckDB (save response via cURL, then query):
-- 1. curl -s -X POST 'https://webservicesp.anaf.ro/PlatitorTvaRest/api/v8/ws/tva' -H "Content-Type: application/json" -d '[{"cui":1590120,"data":"2026-09-01"}]' > data.json
-- 2. DuckDB:
INSTALL httpfs; LOAD httpfs;
SELECT * FROM read_json_auto('data.json');
Executable query snippets for command line, data pipelines, or DuckDB.

Data dictionary and field schema

Response schema — ANAF fiscal registry API v8

Field / ColumnTypeDescription
cuiintegerUnique Tax ID (without RO prefix)
datadate (YYYY-MM-DD)Query reference date
denumiretextRegistered corporate legal name
adresatextComplete registered office address
scpTVAbooleanWhether entity is registered for VAT
statusInactivibooleanFiscal inactivity flag
splitTVAbooleanSplit VAT payment mechanism registration
Sample real record (JSON)
{
  "cui": 1590120,
  "data": "2026-09-01",
  "denumire": "COMPANIA EXEMPLU SRL",
  "adresa": "MUNICIPIUL BUCURESTI, SECTOR 1...",
  "scpTVA": true,
  "statusInactivi": false,
  "splitTVA": false
}

Continue your research

Editorial suggestions for discovery. These links do not establish technical integration or licence compatibility.

Top ↑