Aller au contenu

Pré-contrôle anti-doublon avant création d'un profil client

GET
/v1/guests/check-duplicate
curl --request GET \
--url https://example.com/v1/guests/check-duplicate \
--header 'X-API-Key: <X-API-Key>'

Vérifie si un email est déjà pris (emailTaken) et retourne les profils homonymes avec même date de naissance. À appeler avant POST /v1/guests pour avertir l’opérateur avant soumission. Résultats NON-PII : candidates ne contient pas d’email ni de téléphone. Cross-tenant garanti : RLS scope la requête au tenant du JWT.

birthDate
string format: date

Date de naissance YYYY-MM-DD (affinage des candidats)

firstName
string

Prénom (affinage des candidats)

lastName
string

Nom de famille (pour candidats homonymes)

email
string format: email

Email à vérifier (unicité)

Résultat du pré-contrôle anti-doublon

Media type application/json
object
data
required
object
emailTaken
required

True si l’email est déjà associé à un profil dans ce tenant

boolean
existingGuestProfileId
required

Id du profil portant l’email (null si emailTaken=false)

string format: uuid
nullable
candidates
required

Profils homonymes + même date de naissance (doublon probable). PII minimaux : pas d’email/tél.

Array<object>
object
id
required
string format: uuid
lastName
required
string
firstName
string
nullable
birthDate
string format: date
nullable
Example generated
{
"data": {
"emailTaken": true,
"existingGuestProfileId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"candidates": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"lastName": "example",
"firstName": "example",
"birthDate": "2026-04-15"
}
]
}
}

Paramètres invalides (format email, format date)

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Non authentifié

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}

Permission refusée (guest.read)

Media type application/json
object
code
required

Code machine de l’erreur

string
message
required

Message lisible

string
origin

Origine domaine de l’erreur (optionnel)

object
boundedContext
string
module
string
status
required
integer
traceId
required

Identifiant de corrélation pour le support

string
Example
{
"code": "RESERVATION_NOT_FOUND",
"message": "Réservation introuvable",
"status": 404
}