Skip to content
Pay
Esc
↑↓navigate↵open⌘Jpreview

Refund a payment

Return all or part of a successful payment from your disbursement account. Needs the refund permission.

POST/payments/{reference}/refund

Creates a pending refund (type: refund) of the collection in the path. The money goes back to the number that paid. See Refund payments.

Refunds can never add up to more than the original; pending refunds count towards that.

referencepathstringrequired

The external_reference of the collection to refund.

external_referencebodystringrequired

A new reference for the refund itself. Retrying with it returns the original refund.

amountbodynumber

How much to refund. Leave it out to refund everything that’s left.

descriptionbodystring

Shown in both parties’ transaction history. Defaults to Refund <reference>.

metadatabodyobject

Your own data.

Response

A transaction with type: refund, status: pending and refund_of set to the original’s reference.

Other 400 messages: only successful collections can be refunded, only payments collected with a payment request can be refunded, and the momo disbursement account is not connected, so payouts and refunds are unavailable.

Request
curl -X POST 'https://api.razpay.razonetix.com/v1/payments/order-1001/refund' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "external_reference": "order-1001-refund-1"
}'
{
  "success": true,
  "message": "refund initiated",
  "data": {
    "external_reference": "order-1001-refund-1",
    "type": "refund",
    "direction": "out",
    "provider_id": "momo",
    "amount": 10,
    "currency": "SZL",
    "status": "pending",
    "payee_phone": "26876123456",
    "description": "Partial refund, item out of stock",
    "refund_of": "order-1001",
    "metadata": {},
    "created_at": 1760860800,
    "updated_at": 1760860800
  }
}
{ "success": false, "message": "refund exceeds the amount left to refund", "data": null }

Was this page helpful?