1
Check what can be refunded
Call
GET /v1/payments/{reference}/refunds. The response lists earlier refunds and refundable, the amount still left.2
Create the refund
Call Leave out
POST /v1/payments/{reference}/refunds with an Idempotency-Key header, so a retry never refunds twice.amount to refund everything still refundable.3
Follow it to the end
The refund starts as
processing. Check it with GET /v1/refunds/{reference} until it is success or failed. If it fails, the money goes back to your balance and you can try again.Good to know
- The refund is taken from the payment’s money that hasn’t settled yet, then from your available balance. If neither covers it, you get
insufficient_funds. - PrimePay’s fee on the original payment isn’t returned.
- You can make several partial refunds until they add up to the payment’s amount.

