Devis tarifaire sans créer de réservation
const url = 'https://example.com/v1/reservations/quote';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"establishmentId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","checkInDate":"2026-07-01","checkOutDate":"2026-07-03","ratePlanId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","unitTypeId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","mealPlanId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","ancillaries":[{"productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","quantity":1}],"bookingDate":"2026-06-07","channel":"desk","segment":"leisure","corporateCode":"example","occupancy":{"adults":2,"childrenAges":[],"pets":0,"vehicles":0,"electricity":false}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/reservations/quote \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "establishmentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "checkInDate": "2026-07-01", "checkOutDate": "2026-07-03", "ratePlanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "unitTypeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "mealPlanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "ancillaries": [ { "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "quantity": 1 } ], "bookingDate": "2026-06-07", "channel": "desk", "segment": "leisure", "corporateCode": "example", "occupancy": { "adults": 2, "childrenAges": [], "pets": 0, "vehicles": 0, "electricity": false } }'Calcule le prix pour un séjour donné (un plan précis ou tous les plans éligibles de l’établissement). Aucune mutation.
Authorizations
Section intitulée « Authorizations »Request Body required
Section intitulée « Request Body required »Paramètres du devis
object
Example
2026-07-01Example
2026-07-03Préciser pour un devis sur un plan unique
Plan de pension optionnel : chiffre la pension dans la ventilation additive du devis (ADR-00D88).
Prestations annexes optionnelles (vague 1) : chiffre les prestations dans la ventilation additive du devis (identité devis = facture au check-in).
object
Date de la demande (pour les fences lead_time)
Example
2026-06-07DÉPRÉCIÉ-IGNORÉ (ADR-00D116 A2) : le canal de vente est posé CÔTÉ SERVEUR par la surface (ici desk). Champ conservé pour compat, jamais lu.
Example
deskExample
leisureCode société / tarif négocié (débloque les fences corporate_code)
object
Example
2Example
[]Example
0Example
0Example
falseResponses
Section intitulée « Responses »Devis tarifaire (un ou plusieurs plans)
object
object
Nom commercial du plan tarifaire
Code interne du plan tarifaire
Raison d’inéligibilité (restriction, fence, inactive, unit_type, sell_period)
ADDITIF (ADR-00D116 A3) : détail structuré du blocage — le front traduit, le serveur ne produit aucune phrase. params typés PAR code : min_los/max_los → {nights, dateFrom, dateTo} ; cta/ctd/stop_sell → {dateFrom, dateTo} ; min_lead_time/max_lead_time → {days} ; sell_period → {sellFrom?, sellTo?} ; unit_type → {allowedUnitTypeIds} ; channel → {allowedChannels} ; segment → {allowedSegments} ; arrival_dow/departure_dow → {dateFrom, dateTo, allowedDays} ; corporate_code → {} (JAMAIS le code requis — confidentialité) ; inactive → {}. null si éligible.
object
Code du blocage (identique à blockedBy).
Paramètres structurés du blocage, typés par code.
object
Total TTC (null si non éligible)
object
Montant en centimes (bigint sérialisé en string)
Barème d’acompte du plan (ADR-00D114). null = pas de barème. Le montant est calculé côté client depuis total (HALF-UP bigint).
object
Part du total séjour en basis points (3000 = 30 %).
Ventilation pension (ADR-00D88) : total hébergement seul en centimes (= total). null si non éligible.
Ventilation pension : total pension du séjour en centimes. Présent ssi mealPlanId fourni et plan facturé par nuitée. EXACTEMENT ce que le Night Audit facturera.
Ventilation pension : libellé commercial de la pension. Présent ssi mealPlanId fourni.
Ventilation prestations (vague 1) : total TTC des prestations annexes en centimes. Présent ssi ancillaries fourni. EXACTEMENT ce que le check-in facturera.
Ventilation prestations (vague 1) : détail par ligne des prestations chiffrées. Présent ssi ancillaries fourni.
object
Prix unitaire TTC en centimes (bigint string)
Total ligne TTC = unitPrice × quantité en centimes (bigint string)
Total TTC ventilé = hébergement + pension + prestations annexes en centimes. null si non éligible.
Example
{ "data": [ { "total": { "amountCents": "12000", "currency": "EUR" } } ]}Paramètres invalides
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
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}Plan tarifaire introuvable (si ratePlanId précisé)
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}