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.

Servers

Path parameters

Name Type Required Description
paymentPspReference String Yes

The pspReference of the payment that you want to refund.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Idempotency-Key String No

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

Request body fields

Name Type Required Description
applicationInfo Object No

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

applicationInfo.merchantApplication Object No

Merchant developed software, such as cashier application, used to interact with the Adyen API.

applicationInfo.merchantApplication.name String No

Name of the field. For example, Name of External Platform.

applicationInfo.merchantApplication.version String No

Version of the field. For example, Version of External Platform.

applicationInfo.externalPlatform Object No

Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.

applicationInfo.externalPlatform.integrator String No

External platform integrator.

applicationInfo.externalPlatform.name String No

Name of the field. For example, Name of External Platform.

applicationInfo.externalPlatform.version String No

Version of the field. For example, Version of External Platform.

applicationInfo.merchantDevice Object No

Merchant device information.

applicationInfo.merchantDevice.osVersion String No

Version of the operating system on the merchant device.

applicationInfo.merchantDevice.os String No

Operating system running on the merchant device.

applicationInfo.merchantDevice.reference String No

Merchant device reference.

applicationInfo.adyenLibrary Object No

Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.

applicationInfo.adyenLibrary.name String No

Name of the field. For example, Name of External Platform.

applicationInfo.adyenLibrary.version String No

Version of the field. For example, Version of External Platform.

applicationInfo.shopperInteractionDevice Object No

Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.

applicationInfo.shopperInteractionDevice.osVersion String No

Version of the operating system on the shopper interaction device.

applicationInfo.shopperInteractionDevice.locale String No

Locale on the shopper interaction device.

applicationInfo.shopperInteractionDevice.os String No

Operating system running on the shopper interaction device.

applicationInfo.adyenPaymentSource Object No

Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.

applicationInfo.adyenPaymentSource.name String No

Name of the field. For example, Name of External Platform.

applicationInfo.adyenPaymentSource.version String No

Version of the field. For example, Version of External Platform.

splits[] Array No

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.

splits[].account String No

The unique identifier of the account to which the split amount is booked. Required if type is MarketPlace or BalanceAccount.

  • Classic Platforms integration: The accountCode of the account to which the split amount is booked.
  • Balance Platform: The balanceAccountId of the account to which the split amount is booked.
splits[].description String No

Your description for the split item.

splits[].amount Object No

The amount of the split item.

  • Required for all split types in the Classic Platforms integration.
  • Required if type is BalanceAccount, Commission, Default, or VAT in your Balance Platform integration.
splits[].amount.value Integer Yes

The value of the split amount, in minor units.

splits[].amount.currency String No

The three-character ISO currency code. By default, this is the original payment currency.

splits[].type String Yes

The part of the payment you want to book to the specified account.

Possible values for the Balance Platform:

  • BalanceAccount: books part of the payment (specified in amount) to the specified account.
  • Transaction fees types that you can book to the specified account:
    • AcquiringFees: the aggregated amount of the interchange and scheme fees.
    • PaymentFee: the aggregated amount of all transaction fees.
    • AdyenFees: the aggregated amount of Adyen's commission and markup fees.
    • AdyenCommission: the transaction fees due to Adyen under blended rates.
    • AdyenMarkup: the transaction fees due to Adyen under Interchange ++ pricing.
    • Interchange: the fees paid to the issuer for each payment made with the card network.
    • SchemeFee: the fees paid to the card scheme for using their network.
  • Commission: your platform's commission on the payment (specified in amount), booked to your liable balance account.
  • Remainder: the amount left over after a currency conversion, booked to the specified account.
  • TopUp: allows you and your users to top up balance accounts using direct debit, card payments, or other payment methods.
  • VAT: the value-added tax charged on the payment, booked to your platforms liable balance account.
  • Commission: your platform's commission (specified in amount) on the payment, booked to your liable balance account.
  • Default: in very specific use cases, allows you to book the specified amount to the specified account. For more information, contact Adyen support.

Possible values for the Classic Platforms integration: Commission, Default, MarketPlace, PaymentFee, VAT.

Possible values:

  • "MarketPlace"
  • "SchemeFee"
  • "Surcharge"
  • "Commission"
  • "PaymentFee"
  • "AdyenCommission"
  • "Tip"
  • "AdyenMarkup"
  • "Remainder"
  • "Interchange"
  • "AcquiringFees"
  • "AdyenFees"
  • "BalanceAccount"
  • "Default"
  • "VAT"
splits[].reference String No

Your unique reference for the part of the payment booked to the specified account.

This is required if type is MarketPlace (Classic Platforms integration) or BalanceAccount (Balance Platform).

For the other types, we also recommend providing a unique reference so you can reconcile the split and the associated payment in the transaction overview and in the reports.

merchantRefundReason String No

Your reason for the refund request

Possible values:

  • "OTHER"
  • "FRAUD"
  • "CUSTOMER REQUEST"
  • "DUPLICATE"
  • "RETURN"
amount Object Yes

The amount that you want to refund. The currency must match the currency used in authorisation, the value must be smaller than or equal to the authorised amount.

amount.value Integer Yes

The amount of the transaction, in minor units.

amount.currency String Yes

The three-character ISO currency code.

merchantAccount String Yes

The merchant account that is used to process the payment.

reference String No

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

store String No

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.

lineItems[] Array No

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.

lineItems[].size String No

Size of the item.

lineItems[].description String No

Description of the line item.

lineItems[].brand String No

Brand of the item.

lineItems[].taxAmount Integer No

Tax amount, in minor units.

lineItems[].quantity Integer No

Number of items.

lineItems[].productUrl String No

Link to the purchased item.

lineItems[].amountExcludingTax Integer No

Item amount excluding the tax, in minor units.

lineItems[].imageUrl String No

Link to the picture of the purchased item.

lineItems[].marketplaceSellerId String No

Marketplace seller id.

lineItems[].id String No

ID of the line item.

lineItems[].amountIncludingTax Integer No

Item amount including the tax, in minor units.

lineItems[].itemCategory String No

Item category, used by the payment methods PayPal and Ratepay.

lineItems[].receiverEmail String No

Email associated with the given product in the basket (usually in electronic gift cards).

lineItems[].sku String No

Stock keeping unit.

lineItems[].manufacturer String No

Manufacturer of the item.

lineItems[].taxPercentage Integer No

Tax percentage, in minor units.

lineItems[].upc String No

Universal Product Code.

lineItems[].color String No

Color of the item.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.