Identificatori v1 / Vies
VIES member states
The member states VIES accepts, with each one's country prefix and VAT number shape — before making a query that would come back with "unknown state".
GET
https://oneapi.ro/api/identificatori/v1/vies/state
Query parameters
This route accepts no query parameters.
How it behaves
- The VAT prefix is not always the country's ISO code. Greece uses
EL, notGR, andXIis Northern Ireland, which stayed in the EU VAT system for goods after Brexit. The response therefore gives both the prefix and the corresponding ISO code.
What it is for
- Check whether a VAT prefix belongs to the VIES system, before sending the code for verification.
- Populate a country picker in an intra-EU invoicing form.
Response structure
All fields below live inside data.
FieldTypeDescription
inregistrari
integer
How many records the response holds.
state[].prefix
string
The prefix used in the VAT number.
state[].cod_iso
string
The ISO 3166-1 country code, which may differ from the prefix.
state[].nume
string
The country name, in Romanian.
observatie
string
A note on how to read the response: a computation convention or a limit of the data.
Response examples
GEThttps://oneapi.ro/api/identificatori/v1/vies/state
{
"data": {
"inregistrari": 28,
"state": [
{
"prefix": "AT",
"cod_iso": "AT",
"nume": "Austria"
}
],
"observatie": "Prefixul din codul de TVA nu e mereu codul ISO al țării: Grecia folosește `EL`, iar `XI` e Irlanda de Nord, rămasă în sistemul TVA al UE pentru bunuri după Brexit."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 422 | validare | The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "validare",
"mesaj": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored."
}
}