Statistiques agrégées d'un client (séjours, nuits, dépensé) — NON-PII
const url = 'https://example.com/v1/guests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/stats';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/guests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/stats \ --header 'X-API-Key: <X-API-Key>'Authorizations
Section intitulée « Authorizations »Parameters
Section intitulée « Parameters »Path Parameters
Section intitulée « Path Parameters »Identifiant du profil client
Responses
Section intitulée « Responses »Statistiques agrégées (aucune donnée personnelle) + segment RFM (ADR-00D99 §11)
object
object
Nombre de séjours (lignes stays du client ; inclut le séjour en cours)
Total des nuits des séjours TERMINÉS uniquement (un séjour en cours compte 0 — calcul déterministe, pas d’horloge système). Garder nightsTotal>0 avant tout calcul d’ADR.
Date de 1re arrivée (« client depuis »). null si profil anonymisé (RGPD).
Date de dernière arrivée. null si profil anonymisé (RGPD).
CA généré TTC en centimes (bigint string ; charges des folios de séjour, HORS débours et taxe collectée)
Nombre de jours depuis le dernier séjour (date courante serveur — calcul marketing, non fiscal). null si aucun séjour enregistré ou profil anonymisé (RGPD art.17 : lastStayDate masquée).
Segment RFM dérivé on-read (ADR-00D99 §11). Seuils : récent ≤ 365 j, perdu > 730 j, champion ≥ 5 séjours + ≥ 2 000 € TTC. Profil anonymisé → prospect (neutre, pas de fuite).
Example
{ "data": { "currency": "EUR", "segment": "prospect" }}Profil 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}