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.
Getting started
- Submit a POST request to `/ws/tva` with an array of objects `{"cui": 123456, "data": "YYYY-MM-DD"}`.
- Read VAT status from `scpTVA` and fiscal inactivity flag from `statusInactivi`.
- Retain the registered name and company address for reconciliation with external registries.
Access and checks
- ANAF REST endpoint v8 ↗ · JSON
Sample inspected on 2026-09-07
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 / Column | Type | Description |
|---|---|---|
cui | integer | Unique Tax ID (without RO prefix) |
data | date (YYYY-MM-DD) | Query reference date |
denumire | text | Registered corporate legal name |
adresa | text | Complete registered office address |
scpTVA | boolean | Whether entity is registered for VAT |
statusInactivi | boolean | Fiscal inactivity flag |
splitTVA | boolean | Split 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.