Aller au contenu

Demander & encaisser l'acompte d'une réservation (ADR-00D114)

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

Identifiant de la réservation

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

Clé d’idempotence OBLIGATOIRE (8–200 car.) — anti double-encaissement PSP.

Instrument de paiement OPAQUE (token PSP / hosted fields). Le MONTANT n’est jamais transmis (résolu serveur depuis la policy figée — anti-tampering). PCI SAQ A : jamais de donnée carte.

Media type application/json
object
instrument
required

Token PSP opaque (hosted fields / redirect).

string
>= 1 characters <= 200 characters
Example generated
{
"instrument": "example"
}

Acompte demandé (encaissement initié via le PSP) — ou demande existante rejouée (idempotent).

Media type application/json
object
data
required
object
paymentId
required
string format: uuid
reservationId
required
string format: uuid
status
required

État du paiement (captured / pending / action_required / authorized / declined).

string
kind
required

Nature juridique figée (art. 1590 Cc / CGI 269-2-c).

string
Allowed values: arrhes acompte
amountCents
required

Montant figé demandé, en centimes (string bigint-safe) — jamais fourni par l’appelant.

string
currency
required
string
Allowed values: EUR GBP
alreadyRequested
required

True = demande déjà existante rejouée (aucun nouvel appel PSP).

boolean
Example
{
"data": {
"kind": "arrhes",
"currency": "EUR"
}
}

Corps invalide ou Idempotency-Key absente/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
}

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 (reservation.request_deposit) 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
}

Réservation non confirmée (annulée / no-show / walked / checked-out)

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
}

Aucune politique d’acompte figée sur la réservation (NO_DEPOSIT_DUE)

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
}