Aller au contenu

Créer un compte Vimine pour une personne (côté serveur)

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

Crée l’identité et envoie à la personne l’e-mail qui confirme l’adresse et lui permet de choisir un mot de passe. Répond toujours 202 : que l’adresse ait déjà eu un compte ou non n’est jamais révélé (c’est le titulaire de l’adresse qui en est informé, par e-mail). Jetons client seulement (identity:signup) ; accepte Idempotency-Key.

Type de médiaapplication/json
object
email
obligatoire
string format : email
first_name
obligatoire
string
<= 50 caractères
last_name
obligatoire
string
<= 50 caractères
phone
string
nullable <= 20 caractères
dob
string format : date
nullable
gender

Démographique seulement : il n’est pas comparé avec le code

string
nullable
Valeurs autorisées : M F
birthplace

Comune (né en Italie) ou ville, texte libre (né à l’étranger)

string
nullable <= 150 caractères
birth_country

ISO 3166-1 alpha-2

string
nullable >= 2 caractères <= 2 caractères
codicefiscale

Validé et comparé avec les autres champs quand il est présent

string
nullable <= 16 caractères
codicefiscale_confirmed

La personne confirme un code en désaccord avec ses données de naissance (422 codicefiscale_mismatch avec confirmable: true)

boolean
locale

La langue de la page que la personne a remplie (une langue de la plateforme — it, en, … ; toute autre étiquette est ramenée à celles de la plateforme : en-GB → en, zh-TW → zh-Hant). Elle décide de la langue des e-mails qui suivent et devient la préférence d’un NOUVEAU compte ; un compte existant garde la sienne. Les valeurs non prises en charge sont ignorées

string
nullable
accept_terms

Les conditions du compte (platform_terms) que la personne a acceptées sur votre site — facultatif, mais quand il est fourni, il doit nommer la version en vigueur

object
version
obligatoire

Le libellé de la version en vigueur affichée (GET /v1/legal/{kind})

string
sha256

L’empreinte de son modèle, quand elle est publiée

string
acknowledge_privacy

La notice d’information sur la vie privée de la plateforme (platform_privacy) que la personne a lue sur votre site — facultatif, même règle

object
version
obligatoire

Le libellé de la version en vigueur affichée (GET /v1/legal/{kind})

string
sha256

L’empreinte de son modèle, quand elle est publiée

string

Accepté

Type de médiaapplication/json
object
status
obligatoire
string
Valeurs autorisées : accepted
Exemple
{
"status": "accepted"
}

Requête invalide

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Identifiants manquants ou invalides

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Non autorisé

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Introuvable

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Limite de débit atteinte

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Erreur interne

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}