Aller au contenu

Annuler une réservation (déclenche la saga + calcule le remboursable)

POST
/v1/reservations/{id}/cancel
curl --request POST \
--url https://example.com/v1/reservations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancel \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--header 'idempotency-key: example' \
--data '{ "reason": "guest_request", "paymentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'
id
required
string format: uuid

Identifiant de la réservation

idempotency-key
required
string
Idempotency-Key
string
>= 8 characters <= 200 characters

Clé d’idempotence (8-200 car.) — dédup native via workflowId Temporal. Un re-play avec la même clé retourne le résultat existant sans double-annulation.

Media type application/json
object
reason
required
string
>= 1 characters <= 500 characters
Example
guest_request
paymentId

ID du paiement à rembourser (optionnel)

string format: uuid
nullable

Annulation enregistrée — saga Temporal lancée

Media type application/json
object
data
required
object
workflowId
required
string
refundAmountCents
required

Centimes remboursables (string pour bigint safe)

string
feeAmountCents
required

Frais d’annulation retenus (centimes)

string
currency
required
string
Allowed values: EUR GBP
Example
{
"data": {
"currency": "EUR"
}
}

Corps invalide ou statut incompatible

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
}

Annulation refusée (no-show / statut invalide)

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
}

Config fiscale manquante (FAIL-CLOSED)

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
}