Refund an Open Banking Payment RESTful API
Edit me

API Details

The Refund Payment service allows you to refund an Open Banking payment.

When you initiate a refund request, a new refund object is created.

The refund request object may be in one of three statuses:

  • REFUND_PENDING
  • REFUND_COMPLETE
  • REFUND_REJECTED

Where a refund request is successful:

  1. The user calls the /payments/{paymentId}/refunds service. Provided the referenced payment is in PAYMENT_RECEIVED status (and all other Refund Configuration constraints are met), a refund object is created in REFUND_PENDING status. Note that the actual payment status is unchanged.
  2. A Credit Transfer payment is initiated to the customer account linked to the provided paymentId.
  3. The payment is successfully processed - funds are credited to the PSU. The refund object’s status is updated to REFUND_COMPLETE
  4. A Payment Refund Complete Webhook notifies the merchant of the successful refund. See Payment Refunded Event in the Webhooks section for more details.

Where a refund request is unsuccessful:

  1. The user calls the /payments/{paymentId}/refunds service and all validations (as mentioned above) are passed.
  2. A Credit Transfer payment is initiated to the customer account linked to the provided paymentId but cannot be processed e.g. the PSU’s account is closed.
  3. The refund object is updated to REFUND_REFJECTED

Refund Options

It is possible to issue a:

  • Full refund.
  • Partial refund.
  • Full refund and a compensation amount.

The value of your refund is handled in the API via the refundAmount and compensatioinAmount values.

Refund Configuration

To allow merchants to manage the refund process, it is possible to apply limits on the value of refunds. The following settings may all be configured per merchant; please discuss your requirements with your Account Manager:

Setting Description Default
Refund Amount Limit per Payment The maximum amount that can be refunded against a payment. The sum of all (partial) refunds against a single payment cannot exceed this number 0
Maximum Refund Percentage per Transaction Percentage of the original transaction amount that can be Refunded in a single refund (whole numbers only, no decimal places, e.g. 1% is acceptable, 0.1% is not) 0
Refunds Period The maximum Refund period in days; it is not possible to initiate a refund for a payment that is older than this configured number of days. 540

These configurations are evaluated when you make a refund request.

A refund will be initiated where:

  • The payment you want to refund is in PAYMENT_RECEIVED status.
  • The refund amount does not exceed:
    • The (global) maximum refund amount
    • The refund transaction amount limit.
  • The refund occurs within the defined refunds period.