Aller au contenu

Ajuster la date de départ d'un séjour in-house (extend / reduce)

POST
/v1/reservations/{id}/adjust-stay
curl --request POST \
--url https://example.com/v1/reservations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/adjust-stay \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "newCheckOutDate": "2026-08-05", "reason": "Le client prolonge de 1 nuit", "earlyDepartureFeeCents": "5000" }'
id
required
string format: uuid
Idempotency-Key
string
>= 8 characters <= 200 characters

Clé d’idempotence (8-200 car.) recommandée — évite le double-ajustement sur réseau flaky.

Nouvelle date de départ (ISO YYYY-MM-DD) + motif audité. Direction extend/reduce dérivée côté serveur.

Media type application/json
object
newCheckOutDate
required

Nouvelle date de départ. > checkInDate obligatoire.

string format: date
Example
2026-08-05
reason
required
string
>= 1 characters <= 500 characters
Example
Le client prolonge de 1 nuit
earlyDepartureFeeCents

Override staff du frais de départ anticipé (centimes, string bigint-safe). Optionnel — prime sur la politique EarlyDeparturePolicySnapshot. T-struct-2, ADR-00D90 §D3.

string
Example
5000

Séjour ajusté (breakdown mis à jour, inventaire delta réservé/libéré, frais de départ anticipé posté si politique)

Media type application/json
object
data
required
object
reservationId
required
string format: uuid
previousCheckOutDate
required
string format: date
newCheckOutDate
required
string format: date
newTotalCents
required

Nouveau total en centimes (string bigint-safe)

string
currency
required
string
Allowed values: EUR GBP
direction
required
string
Allowed values: extend reduce
earlyDepartureFeeCents
required

Frais de départ anticipé postés (centimes, string bigint-safe). “0” si aucun frais.

string
earlyDepartureRationale
required

Justification du calcul du frais.

string
Allowed values: non_refundable refundable no_policy override no_folio
Example
{
"data": {
"currency": "EUR",
"direction": "extend",
"earlyDepartureRationale": "non_refundable"
}
}

Corps invalide ou date incohérente

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 ou scope IDOR

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
}

Réservation introuvable

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
}

Séjour non CheckedIn, réduction rétroactive, ou stock insuffisant (extend)

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
}