Remboursements
Rendre tout ou partie d'un encaissement.
Créer un remboursement
POST /v1/refunds
| Champ | Requis | Description |
|---|---|---|
payment_id |
oui | L'encaissement d'origine : son identifiant ou sa référence |
amount_minor |
— | Chaîne, en unités mineures. Absent = le solde restant |
reason |
— | customer_request, duplicate, fraudulent ou other |
description |
— | Texte libre, visible dans le tableau de bord |
Le remboursement est une opération à part entière : son propre id, son propre statut, son propre
événement webhook (refund.success / refund.failed).
Règles
- Seul un encaissement réussi se rembourse.
- Le cumul des remboursements ne peut pas dépasser le montant encaissé — l'API répond
422 refund_exceeds_refundableau-delà. - Les frais d'encaissement ne sont pas rendus : ils restent à votre charge.
- Un remboursement partiel laisse l'encaissement d'origine consultable, avec son historique complet.
- Les fonds sont prélevés sur votre solde disponible au moment de l'appel, comme un versement.
Une clé d'idempotence par remboursement. Jamais l'identifiant du paiement d'origine : un encaissement peut être remboursé en plusieurs fois, et une clé portant l'identifiant du parent ferait passer le second remboursement partiel pour un rejeu du premier.
Lire et lister
GET /v1/refunds/{id}
GET /v1/refunds — liste ; ?payment_id= pour un seul encaissement
GET /v1/payments/{id}/refunds — les remboursements d'un encaissement
GET /v1/payments/{id}/refunds et GET /v1/refunds?payment_id= rendent le même objet que la
liste, avec la même pagination. L'encaissement se désigne par son identifiant ou sa référence ; celui
d'un autre compte répond 404 sur la sous-ressource, et une liste vide sur le filtre.
Codes de refus
Un remboursement refusé répond 422, dans l'enveloppe d'erreur habituelle :
| Code | Signification |
|---|---|
refund_exceeds_refundable |
Le montant dépasse ce qui reste remboursable. L'erreur porte amount_refundable_minor. |
wave_partial_refund_window_closed |
Encaissement Wave : le délai de remboursement partiel est dépassé ; seul le remboursement total reste possible, si rien n'a été remboursé. |
wave_partial_refunds_disabled |
Les remboursements partiels Wave ne sont pas ouverts ; le remboursement total reste possible. |
wave_refund_window_closed |
Encaissement Wave déjà remboursé en partie, délai dépassé : plus aucun remboursement. |
payer_not_found |
Wave ne nomme pas le payeur : un remboursement partiel, versé au payeur, ne peut pas partir. |
insufficient_funds |
Votre solde disponible ne couvre pas le remboursement. |
Wave : remboursements partiels
Wave ne rembourse une transaction qu'en totalité. Un remboursement partiel d'un encaissement Wave
est donc versé au numéro Wave du payeur, et seulement pendant le délai indiqué par
partial_refund_deadline sur l'encaissement. Passé ce délai, seul le remboursement total reste
possible, et seulement si rien n'a été remboursé.