Romania ANAF VAT & Taxpayer Status Check by CUI
Pricing
from $0.00005 / actor start
Romania ANAF VAT & Taxpayer Status Check by CUI
Check Romanian CUI numbers against the official ANAF register as of a chosen date. One row per CUI: VAT periods, VAT on cash, inactive, split VAT, e-Invoice registry.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Michal Pšenčík
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Check Romanian CUI (fiscal code) numbers against ANAF's official public register as of a date you choose. You get one flat row per CUI that ANAF found: VAT registration and its full period history, VAT on cash, inactive taxpayer status, split VAT and the RO e-Factura registry, plus the name, fiscal address and registration details as ANAF publishes them.
Useful for keeping a receipt of what ANAF said about a supplier list on an invoice date, or a monthly sweep of Romanian counterparties.
Input
| Field | What it does |
|---|---|
| CUI numbers | 1 to 300 CUIs, as text or numbers. RO prefixes and spaces are removed. |
| As-of date | YYYY-MM-DD from 2015-01-01 to today. Empty means today in Romania. |
| Maximum rows | The most rows to store (default 300). |
| Pause between requests | Advanced; at least 1.2 s, because ANAF allows one request per second. |
{ "cuis": ["14399840", "RO 1590082", 2816464], "asOfDate": "2026-10-22" }
Each CUI is checked locally first: it must be 2 to 10 digits without a leading zero and pass the CUI check digit. Values that fail are reported in the run summary and never sent. Duplicates are checked once. ANAF accepts any date silently (a wrong format becomes another year), so the date is validated before anything is sent.
Output
One row per found CUI, in the order you listed them. Example (Dante International, as of 22 Oct 2026):
{"id": "ro-anaf-vat-status:v1:14399840:2026-10-22","cui": "14399840","asOfDate": "2026-10-22","name": "DANTE INTERNATIONAL SA","registrationState": "INREGISTRAT din data 29.08.2006","registrationDate": "2002-01-23","vatRegisteredAsOf": true,"vatPeriods": [{ "startDate": "2002-02-01", "endDate": null, "cancellationRecordedDate": null, "cancellationBasis": null }],"vatOnCashAsOf": false,"inactiveTaxpayerAsOf": false,"splitVatAsOf": false,"eInvoiceRegistryAsOf": false,"eInvoiceRegistryDate": null}
Rows also carry fiscalAddress, tradeRegisterNo, caenCode, legalForm, the detail objects vatOnCash, inactive
and splitVat, and provenance: sourceUrl, sourceResponseSha256 (of ANAF's whole answer), sourceResponseDateHeader,
fetchedAt and an observationHash of the data fields. Empty ANAF fields are null.
The ...AsOf flags are ANAF's flags for the requested date. The other dates are exported exactly as that answer sent
them; for example the e-Invoice registry date can be empty for a past date and filled for today. Phone, fax, postal
codes, bank accounts and ownership fields are never exported. The actor reports what the register says and draws no
legal conclusion from it.
Run summary
The key-value store record SUMMARY (free) lists every input position with its outcome: delivered, not_found,
invalid_cui, invalid_cui_checksum, or a failure such as error, source_schema_changed,
not_attempted_source_stop, not_attempted_deadline, not_delivered_max_items, not_stored_budget, not_stored
or delivery_uncertain. complete is true only when every CUI got a definitive answer and every found row was stored.
It also carries asOfDate, counts, requests made and any errors.
Pricing
Pay per event: $0.002 per stored row (a CUI that ANAF found) and $0.00005 per run start. Each row is billed once, when it is stored; rows already stored stay billed even if the run later fails or stops. Errors, rows not stored, not-found, invalid or filtered inputs and the SUMMARY carry no item fee. The start event applies to every run, including failed and empty ones. Checking the same CUIs again bills again: the actor keeps no state between runs.
Example: 3 found CUIs cost $0.00605, 300 found cost $0.60005.
Limits
- Source: ANAF's public web service
PlatitorTvaRest/v9/tva, no key. At most 100 CUIs per request, at least 1.2 s between requests, one request at a time, a 240 s run deadline. - If ANAF refuses (403, 429, an HTML rejection page) the run stops at once and reports it; there is no proxy or retry around a block. Server errors and timeouts are retried twice.
- The CUI check digit rule is empirical; a real CUI it rejected would show as
invalid_cui_checksumin the summary. - Dates before 2015 and positive split-VAT records were not verified.