Skip to main content
Card refunds should follow the same operational discipline as any other money-moving write.

Practical guidance

  • Initiate refunds only from your backend.
  • Use your own refund request ID to prevent duplicate support actions.
  • Wait for the resulting transaction status before updating final customer-facing state.
  • Keep refund handling separate from chargeback handling.

Example request

{
  "amount": 2490,
  "reason": "requested_by_customer"
}

Example response

{
  "success": true,
  "requestId": "req_1302",
  "data": {
    "transaction_id": "tr_2001",
    "status": "refunded"
  }
}

Merchant-facing rules

  • A partial refund changes accounting state even if the order remains partially fulfilled.
  • A full refund should close the customer-facing payment attempt.
  • If the refund result is unclear, reconcile the transaction instead of retrying blindly.