Aller au contenu

Devis tarifaire sans créer de réservation

POST
/v1/reservations/quote
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", "bookingDate": "2026-06-07", "channel": "direct", "segment": "leisure", "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.

Paramètres du devis

Media type application/json
object
establishmentId
required
string format: uuid
checkInDate
required
string format: date
Example
2026-07-01
checkOutDate
required
string format: date
Example
2026-07-03
ratePlanId

Préciser pour un devis sur un plan unique

string format: uuid
nullable
unitTypeId
string format: uuid
nullable
bookingDate
required

Date de la demande (pour les fences lead_time)

string format: date
Example
2026-06-07
channel
string
nullable
Example
direct
segment
string
nullable
Example
leisure
occupancy
object
adults
integer
>= 1
Example
2
childrenAges
Array<integer>
Example
[]
pets
integer
Example
0
vehicles
integer
Example
0
electricity
boolean
Example
false

Devis tarifaire (un ou plusieurs plans)

Media type application/json
object
data
required
Array<object>
object
ratePlanId
required
string format: uuid
ratePlanVersion
required
integer
eligible
required
boolean
blockedBy

Raison d’inéligibilité (restriction ou fence)

string
nullable
nights
required
integer
>= 1
total

Total TTC (null si non éligible)

object
amountCents
required

Montant en centimes (bigint sérialisé en string)

string
currency
required
string
Allowed values: EUR GBP
Example
{
"data": [
{
"total": {
"amountCents": "12000",
"currency": "EUR"
}
}
]
}

Paramètres invalides

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

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
}

Plan tarifaire introuvable (si ratePlanId précisé)

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
}