POST /payments/{paymentPspReference}/reversals

Refunds a payment if it has already been captured, and 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.

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.

Servers

Path parameters

Name Type Required Description
paymentPspReference String Yes

The pspReference of the payment that you want to reverse.

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.

enhancedSchemeData Object No

Enhanced scheme data that may be required for processing the payment. For example, airline information.

enhancedSchemeData.airline Object No

Airline enhanced scheme data that may be required for processing the transaction and/or for interchange savings.

enhancedSchemeData.airline.travelAgency Object No
enhancedSchemeData.airline.travelAgency.name String No

The name of the travel agency.

  • Encoding: ASCII
  • minLength: 1 character
  • maxLength: 25 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.travelAgency.code String No

The unique identifier from IATA or ARC for the travel agency that issues the ticket.

  • Encoding: ASCII
  • minLength: 1 character
  • maxLength: 8 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[] Array No
enhancedSchemeData.airline.legs[].dateOfTravel String No

Date and time of travel in format yyyy-MM-ddTHH:mm.

  • Use local time of departure airport.
  • minLength: 16 characters
  • maxLength: 16 characters
enhancedSchemeData.airline.legs[].departureAirportCode String No

The IATA three-letter airport code of the departure airport. This field is required if the airline data includes leg details.

  • Encoding: ASCII
  • Example: Amsterdam = AMS
  • minLength: 3 characters
  • maxLength: 3 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].destinationAirportCode String No

The IATA 3-letter airport code of the destination airport. This field is required if the airline data includes leg details.

  • Example: Amsterdam = AMS
  • Encoding: ASCII
  • minLength: 3 characters
  • maxLength: 3 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].carrierCode String No

The IATA 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details.

  • Example: KLM = KL
  • minLength: 2 characters
  • maxLength: 2 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].departureTax Integer No

The amount of departure tax charged, in minor units.

  • Encoding: Numeric
  • minLength: 1
  • maxLength: 11
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].fareBasisCode String No

The fare basis code, alphanumeric.

  • minLength: 1 character
  • maxLength: 15 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].flightNumber String No

The flight identifier.

  • minLength: 1 character
  • maxLength: 5 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.legs[].classOfTravel String No

A one-letter travel class identifier. The following are common:

  • F: first class

  • J: business class

  • Y: economy class

  • W: premium economy

  • Encoding: ASCII

  • minLength: 1 character

  • maxLength: 1 character

  • Must not start with a space or be all spaces.

  • Must not be all zeros.

enhancedSchemeData.airline.legs[].stopOverCode String No

A one-letter code that indicates whether the passenger is entitled to make a stopover. Can be a space, O if the passenger is entitled to make a stopover, or X if they are not.

  • Encoding: ASCII
  • minLength: 1 character
  • maxLength: 1 character
enhancedSchemeData.airline.computerizedReservationSystem String No

The CRS used to make the reservation and purchase the ticket.

  • Encoding: ASCII
  • minLength: 4 characters
  • maxLength: 4 characters
enhancedSchemeData.airline.customerReferenceNumber String No

The alphanumeric customer reference number.

  • Encoding: ASCII
  • maxLength: 20 characters
  • If you send more than 20 characters, the customer reference number is truncated
  • Must not start with a space or be all spaces.
enhancedSchemeData.airline.flightDate String No

The flight departure date. Time is optional.

  • Format for date only: yyyy-MM-dd
  • Format for date and time: yyyy-MM-ddTHH:mm
  • Use local time of departure airport.
  • minLength: 10 characters
  • maxLength: 16 characters
enhancedSchemeData.airline.ticket Object No
enhancedSchemeData.airline.ticket.issueAddress String No

The address of the organization that issued the ticket.

  • minLength: 0 characters
  • maxLength: 16 characters
enhancedSchemeData.airline.ticket.number String No

The ticket's unique identifier.

  • minLength: 1 character
  • maxLength: 15 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.ticket.issueDate String No

The date that the ticket was issued to the passenger.

  • minLength: 10 characters
  • maxLength: 10 characters
  • Format ISO 8601: yyyy-MM-dd
enhancedSchemeData.airline.code String No

The IATA 3-digit accounting code (PAX) that identifies the carrier.

  • Format: IATA 3-digit accounting code (PAX)
  • Example: KLM = 074
  • minLength: 3 characters
  • maxLength: 3 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.airline.boardingFee Integer No

The amount charged for boarding the plane, in minor units.

  • Encoding: Numeric
  • minLength: 1 character
  • maxLength: 11 characters
enhancedSchemeData.airline.designatorCode String No

The IATA 2-letter accounting code (PAX) that identifies the carrier.

  • Encoding: ASCII
  • Example: KLM = KL
  • minLength: 2 characters
  • maxLength: 2 characters
  • Must not start with a space or be all spaces.
enhancedSchemeData.airline.passengers[] Array No
enhancedSchemeData.airline.passengers[].lastName String No

The passenger's last name.

This field is required if the airline data includes passenger details or leg details.

  • Encoding: ASCII
enhancedSchemeData.airline.passengers[].phoneNumber String No

The passenger's phone number, including country code. This is an alphanumeric field that can include the '+' and '-' signs.

  • Encoding: ASCII
  • minLength: 3 characters
  • maxLength: 30 characters
enhancedSchemeData.airline.passengers[].firstName String No

The passenger's first name.

This field is required if the airline data includes passenger details or leg details.

  • Encoding: ASCII
enhancedSchemeData.airline.passengers[].travellerType String No

The IATA passenger type code (PTC).

  • Encoding: ASCII
  • minLength: 3 characters
  • maxLength: 6 characters
enhancedSchemeData.airline.passengers[].dateOfBirth String No

The passenger's date of birth.

  • Format yyyy-MM-dd
  • minLength: 10
  • maxLength: 10
enhancedSchemeData.airline.documentType String No

A code that identifies the type of item bought. The description of the code can appear on credit card statements.

  • Encoding: ASCII
  • Example: Passenger ticket = 01
  • minLength: 2 characters
  • maxLength: 2 characters
enhancedSchemeData.airline.agency Object No
enhancedSchemeData.airline.agency.planName String No

The two-letter agency plan identifier.

  • Encoding: ASCII
  • minLength: 2 characters
  • maxLength: 2 characters
enhancedSchemeData.airline.agency.invoiceNumber String No

The reference number for the invoice, issued by the agency.

  • Encoding: ASCII
  • minLength: 1 character
  • maxLength: 6 characters
enhancedSchemeData.airline.passengerName String Yes

The passenger's name, initials, and title.

  • Format: last name + first name or initials + title
  • Example: FLYER / MARY MS
  • minLength: 1 character
  • maxLength: 20 characters
  • If you send more than 20 characters, the name is truncated
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.levelTwoThree Object No

Level 2 and Level 3 enhanced scheme data that may be required for processing the transaction and/or for interchange savings.

enhancedSchemeData.levelTwoThree.orderDate String No

The date of the order.

  • Min Length: 10 characters
  • Max Length: 10 characters
  • Format ISO 8601: yyyy-MM-dd
enhancedSchemeData.levelTwoThree.shipFromPostalCode String No

The postal code of the address where the item is shipped from.

  • Encoding: ASCII
  • Max length: 10 characters
  • For the US, it must be in five or nine digits format. For example, 10001 or 10001-0000.
  • For Canada, it must be in 6 digits format. For example, M4B 1G5.
enhancedSchemeData.levelTwoThree.dutyAmount Integer No

The duty tax amount, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000
enhancedSchemeData.levelTwoThree.destination Object No

The destination address information.

enhancedSchemeData.levelTwoThree.destination.postalCode String No

The postal code of the destination address.

  • Encoding: ASCII
  • Max length: 10 characters
  • Must not start with a space.
  • For the US, it must be in five or nine digits format. For example, 10001 or 10001-0000.
  • For Canada, it must be in 6 digits format. For example, M4B 1G5.
enhancedSchemeData.levelTwoThree.destination.stateOrProvince String No

The state or province code of the destination address.

  • Encoding: ASCII
  • Max length: 3 characters
  • Must not start with a space.
enhancedSchemeData.levelTwoThree.destination.countryCode String No

The two-letter ISO 3166-1 alpha-2 or three-letter ISO 3166-1 alpha-3 country code for the destination address.

  • Encoding: ASCII
  • Min length: 2 characters
  • Max length: 3 characters
enhancedSchemeData.levelTwoThree.totalTaxAmount Integer No

The amount of state or provincial tax included in the total transaction amount, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000
  • For L2 data: must not be all zeroes.
  • For L3 data: can be zero.
enhancedSchemeData.levelTwoThree.customerReferenceNumber String No

The reference number to identify the customer and their order.

  • Format: ASCII
  • Max length: 25 characters
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.levelTwoThree.itemDetailLines[] Array No

The list of item detail lines.

enhancedSchemeData.levelTwoThree.itemDetailLines[].description String No

A description of the item, that provides details about the purchase.

For Visa transactions with level 3 ESD, the description must not be the same or very similar to your merchant name, or, consist only of common words like "product", or "service".

  • Encoding: ASCII
  • Max length: 26 characters
  • Must not be a single character.
  • Must not be blank.
  • Must not be all special characters.
  • Must not start with a space or be all spaces.
  • Must not be all zeros.
enhancedSchemeData.levelTwoThree.itemDetailLines[].quantity Integer No

The number of items. Must be an integer greater than zero.

  • Encoding: Numeric
  • Max value: 9999
enhancedSchemeData.levelTwoThree.itemDetailLines[].totalAmount Integer No

The total amount for the line item, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000

See Amount requirements for level 2/3 ESD to learn more about how to calculate the line item total.

enhancedSchemeData.levelTwoThree.itemDetailLines[].commodityCode String No

The code that identifies the item in a standardized commodity coding scheme. There are different commodity coding schemes:

  • UNSPSC commodity codes

  • HS commodity codes

  • NAICS commodity codes

  • NAPCS commodity codes

  • Encoding: ASCII

  • Max length: 12 characters

  • Must not start with a space or be all spaces.

  • Must not be all zeros.

enhancedSchemeData.levelTwoThree.itemDetailLines[].discountAmount Integer No

The discount amount, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000
enhancedSchemeData.levelTwoThree.itemDetailLines[].productCode String No

The product code. Must be a unique product code associated with the item or service. This can be your unique code for the item, or the manufacturer's product code.

  • Encoding: ASCII.
  • Max length: 12 characters
enhancedSchemeData.levelTwoThree.itemDetailLines[].unitOfMeasure String No

The unit of measurement for an item.

  • Encoding: ASCII
  • Max length: 3 characters
enhancedSchemeData.levelTwoThree.itemDetailLines[].unitPrice Integer No

The unit price, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000
enhancedSchemeData.levelTwoThree.freightAmount Integer No

The shipping amount, in minor units.

  • For example, 2000 means USD 20.00.
  • Encoding: Numeric
  • Max value: 10000000000
merchantAccount String Yes

The merchant account that is used to process the payment.

reference String No

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

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.