Identificatori v1 / Identificatori
Recognised types
The catalogue of identifiers we validate — tax ID, personal number, IBAN, LEI, EORI, VAT number and the rest — each with its label, expected shape and whether validation checks its check digit.
GET
https://oneapi.ro/api/identificatori/v1/tipuri
Query parameters
This route accepts no query parameters.
How it behaves
- The list order is the SPECIFICITY order used for automatic detection: types with rigid structure (VIN, LEI, ISIN) are tried before permissive ones (Romanian VAT number). It is neither alphabetical nor by importance.
- Validation is MATHEMATICAL. It confirms an identifier is well formed — not that the entity behind it exists. A correct IBAN can belong to a closed account, and a well-formed BIC can belong to a bank that does not exist.
- The only type flagged
date_personaleis the personal numeric code, and it has separate rules: POST only, no cache, no retention, excluded from batches and from automatic detection.
What it is for
- Find out what you can validate and under which standard, before writing the first integration.
- Populate a type picker in a data-cleaning interface.
- Check which types are treated as personal data, so you know which rules apply.
Response structure
All fields below live inside data.
FieldTypeDescription
inregistrari
integer
How many records the response holds.
tipuri[].cod
string
The code used in routes and in the
tip parameter.
tipuri[].eticheta
string
The human-readable name.
tipuri[].standard
string
The standard or legal act the rule comes from.
tipuri[].rezumat
string
What is actually checked, and what is not.
tipuri[].date_personale
boolean
true only for the personal numeric code, which has separate access rules.
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/tipuri
{
"data": {
"inregistrari": 10,
"tipuri": [
{
"cod": "vin",
"eticheta": "VIN — serie de caroserie",
"standard": "ISO 3779 / ISO 3780",
"rezumat": "17 caractere, fără I, O și Q. Decodare parțială: structură, cifră de control, an-model, regiune.",
"date_personale": false
}
],
"observatie": "Validarea e MATEMATICĂ: confirmă că un identificator e bine format, nu că entitatea din spatele lui există. Singura rută care întreabă o sursă externă e `/vies/*`."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | modul_interzis | The token has no access to the route's module. |
| 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."
}
}