Aller au contenu

Encaisser une caution (en-tête Idempotency-Key obligatoire)

POST
/v1/deposits
curl --request POST \
--url https://example.com/v1/deposits \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "stayId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "establishmentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "depositMode": "card_imprint", "amount": { "amountCents": "50000", "currency": "EUR" }, "instrument": "example", "paymentMethod": "cash", "paymentReference": "example" }'
Idempotency-Key
required
string
>= 8 characters <= 200 characters

Clé d’idempotence OBLIGATOIRE (8–200 car.) — anti-double-encaissement PSP. Retourné 400 si absent ou longueur invalide.

Caution PSP-agnostique. instrument = token opaque (PCI SAQ A), jamais données carte.

Media type application/json
object
stayId
required
string format: uuid
establishmentId
required
string format: uuid
depositMode
required
string
Allowed values: card_imprint real_payment
amount
required
object
amountCents
required

Montant en centimes (bigint string)

string
Example
50000
currency
required
string
Allowed values: EUR GBP
instrument

Token PSP opaque (hosted-fields) — jamais PAN/CVV

string
nullable
paymentMethod
string
nullable
Allowed values: cash cheque cheque_not_deposited card_debited
paymentReference
string
nullable

Caution encaissée

Media type application/json
object
data
required
object
depositId
required
string format: uuid
Example generated
{
"data": {
"depositId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
}

Corps invalide ou montant hors plafond

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é (Idempotency-Key manquante → 400)

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 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
}