Documentation/Rembourser
openapi.jsonOuvrir mon espace

Rembourser

POST/v1/refunds

Rend tout ou partie d’un paiement.

Sans « amount », Payiz rend tout ce qui reste. Le motif est obligatoire et doit être un de ceux que la plateforme accepte : GET /v1/refund_reasons les donne.

Les en-têtes

Idempotency-KeytexteConseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.

Ce qu’on envoie

Un corps JSON. Ce qui n’est pas requis peut être omis.

paymentREQUIStexteLe paiement à rendre.
amountentierSans montant, Payiz rend tout ce qui reste sur le paiement.
reasonREQUIStextePris parmi GET /v1/refund_reasons. Ne les écrivez pas en dur.

La demande

bash
curl https://api.payiz.app/v1/refunds \
  -H "Authorization: Bearer sk_test_…" \
  -H "Idempotency-Key: remboursements-creer-01" \
  -H "Content-Type: application/json" \
  -d '{
    "payment": "pay_01j9x3kq7m4tzv8qhw2n",
    "amount": 10000,
    "reason": "requested_by_customer"
  }'

La réponse

json
{
  "object": "refund",
  "id": "rem_01j9xb2te8r5mzq4kd7n",
  "payment": "pay_01j9x3kq7m4tzv8qhw2n",
  "amount": 10000,
  "currency": "XOF",
  "status": "processing",
  "reason": "requested_by_customer",
  "fee": 100,
  "fee_returned": 250,
  "amount_debited": 9850,
  "failure_message": null,
  "created": 1790006292,
  "livemode": false
}

Ce qu’on reçoit

201 · un objet refund

object« refund »Le genre de l’objet rendu : il ne change jamais.
idtexteUn identifiant préfixé « rem_ », par exemple rem_01j9x3kq7m4tzv8qhw2n.
paymenttexteUn identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.
amountentierCe qui repart chez le payeur.
currencytexteLe code ISO 4217, en majuscules.
status« pending » · « processing » · « succeeded » · « failed »Où en est le remboursement.
reasontexteLe motif, choisi parmi ceux que Payiz accepte.
feeentierLes frais du remboursement.
fee_returnedentierLa commission d’encaissement rendue au marchand.
amount_debitedentierCe que l’opération coûte en tout au marchand.
failure_messagetexte ou nullCe que l’opérateur a répondu, quand ça a échoué.
createdentier ou nullDes secondes depuis 1970, ou null.
livemodevrai ou fauxFaux en mode test : aucun argent ne circule.
© 2026 PayizUne question ? L’aide est dans le rond, en bas à droite.
POST/v1/refunds

Rend tout ou partie d’un paiement.

Sans « amount », Payiz rend tout ce qui reste. Le motif est obligatoire et doit être un de ceux que la plateforme accepte : GET /v1/refund_reasons les donne.

Les en-têtes

Idempotency-KeytexteConseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.

Ce qu’on envoie

Un corps JSON. Ce qui n’est pas requis peut être omis.

paymentREQUIStexteLe paiement à rendre.
amountentierSans montant, Payiz rend tout ce qui reste sur le paiement.
reasonREQUIStextePris parmi GET /v1/refund_reasons. Ne les écrivez pas en dur.

La demande

bash
curl https://api.payiz.app/v1/refunds \
  -H "Authorization: Bearer sk_test_…" \
  -H "Idempotency-Key: remboursements-creer-01" \
  -H "Content-Type: application/json" \
  -d '{
    "payment": "pay_01j9x3kq7m4tzv8qhw2n",
    "amount": 10000,
    "reason": "requested_by_customer"
  }'

La réponse

json
{
  "object": "refund",
  "id": "rem_01j9xb2te8r5mzq4kd7n",
  "payment": "pay_01j9x3kq7m4tzv8qhw2n",
  "amount": 10000,
  "currency": "XOF",
  "status": "processing",
  "reason": "requested_by_customer",
  "fee": 100,
  "fee_returned": 250,
  "amount_debited": 9850,
  "failure_message": null,
  "created": 1790006292,
  "livemode": false
}

Ce qu’on reçoit

201 · un objet refund

object« refund »Le genre de l’objet rendu : il ne change jamais.
idtexteUn identifiant préfixé « rem_ », par exemple rem_01j9x3kq7m4tzv8qhw2n.
paymenttexteUn identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.
amountentierCe qui repart chez le payeur.
currencytexteLe code ISO 4217, en majuscules.
status« pending » · « processing » · « succeeded » · « failed »Où en est le remboursement.
reasontexteLe motif, choisi parmi ceux que Payiz accepte.
feeentierLes frais du remboursement.
fee_returnedentierLa commission d’encaissement rendue au marchand.
amount_debitedentierCe que l’opération coûte en tout au marchand.
failure_messagetexte ou nullCe que l’opérateur a répondu, quand ça a échoué.
createdentier ou nullDes secondes depuis 1970, ou null.
livemodevrai ou fauxFaux en mode test : aucun argent ne circule.