Salta ai contenuti

Crea un account Vimine per una persona (lato server)

POST
/v1/signup
curl --request POST \
--url https://api.vimine.network/v1/signup \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "email": "hello@example.com", "first_name": "example", "last_name": "example", "phone": "example", "dob": "2026-04-15", "gender": "M", "birthplace": "example", "birth_country": "example", "codicefiscale": "example", "codicefiscale_confirmed": true, "locale": "example", "accept_terms": { "version": "example", "sha256": "example" }, "acknowledge_privacy": { "version": "example", "sha256": "example" } }'

Crea l’identità e invia alla persona l’e-mail che conferma l’indirizzo e le permette di scegliere una password. Risponde sempre 202: non rivela mai se l’indirizzo aveva già un account (il titolare dell’indirizzo viene invece avvisato per posta). Solo con token di client (identity:signup); accetta Idempotency-Key.

Tipo di contenutoapplication/json
object
email
obbligatorio
string formato: email
first_name
obbligatorio
string
<= 50 caratteri
last_name
obbligatorio
string
<= 50 caratteri
phone
string
nullable <= 20 caratteri
dob
string formato: date
nullable
gender

Solo statistico: non viene confrontato

string
nullable
Valori ammessi: M F
birthplace

Comune (nati in Italia) o città, testo libero (nati all’estero)

string
nullable <= 150 caratteri
birth_country

ISO 3166-1 alpha-2

string
nullable >= 2 caratteri <= 2 caratteri
codicefiscale

Se presente, viene validato e confrontato con gli altri campi

string
nullable <= 16 caratteri
codicefiscale_confirmed

La persona conferma un codice che non concorda con i suoi dati (422 codicefiscale_mismatch con confirmable: true)

boolean
locale

La lingua della pagina che la persona ha compilato (una lingua della piattaforma — it, en, …; ogni altro tag viene ricondotto a una di quelle della piattaforma: en-GB → en, zh-TW → zh-Hant). Decide la lingua delle mail che seguono e diventa la preferenza di un account NUOVO; un account esistente tiene la sua. I valori non supportati vengono ignorati

string
nullable
accept_terms

Le condizioni dell’account (platform_terms) che la persona ha accettato sul tuo sito — facoltative, ma se presenti devono indicare la versione in vigore

object
version
obbligatorio

L’etichetta della versione in vigore mostrata (GET /v1/legal/{kind})

string
sha256

L’hash del suo modello, quando è pubblicato

string
acknowledge_privacy

L’informativa della piattaforma (platform_privacy) che la persona ha letto sul tuo sito — facoltativa, stessa regola

object
version
obbligatorio

L’etichetta della versione in vigore mostrata (GET /v1/legal/{kind})

string
sha256

L’hash del suo modello, quando è pubblicato

string

Accettata

Tipo di contenutoapplication/json
object
status
obbligatorio
string
Valori ammessi: accepted
Esempio
{
"status": "accepted"
}

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"
}
]
}

Credenziali mancanti o non valide

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 consentito

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"
}
]
}