Aller au contenu

Enregistrer le consentement d'un client (grant/revoke par finalité + canal)

POST
/v1/guests/{id}/consents
curl --request POST \
--url https://example.com/v1/guests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/consents \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "purpose": "marketing_email", "channel": "email", "granted": true, "consentSource": "checkin_tablet", "evidenceRef": "example" }'

Append-only : un retrait de consentement est un nouvel acte granted:false. Capté au check-in / booking. Conditionne tout envoi marketing (fail-closed).

id
required
string format: uuid
Media type application/json
object
purpose
required
string
Allowed values: marketing_email marketing_sms transactional profiling third_party_sharing loyalty
channel
required
string
Allowed values: email sms whatsapp phone none
granted
required
boolean
consentSource
required
string
Allowed values: checkin_tablet online_booking imported phone_verbal paper
evidenceRef

Référence de preuve (doc signé, log tablette). OBLIGATOIRE quand granted=true (consentement accordé) — sinon 400 CONSENT_EVIDENCE_REQUIRED.

string
nullable

Acte de consentement enregistré

Media type application/json
object
data
required
object
recorded
required
boolean
Example
{
"data": {
"recorded": true
}
}

Finalité / canal / source invalide, ou preuve manquante sur un grant (CONSENT_EVIDENCE_REQUIRED)

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.consent)

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
}