Salta ai contenuti

Valida un codice fiscale italiano e lo confronta con i dati anagrafici

POST
/v1/validate/fiscal-code
curl --request POST \
--url https://api.vimine.network/v1/validate/fiscal-code \
--header 'Content-Type: application/json' \
--data '{ "code": "example", "first_name": "example", "last_name": "example", "gender": "M", "date": "2026-04-15", "place": "example", "country": "example" }'

Struttura + carattere di controllo; con first_name / last_name / date / place o country anche la coerenza anagrafica — e ciò che il codice stesso contiene. Il modulo di iscrizione fa lo stesso controllo, senza il sesso (lì non viene confrontato).

Tipo di contenutoapplication/json
object
code
obbligatorio

Codice fiscale (16 caratteri)

string
first_name
string
last_name
string
gender
string
Valori ammessi: M F
date

Data di nascita

string formato: date
place

Luogo di nascita: il comune, per chi è nato in Italia

string
country

Stato di nascita, ISO 3166-1 alpha-2. Un codice contiene il comune per chi è nato in Italia e solo lo STATO per tutti gli altri: qualsiasi valore diverso da IT viene confrontato con quello Stato e place viene ignorato

string
>= 2 caratteri <= 2 caratteri

Esito della validazione

Tipo di contenutoapplication/json
object
valid
boolean
error
string
nullable
Valori ammessi: invalid mismatch
mismatches

Cosa non concorda con il codice, quando error è mismatch

Array<string>
Valori ammessi: lastName firstName gender date place
hints

names_swapped: il codice torna scambiando cognome e nome

Array<string>
Valori ammessi: names_swapped
birth_date

La data di nascita che il codice stesso contiene

string formato: date
nullable
birth_country

Lo Stato di nascita che il codice stesso contiene, ISO 3166-1 alpha-2 (IT per un comune)

string
nullable
Esempio
{
"error": "invalid",
"mismatches": [
"lastName"
],
"hints": [
"names_swapped"
]
}

Richiesta non valida

Tipo di contenutoapplication/problem+json
object
type
obbligatorio
string formato: uri
title
obbligatorio
string
status
obbligatorio
integer
detail
string
code
obbligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Esempiogenerato
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Non trovato

Tipo di contenutoapplication/problem+json
object
type
obbligatorio
string formato: uri
title
obbligatorio
string
status
obbligatorio
integer
detail
string
code
obbligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Esempiogenerato
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Troppe richieste

Tipo di contenutoapplication/problem+json
object
type
obbligatorio
string formato: uri
title
obbligatorio
string
status
obbligatorio
integer
detail
string
code
obbligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Esempiogenerato
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Errore interno

Tipo di contenutoapplication/problem+json
object
type
obbligatorio
string formato: uri
title
obbligatorio
string
status
obbligatorio
integer
detail
string
code
obbligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Esempiogenerato
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}