Adyen · Schema
CancelOrRefundRequest
PaymentsFinancial ServicesFintechAgentic CommercePoint-of-SalePayment Processing
Properties
| Name | Type | Description |
|---|---|---|
| additionalData | object | This field contains additional data, which may be required for a particular modification request. The additionalData object consists of entries, each of which includes the key and value. |
| merchantAccount | string | The merchant account that is used to process the payment. |
| mpiData | object | Authentication data produced by an MPI (Mastercard SecureCode, Visa Secure, or Cartes Bancaires). |
| originalMerchantReference | string | The original merchant reference to cancel. |
| originalReference | string | The original pspReference of the payment to modify. This reference is returned in: * authorisation response * authorisation notification |
| platformChargebackLogic | object | Defines how to book chargebacks when using [Adyen for Platforms](https://docs.adyen.com/marketplaces-and-platforms/processing-payments#chargebacks-and-disputes). |
| reference | string | Your reference for the payment modification. This reference is visible in Customer Area and in reports. Maximum length: 80 characters. |
| tenderReference | string | The transaction reference provided by the PED. For point-of-sale integrations only. |
| uniqueTerminalId | string | Unique terminal ID for the PED that originally processed the request. For point-of-sale integrations only. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/adyen/main/json-schema/adyen-cancel-or-refund-request-schema.json",
"title": "CancelOrRefundRequest",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/adyen-cancelorrefund-api-openapi.yml#/components/schemas/CancelOrRefundRequest",
"properties": {
"additionalData": {
"additionalProperties": {
"type": "string"
},
"x-anyOf": [
{
"$ref": "#/$defs/AdditionalData3DSecure"
},
{
"$ref": "#/$defs/AdditionalDataAirline"
},
{
"$ref": "#/$defs/AdditionalDataCarRental"
},
{
"$ref": "#/$defs/AdditionalDataCommon"
},
{
"$ref": "#/$defs/AdditionalDataLevel23"
},
{
"$ref": "#/$defs/AdditionalDataLodging"
},
{
"$ref": "#/$defs/AdditionalDataModifications"
},
{
"$ref": "#/$defs/AdditionalDataOpenInvoice"
},
{
"$ref": "#/$defs/AdditionalDataOpi"
},
{
"$ref": "#/$defs/AdditionalDataRatepay"
},
{
"$ref": "#/$defs/AdditionalDataRetry"
},
{
"$ref": "#/$defs/AdditionalDataRisk"
},
{
"$ref": "#/$defs/AdditionalDataRiskStandalone"
},
{
"$ref": "#/$defs/AdditionalDataSubMerchant"
},
{
"$ref": "#/$defs/AdditionalDataTemporaryServices"
},
{
"$ref": "#/$defs/AdditionalDataWallets"
}
],
"description": "This field contains additional data, which may be required for a particular modification request.\n\nThe additionalData object consists of entries, each of which includes the key and value.",
"type": "object"
},
"merchantAccount": {
"description": "The merchant account that is used to process the payment.",
"type": "string"
},
"mpiData": {
"x-addedInVersion": "46",
"description": "Authentication data produced by an MPI (Mastercard SecureCode, Visa Secure, or Cartes Bancaires).",
"$ref": "#/$defs/ThreeDSecureData"
},
"originalMerchantReference": {
"x-addedInVersion": "30",
"description": "The original merchant reference to cancel.",
"type": "string"
},
"originalReference": {
"description": "The original pspReference of the payment to modify.\nThis reference is returned in:\n* authorisation response\n* authorisation notification\n\n",
"type": "string"
},
"platformChargebackLogic": {
"x-addedInVersion": "68",
"description": "Defines how to book chargebacks when using [Adyen for Platforms](https://docs.adyen.com/marketplaces-and-platforms/processing-payments#chargebacks-and-disputes).",
"$ref": "#/$defs/PlatformChargebackLogic"
},
"reference": {
"description": "Your reference for the payment modification. This reference is visible in Customer Area and in reports.\nMaximum length: 80 characters.",
"type": "string"
},
"tenderReference": {
"x-addedInVersion": "25",
"description": "The transaction reference provided by the PED. For point-of-sale integrations only.",
"type": "string"
},
"uniqueTerminalId": {
"x-addedInVersion": "25",
"description": "Unique terminal ID for the PED that originally processed the request. For point-of-sale integrations only.",
"type": "string"
}
},
"required": [
"merchantAccount",
"originalReference"
],
"type": "object",
"$defs": {
"AdditionalData3DSecure": {
"properties": {
"allow3DS2": {
"description": "Indicates if you are able to process 3D Secure 2 transactions natively on your payment page. Send this parameter when you are using `/payments` endpoint with any of our [native 3D Secure 2 solutions](https://docs.adyen.com/online-payments/3d-secure/native-3ds2).\n\n > This parameter only indicates readiness to support native 3D Secure 2 authentication. To specify if you _want_ to perform 3D Secure, use [Dynamic 3D Secure](/risk-management/dynamic-3d-secure)\nor send the `executeThreeD` parameter.\nPossible values:\n* **true** - Ready to support native 3D Secure 2 authentication. Setting this to true does not mean always applying 3D Secure 2. Adyen still selects the version of 3D Secure based on configuration to optimize authorisation rates and improve the shopper's experience.\n* **false** – Not ready to support native 3D Secure 2 authentication. Adyen will not offer 3D Secure 2 to your shopper regardless of your configuration.\n",
"type": "string"
},
"challengeWindowSize": {
"description": "Dimensions of the 3DS2 challenge window to be displayed to the cardholder.\n\nPossible values:\n\n* **01** - size of 250x400 \n* **02** - size of 390x400\n* **03** - size of 500x600\n* **04** - size of 600x400\n* **05** - Fullscreen",
"enum": [
"01",
"02",
"03",
"04",
"05"
],
"type": "string"
},
"executeThreeD": {
"description": "Indicates if you want to perform 3D Secure authentication on a transaction.\n\n > Alternatively, you can use [Dynamic 3D Secure](/risk-management/dynamic-3d-secure) to configure rules for applying 3D Secure.\n\nPossible values:\n* **true** – Perform 3D Secure authentication.\n* **false** – Don't perform 3D Secure authentication. Note that this setting results in refusals if the issuer mandates 3D Secure because of the PSD2 directive or other, national regulations. \n",
"type": "string"
},
"mpiImplementationType": {
"description": "In case of Secure+, this field must be set to **CUPSecurePlus**.",
"type": "string"
},
"scaExemption": {
"description": "Indicates the [exemption type](https://docs.adyen.com/payments-fundamentals/psd2-sca-compliance-and-implementation-guide#specifypreferenceinyourapirequest) that you want to request for the transaction.\n\n Possible values:\n* **lowValue** \n* **secureCorporate** \n* **trustedBeneficiary** \n* **transactionRiskAnalysis** ",
"type": "string"
},
"threeDSVersion": {
"description": "Indicates your preference for the 3D Secure version. \n> If you use this parameter, you override the checks from Adyen's Authentication Engine. We recommend to use this field only if you have an extensive knowledge of 3D Secure.\n\nPossible values:\n* **1.0.2**: Apply 3D Secure version 1.0.2. \n* **2.1.0**: Apply 3D Secure version 2.1.0. \n* **2.2.0**: Apply 3D Secure version 2.2.0. If the issuer does not support version 2.2.0, we will fall back to 2.1.0.\n\nThe following rules apply:\n* If you prefer 2.1.0 or 2.2.0 but we receive a negative `transStatus` in the `ARes`, we will apply the fallback policy configured in your account. For example, if the configuration is to fall back to 3D Secure 1, we will apply version 1.0.2.\n* If you prefer 2.1.0 or 2.2.0 but the BIN is not enrolled, you will receive an error.\n\n",
"type": "string"
}
},
"type": "object"
},
"AdditionalDataAirline": {
"properties": {
"airline.agency_invoice_number": {
"description": "The reference number for the invoice, issued by the agency.\n* Encoding: ASCII\n* minLength: 1 character\n* maxLength: 6 characters",
"type": "string"
},
"airline.agency_plan_name": {
"description": "The two-letter agency plan identifier.\n* Encoding: ASCII\n* minLength: 2 characters\n* maxLength: 2 characters",
"type": "string"
},
"airline.airline_code": {
"description": "The [IATA](https://www.iata.org/services/pages/codes.aspx) 3-digit accounting code (PAX) that identifies the carrier.\n* Format: IATA 3-digit accounting code (PAX)\n* Example: KLM = 074\n* minLength: 3 characters\n* maxLength: 3 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.airline_designator_code": {
"description": "The [IATA](https://www.iata.org/services/pages/codes.aspx) 2-letter accounting code (PAX) that identifies the carrier.\n* Encoding: ASCII\n* Example: KLM = KL\n* minLength: 2 characters\n* maxLength: 2 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.boarding_fee": {
"description": "The amount charged for boarding the plane, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* Encoding: Numeric\n* minLength: 1 character\n* maxLength: 18 characters",
"type": "string"
},
"airline.computerized_reservation_system": {
"description": "The [CRS](https://en.wikipedia.org/wiki/Computer_reservation_system) used to make the reservation and purchase the ticket.\n* Encoding: ASCII\n* minLength: 4 characters\n* maxLength: 4 characters",
"type": "string"
},
"airline.customer_reference_number": {
"description": "The alphanumeric customer reference number.\n* Encoding: ASCII\n* maxLength: 20 characters\n* If you send more than 20 characters, the customer reference number is truncated\n* Must not be all spaces",
"type": "string"
},
"airline.document_type": {
"description": "A code that identifies the type of item bought. The description of the code can appear on credit card statements.\n* Encoding: ASCII\n* Example: Passenger ticket = 01\n* minLength: 2 characters\n* maxLength: 2 characters",
"type": "string"
},
"airline.flight_date": {
"description": "The flight departure date. Local time `(HH:mm)` is optional.\n* Date format: `yyyy-MM-dd`\n* Date and time format: `yyyy-MM-dd HH:mm`\n* minLength: 10 characters\n* maxLength: 16 characters",
"type": "string"
},
"airline.leg.carrier_code": {
"description": "The [IATA](https://www.iata.org/services/pages/codes.aspx) 2-letter accounting code (PAX) that identifies the carrier.\nThis field is required if the airline data includes leg details.\n* Example: KLM = KL\n* minLength: 2 characters\n* maxLength: 2 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.class_of_travel": {
"description": "A one-letter travel class identifier.\n The following are common:\n * F: first class\n* J: business class\n* Y: economy class\n* W: premium economy\n\n* Encoding: ASCII\n* minLength: 1 character\n* maxLength: 1 character\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.date_of_travel": {
"description": "\t\nDate and time of travel in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format `yyyy-MM-dd HH:mm`.\n* Encoding: ASCII\n* minLength: 16 characters\n* maxLength: 16 characters",
"type": "string"
},
"airline.leg.depart_airport": {
"description": "The [IATA](https://www.iata.org/services/pages/codes.aspx) three-letter airport code of the departure airport.\nThis field is required if the airline data includes leg details.\n\n* Encoding: ASCII\n* Example: Amsterdam = AMS\n* minLength: 3 characters\n* maxLength: 3 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.depart_tax": {
"description": "The amount of [departure tax](https://en.wikipedia.org/wiki/Departure_tax) charged, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* Encoding: Numeric\n* minLength: 1\n* maxLength: 12\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.destination_code": {
"description": "The [IATA](https://www.iata.org/services/pages/codes.aspx) 3-letter airport code of the destination airport.\nThis field is required if the airline data includes leg details.\n* Example: Amsterdam = AMS\n* Encoding: ASCII\n* minLength: 3 characters\n* maxLength: 3 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.fare_base_code": {
"description": "The [fare basis code](https://en.wikipedia.org/wiki/Fare_basis_code), alphanumeric.\n* minLength: 1 character\n* maxLength: 6 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.flight_number": {
"description": "The flight identifier.\n* minLength: 1 character\n* maxLength: 5 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.leg.stop_over_code": {
"description": "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.\n* Encoding: ASCII\n* minLength: 1 character\n* maxLength: 1 character",
"type": "string"
},
"airline.passenger.date_of_birth": {
"description": "The passenger's date of birth.\n\nDate format: `yyyy-MM-dd`\n* minLength: 10\n* maxLength: 10",
"type": "string"
},
"airline.passenger.first_name": {
"description": "The passenger's first name.\n> This field is required if the airline data includes passenger details or leg details.\n* Encoding: ASCII",
"type": "string"
},
"airline.passenger.last_name": {
"description": "The passenger's last name.\n> This field is required if the airline data includes passenger details or leg details.\n* Encoding: ASCII",
"type": "string"
},
"airline.passenger.telephone_number": {
"description": "The passenger's telephone number, including country code. This is an alphanumeric field that can include the '+' and '-' signs.\n* Encoding: ASCII\n* minLength: 3 characters\n* maxLength: 30 characters",
"type": "string"
},
"airline.passenger.traveller_type": {
"description": "The IATA passenger type code (PTC).\n* Encoding: ASCII\n* minLength: 3 characters\n* maxLength: 6 characters",
"type": "string"
},
"airline.passenger_name": {
"description": "The passenger's name, initials, and title.\n* Format: last name + first name or initials + title\n* Example: *FLYER / MARY MS*\n* minLength: 1 character\n* maxLength: 20 characters\n* If you send more than 20 characters, the name is truncated\n* Must not be all spaces \n*Must not be all zeros.",
"type": "string"
},
"airline.ticket_issue_address": {
"description": "The address of the organization that issued the ticket.\n* minLength: 0 characters\n* maxLength: 16 characters",
"type": "string"
},
"airline.ticket_number": {
"description": "The ticket's unique identifier.\n* minLength: 1 character\n* maxLength: 15 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.travel_agency_code": {
"description": "The unique identifier from IATA or ARC for the travel agency that issues the ticket.\n* Encoding: ASCII\n* minLength: 1 character\n* maxLength: 8 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"airline.travel_agency_name": {
"description": "The name of the travel agency.\n\n* Encoding: ASCII\n* minLength: 1 character\n* maxLength: 25 characters\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
}
},
"required": [
"airline.passenger_name"
],
"type": "object"
},
"AdditionalDataCarRental": {
"properties": {
"carRental.checkOutDate": {
"description": "The pick-up date.\n* Date format: `yyyyMMdd`",
"type": "string"
},
"carRental.customerServiceTollFreeNumber": {
"description": "The customer service phone number of the car rental company.\n* Format: Alphanumeric\n* maxLength: 17\n* For US and CA numbers must be 10 characters in length\n* Must not start with a space\n* Must not contain any special characters such as + or -\n*Must not be all zeros.",
"type": "string"
},
"carRental.daysRented": {
"description": "Number of days for which the car is being rented.\n* Format: Numeric\n* maxLength: 4\n* Must not be all spaces",
"type": "string"
},
"carRental.fuelCharges": {
"description": "Any fuel charges associated with the rental, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* Format: Numeric\n* maxLength: 12",
"type": "string"
},
"carRental.insuranceCharges": {
"description": "Any insurance charges associated with the rental, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* Format: Numeric\n* maxLength: 12\n* Must not be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.locationCity": {
"description": "The city where the car is rented.\n* Format: Alphanumeric\n* maxLength: 18\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.locationCountry": {
"description": "The country where the car is rented, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n* Format: Alphanumeric\n* maxLength: 2",
"type": "string"
},
"carRental.locationStateProvince": {
"description": "The state or province where the car is rented.\n* Format: Alphanumeric\n* maxLength: 2\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.noShowIndicator": {
"description": "Indicates if the customer didn't pick up their rental car.\n* Y - Customer did not pick up their car\n* N - Not applicable",
"type": "string"
},
"carRental.oneWayDropOffCharges": {
"description": "The charge for not returning a car to the original rental location, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* maxLength: 12",
"type": "string"
},
"carRental.rate": {
"description": "The daily rental rate, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* Format: Alphanumeric\n* maxLength: 12",
"type": "string"
},
"carRental.rateIndicator": {
"description": "Specifies whether the given rate is applied daily or weekly.\n* D - Daily rate\n* W - Weekly rate",
"type": "string"
},
"carRental.rentalAgreementNumber": {
"description": "The rental agreement number for the car rental.\n* Format: Alphanumeric\n* maxLength: 9\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.rentalClassId": {
"description": "The classification of the rental car.\n* Format: Alphanumeric\n* maxLength: 4\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.renterName": {
"description": "The name of the person renting the car.\n* Format: Alphanumeric\n* maxLength: 26\n* If you send more than 26 characters, the name is truncated\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.returnCity": {
"description": "The city where the car must be returned.\n* Format: Alphanumeric\n* maxLength: 18\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.returnCountry": {
"description": "The country where the car must be returned, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.\n* Format: Alphanumeric\n* maxLength: 2",
"type": "string"
},
"carRental.returnDate": {
"description": "The last date to return the car by.\n* Date format: `yyyyMMdd`\n* maxLength: 8",
"type": "string"
},
"carRental.returnLocationId": {
"description": "The agency code, phone number, or address abbreviation\n* Format: Alphanumeric\n* maxLength: 10\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.returnStateProvince": {
"description": "The state or province where the car must be returned.\n* Format: Alphanumeric\n* maxLength: 3\n* Must not start with a space or be all spaces\n*Must not be all zeros.",
"type": "string"
},
"carRental.taxExemptIndicator": {
"description": "Indicates if the goods or services were tax-exempt, or if tax was not paid on them.\n\nValues:\n* Y - Goods or services were tax exempt\n* N - Tax was not collected",
"type": "string"
},
"travelEntertainmentAuthData.duration": {
"description": "Number of days the car is rented for. This should be included in the auth message.\n* Format: Numeric\n* maxLength: 4",
"type": "string"
},
"travelEntertainmentAuthData.market": {
"description": "Indicates what market-specific dataset will be submitted or is being submitted. Value should be 'A' for car rental. This should be included in the auth message.\n* Format: Alphanumeric\n* maxLength: 1",
"type": "string"
}
},
"type": "object"
},
"AdditionalDataCommon": {
"properties": {
"RequestedTestErrorResponseCode": {
"description": "Triggers test scenarios that allow to replicate certain communication errors.\n\nAllowed values:\n* **NO_CONNECTION_AVAILABLE** – There wasn't a connection available to service the outgoing communication.\nThis is a transient, retriable error since no messaging could be initiated to an issuing system (or third-party acquiring system). Therefore, the header Transient-Error: true is returned in the response. A subsequent request using the same idempotency key will be processed as if it was the first request.\n* **IOEXCEPTION_RECEIVED** – Something went wrong during transmission of the message or receiving the response.\nThis is a classified as non-transient because the message could have been received by the issuing party and been acted upon. No transient error header is returned. If using idempotency, the (error) response is stored as the final result for the idempotency key. Subsequent messages with the same idempotency key not be processed beyond returning the stored response.",
"type": "string"
},
"allowPartialAuth": {
"description": "Set to true to authorise a part of the requested amount in case the cardholder does not have enough funds on their account. \nIf a payment was partially authorised, the response includes resultCode: PartiallyAuthorised and the authorised amount in additionalData.authorisedAmountValue.\nTo enable this functionality, contact our Support Team.",
"type": "string"
},
"authorisationType": {
"description": "Flags a card payment request for either pre-authorisation or final authorisation. For more information, refer to [Authorisation types](https://docs.adyen.com/online-payments/adjust-authorisation#authorisation-types).\n\nAllowed values:\n* **PreAuth** – flags the payment request to be handled as a pre-authorisation.\n* **FinalAuth** – flags the payment request to be handled as a final authorisation.",
"type": "string"
},
"customRoutingFlag": {
"description": "Allows you to determine or override the acquirer account that should be used for the transaction.\n\nIf you need to process a payment with an acquirer different from a default one, you can set up a corresponding configuration on the Adyen payments platform. Then you can pass a custom routing flag in a payment request's additional data to target a specific acquirer.\n\nTo enable this functionality, contact [Support](https://www.adyen.help/hc/en-us/requests/new).",
"type": "string"
},
"industryUsage": {
"description": "In case of [asynchronous authorisation adjustment](https://docs.adyen.com/online-payments/adjust-authorisation#adjust-authorisation), this field denotes why the additional payment is made.\n\nPossible values:\n\n * **NoShow**: An incremental charge is carried out because of a no-show for a guaranteed reservation.\n\n * **DelayedCharge**: An incremental charge is carried out to process an additional payment after the original services have been rendered and the respective payment has been processed.",
"enum": [
"NoShow",
"DelayedCharge"
],
"type": "string"
},
"manualCapture": {
"description": "Set to **true** to require [manual capture](https://docs.adyen.com/online-payments/capture) for the transaction.",
"type": "string"
},
"networkTxReference": {
"description": "Allows you to link the transaction to the original or previous one in a subscription/card-on-file chain. This field is required for token-based transactions where Adyen does not tokenize the card.\n\nTransaction identifier from card schemes, for example, Mastercard Trace ID or the Visa Transaction ID.\n\nSubmit the original transaction ID of the contract in your payment request if you are not tokenizing card details with Adyen and are making a merchant-initiated transaction (MIT) for subsequent charges.\n\nMake sure you are sending `shopperInteraction` **ContAuth** and `recurringProcessingModel` **Subscription** or **UnscheduledCardOnFile** to ensure that the transaction is classified as MIT.",
"type": "string"
},
"overwriteBrand": {
"description": "Boolean indicator that can be optionally used for performing debit transactions on combo cards (for example, combo cards in Brazil). This is not mandatory but we recommend that you set this to true if you want to use the `selectedBrand` value to specify how to process the transaction.",
"type": "string"
},
"subMerchantCity": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the city of the actual merchant's address.\n* Format: alpha-numeric.\n* Maximum length: 13 characters.",
"type": "string"
},
"subMerchantCountry": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the three-letter country code of the actual merchant's address.\n* Format: alpha-numeric.\n* Fixed length: 3 characters.",
"type": "string"
},
"subMerchantID": {
"description": "This field contains an identifier of the actual merchant when a transaction is submitted via a payment facilitator. The payment facilitator must send in this unique ID.\n\nA unique identifier per submerchant that is required if the transaction is performed by a registered payment facilitator.\n* Format: alpha-numeric.\n* Fixed length: 15 characters.",
"type": "string"
},
"subMerchantName": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the name of the actual merchant.\n* Format: alpha-numeric.\n* Maximum length: 22 characters.",
"type": "string"
},
"subMerchantPostalCode": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the postal code of the actual merchant's address.\n* Format: alpha-numeric.\n* Maximum length: 10 characters.",
"type": "string"
},
"subMerchantState": {
"description": "This field is required if the transaction is performed by a registered payment facilitator, and if applicable to the country. This field must contain the state code of the actual merchant's address.\n* Format: alpha-numeric.\n* Maximum length: 3 characters.",
"type": "string"
},
"subMerchantStreet": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the street of the actual merchant's address.\n* Format: alpha-numeric.\n* Maximum length: 60 characters.",
"type": "string"
},
"subMerchantTaxId": {
"description": "This field is required if the transaction is performed by a registered payment facilitator. This field must contain the tax ID of the actual merchant.\n* Format: alpha-numeric.\n* Fixed length: 11 or 14 characters.",
"type": "string"
}
},
"type": "object"
},
"AdditionalDataLevel23": {
"properties": {
"enhancedSchemeData.customerReference": {
"description": "The customer code.\n* Encoding: ASCII\n* Max length: 25 characters\n* Must not start with a space or be all spaces\n* Must not be all zeros.",
"type": "string"
},
"enhancedSchemeData.destinationCountryCode": {
"description": "The three-letter [ISO 3166-1 alpha-3 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) for the destination address.\n* Encoding: ASCII\n* Fixed length: 3 characters",
"type": "string"
},
"enhancedSchemeData.destinationPostalCode": {
"description": "The postal code of the destination address.\n* Encoding: ASCII\n* Max length: 10 characters\n* Must not start with a space",
"type": "string"
},
"enhancedSchemeData.destinationStateProvinceCode": {
"description": "Destination state or province code.\n* Encoding: ASCII\n* Max length: 3 characters\n* Must not start with a space",
"type": "string"
},
"enhancedSchemeData.dutyAmount": {
"description": "The duty amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* For example, 2000 means USD 20.00.\n* Encoding: Numeric\n* Max length: 12 characters",
"type": "string"
},
"enhancedSchemeData.freightAmount": {
"description": "The shipping amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* For example, 2000 means USD 20.00.\n* Encoding: Numeric\n*Max length: 12 characters",
"type": "string"
},
"enhancedSchemeData.itemDetailLine[itemNr].commodityCode": {
"description": "The [UNSPC commodity code](https://www.unspsc.org/) of the item.\n* Encoding: ASCII\n* Max length: 12 characters\n* Must not start with a space or be all spaces\n* Must not be all zeros.",
"type": "string"
},
"enhancedSchemeData.itemDetailLine[itemNr].description": {
"description": "A description of the item.\n* Encoding: ASCII\n* Max length: 26 characters\n* Must not start with a space or be all spaces\n* Must not be all zeros.",
"type": "string"
},
"enhancedSchemeData.itemDetailLine[itemNr].discountAmount": {
"description": "The discount amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes).\n* For example, 2000 means USD 20.00.\n* Encoding: Numeric\n* Max length: 12 characters",
"type": "string"
},
"enhancedSchemeData.itemDetailLine[itemNr].productCode": {
"description": "The product code.\n* Encoding: ASCII.\n* Max length: 12 characters\n* Must not start with a space or be all spaces\n* Must not be all zeros.",
"type": "string"
},
"enhancedSchemeData.itemDetailLine[itemNr].quantity": {
"description": "The number of items. Must be an integer greater than zero.\n* Encoding: Numeric\n* Max length: 12
# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adyen/refs/heads/main/json-schema/adyen-cancel-or-refund-request-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/adyen-cancel-or-refund-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.