CheckoutModifications

Refund a captured payment

POST
/payments/{paymentPspReference}/refunds

Refunds a payment that has been captured, and returns a unique reference for this request. You get the outcome of the request asynchronously, in a REFUND webhook.

You can refund either the full captured amount or a part of the captured amount. You can also perform multiple partial refunds, as long as their sum doesn't exceed the captured amount.

Some payment methods do not support partial refunds. To learn if a payment method supports partial refunds, refer to the payment method page such as cards, iDEAL, or Klarna.

If you want to refund a payment but are not sure whether it has been captured, use the /payments/{paymentPspReference}/reversals endpoint instead.

For more information, refer to Refund.

Authorization

AuthorizationBasic <token>

In: header

Path Parameters

paymentPspReference*string

The pspReference of the payment that you want to refund.

Header Parameters

Idempotency-Key?string

A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).

Request Body

application/json

amount*
applicationInfo?

Information about your application. For more details, see Building Adyen solutions.

capturePspReference?string

This is only available for PayPal refunds. The pspReference of the specific capture to refund.

enhancedSchemeData?
lineItems?array<>

Price and product information of the refunded items, required for partial refunds.

This field is required for partial refunds with 3x 4x Oney, Affirm, Afterpay, Atome, Clearpay, Klarna, Ratepay, Walley, and Zip.

merchantAccount*string

The merchant account that is used to process the payment.

merchantRefundReason?string

The reason for the refund request.

Possible values:

  • FRAUD

  • CUSTOMER REQUEST

  • RETURN

  • DUPLICATE

  • OTHER

Value in

  • "FRAUD"
  • "CUSTOMER REQUEST"
  • "RETURN"
  • "DUPLICATE"
  • "OTHER"
reference?string

Your reference for the refund request. Maximum length: 80 characters.

splits?array<>

An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to process payments for marketplaces or platforms.

store?string

The online store or physical store that is processing the refund. This must be the same as the store name configured in your Customer Area. Otherwise, you get an error and the refund fails.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/payments/string/refunds" \  -H "Idempotency-Key: 37ca9c97-d1d1-4c62-89e8-706891a563ed" \  -H "Content-Type: application/json" \  -d '{    "amount": {      "currency": "EUR",      "value": 2500    },    "reference": "YOUR_UNIQUE_REFERENCE",    "merchantAccount": "YOUR_MERCHANT_ACCOUNT"  }'

Example response when a refund was requested

{  "merchantAccount": "YOUR_MERCHANT_ACCOUNT",  "paymentPspReference": "993617894903480A",  "reference": "YOUR_UNIQUE_REFERENCE",  "pspReference": "993617894906488A",  "status": "received",  "amount": {    "currency": "EUR",    "value": 2500  }}

Capture an authorised payment POST

Captures an authorised payment and returns a unique reference for this request. You get the outcome of the request asynchronously, in a [**CAPTURE** webhook](https://docs.adyen.com/online-payments/capture#capture-notification). You can capture either the full authorised amount or a part of the authorised amount. By default, any unclaimed amount after a partial capture gets cancelled. This does not apply if you enabled multiple partial captures on your account and the payment method supports multiple partial captures. [Automatic capture](https://docs.adyen.com/online-payments/capture#automatic-capture) is the default setting for most payment methods. In these cases, you don't need to make capture requests. However, making capture requests for payments that are captured automatically does not result in double charges. For more information, refer to [Capture](https://docs.adyen.com/online-payments/capture).

Refund or cancel a payment POST

[Refunds](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/payments/{paymentPspReference}/refunds) a payment if it has already been captured, and [cancels](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/payments/{paymentPspReference}/cancels) a payment if it has not yet been captured. Returns a unique reference for this request. You get the outcome of the request asynchronously, in a [**CANCEL_OR_REFUND** webhook](https://docs.adyen.com/online-payments/reversal/#cancel-or-refund-webhook). The reversed amount is always the full payment amount. > Do not use this request for payments that involve multiple partial captures. For more information, refer to [Reversal](https://docs.adyen.com/online-payments/reversal).