Remplacer les contacts d'un profil client (emails + téléphones E.164)
const url = 'https://example.com/v1/guests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/contacts';const options = { method: 'PUT', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"emails":[{"address":"hello@example.com","isPrimary":true}],"phones":[{"number":"example","isPrimary":true}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/v1/guests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/contacts \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "emails": [ { "address": "hello@example.com", "isPrimary": true } ], "phones": [ { "number": "example", "isPrimary": true } ] }'Idempotent : remplace TOUTES les adresses email et tous les numéros de téléphone du profil en 1 transaction. Format E.164 obligatoire pour les téléphones (ex. +33612345678). Au plus 1 email primaire et 1 téléphone primaire. Un seul contact d’un type sans isPrimary → marqué primaire par défaut. Interdit sur un profil anonymisé (409 GUEST_PROFILE_ANONYMIZED). Email NON unique cross-profil (décision 0030) : un même email peut être partagé entre profils (familles). Seul le doublon INTRA-profil (même email deux fois dans le tableau d’entrée) est refusé (400 CONTACT_DUPLICATE_IN_PROFILE).
Authorizations
Section intitulée « Authorizations »Parameters
Section intitulée « Parameters »Path Parameters
Section intitulée « Path Parameters »UUID du profil guest
Request Body required
Section intitulée « Request Body required »object
object
object
Format E.164 (ex. +33612345678)
Example generated
{ "emails": [ { "address": "hello@example.com", "isPrimary": true } ], "phones": [ { "number": "example", "isPrimary": true } ]}Responses
Section intitulée « Responses »Contacts remplacés
object
object
Example
{ "data": { "updated": true }}Format invalide (E.164, email, multiples primaires) ou doublon intra-profil (CONTACT_DUPLICATE_IN_PROFILE — même email deux fois dans le tableau)
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Non authentifié
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Permission refusée (guest.create)
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Profil guest introuvable
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}Profil anonymisé (GUEST_PROFILE_ANONYMIZED)
object
Code machine de l’erreur
Message lisible
Origine domaine de l’erreur (optionnel)
object
Identifiant de corrélation pour le support
Example
{ "code": "RESERVATION_NOT_FOUND", "message": "Réservation introuvable", "status": 404}