Sommaire · Remboursements

Remboursements

Un remboursement rend tout ou partie d’un paiement réussi au client, par le même fournisseur. Il s’applique au paiement encaissé : utilisez le paymentId de l’intention de paiement (ou l’id renvoyé par GET /v1/payments).

POST/v1/refunds

Permission refunds:write. En-tête Idempotency-Key obligatoire.
ParamètreTypeDescription
paymentIdrequisuuidLe paiement encaissé à rembourser.
amountfacultatifentierMontant à rendre. Absent : tout ce qui reste remboursable.
reasonfacultatifchaîne ≤ 255Motif, pour vos rapports.
cURL
curl -sX POST https://backend.v1.pay.galsen.tech/v1/refunds \
  -H "Authorization: Bearer $GALSEN_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "paymentId": "<paymentId>", "amount": 5000, "reason": "Article manquant" }'

Règles

  • Le paiement doit être réussi. Le total remboursé ne peut jamais dépasser le montant payé (409 PAYMENT_NOT_REFUNDABLE sinon) : la base de données elle-même le refuse.
  • Remboursement partiel : seulement si le fournisseur le permet. Sinon, 422 PROVIDER_CAPABILITY_REQUIRED.
  • L’argent est réservé sur votre solde avant l’appel au fournisseur (422 INSUFFICIENT_BALANCE si votre solde ne suffit pas), puis libéré si le fournisseur refuse définitivement.
  • Frais : par défaut, les frais du fournisseur et de Galsen Pay sont rendus au prorata du montant remboursé.
  • Plafonds : vos limites de remboursement s’appliquent (422 REFUND_LIMIT_EXCEEDED).

Statuts

StatutSignification
PENDING, PROCESSINGDemandé, en cours chez le fournisseur.
SUCCEEDEDRendu au client.
FAILEDRefusé par le fournisseur ; la réserve revient sur votre solde. failureCode donne la raison.
UNKNOWNIssue pas encore connue : ne relancez pas, Galsen Pay vérifie auprès du fournisseur.

Webhooks : refund.created, refund.succeeded, refund.failed. Le paiement d’origine passe à PARTIALLY_REFUNDED ou REFUNDED.

Lire

GET/v1/refunds · /v1/refunds/{id}

Permission payments:read. Liste paginée par curseur.

Objet remboursement

id, paymentId, amount, currency, status, reason, failureCode, createdAt, completedAt.