---
title: "Start a transaction"
method: POST
path: "/payments"
tags: ["Payments"]
---

# Start a transaction

`POST /payments`

Sends payment parameters (like amount, country, and currency) together with other required input details collected from the shopper. To know more about required parameters for specific payment methods, refer to our [payment method guides](https://docs.adyen.com/payment-methods). 
The response depends on the [payment flow](https://docs.adyen.com/payment-methods#payment-flow):
* For a direct flow, the response includes a `pspReference` and a `resultCode` with the payment result, for example **Authorised** or **Refused**. 
* For a redirect or additional action, the response contains an `action` object.

## Headers

- `Idempotency-Key` string

## Request body

- PaymentRequest
  - `accountInfo` AccountInfo
    - `accountAgeIndicator` 'notApplicable' | 'thisTransaction' | 'lessThan30Days' | 'from30To60Days' | 'moreThan60Days' — Indicator for the length of time since this shopper account was created in the merchant's environment. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
    - `accountChangeDate` string, date-time — Date when the shopper's account was last changed.
    - `accountChangeIndicator` 'thisTransaction' | 'lessThan30Days' | 'from30To60Days' | 'moreThan60Days' — Indicator for the length of time since the shopper's account was last updated. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
    - `accountCreationDate` string, date-time — Date when the shopper's account was created.
    - `accountType` 'notApplicable' | 'credit' | 'debit' — Indicates the type of account. For example, for a multi-account card product. Allowed values: * notApplicable * credit * debit
    - `addCardAttemptsDay` integer — Number of attempts the shopper tried to add a card to their account in the last day.
    - `deliveryAddressUsageDate` string, date-time — Date the selected delivery address was first used.
    - `deliveryAddressUsageIndicator` 'thisTransaction' | 'lessThan30Days' | 'from30To60Days' | 'moreThan60Days' — Indicator for the length of time since this delivery address was first used. Allowed values: * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
    - `homePhone` string — Shopper's home phone number (including the country code).
    - `mobilePhone` string — Shopper's mobile phone number (including the country code).
    - `passwordChangeDate` string, date-time — Date when the shopper last changed their password.
    - `passwordChangeIndicator` 'notApplicable' | 'thisTransaction' | 'lessThan30Days' | 'from30To60Days' | 'moreThan60Days' — Indicator when the shopper has changed their password. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
    - `pastTransactionsDay` integer — Number of all transactions (successful and abandoned) from this shopper in the past 24 hours.
    - `pastTransactionsYear` integer — Number of all transactions (successful and abandoned) from this shopper in the past year.
    - `paymentAccountAge` string, date-time — Date this payment method was added to the shopper's account.
    - `paymentAccountIndicator` 'notApplicable' | 'thisTransaction' | 'lessThan30Days' | 'from30To60Days' | 'moreThan60Days' — Indicator for the length of time since this payment method was added to this shopper's account. Allowed values: * notApplicable * thisTransaction * lessThan30Days * from30To60Days * moreThan60Days
    - `purchasesLast6Months` integer — Number of successful purchases in the last six months.
    - `suspiciousActivity` boolean — Whether suspicious activity was recorded on this account.
    - `workPhone` string — Shopper's work phone number (including the country code).
  - `additionalAmount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `additionalData` object — This field contains additional data, which may be required for a particular payment request. The `additionalData` object consists of entries, each of which includes the key and value.
  - `amount` Amount, required
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `applicationInfo` ApplicationInfo
    - `adyenLibrary` CommonField
      - `name` string — Name of the field. For example, Name of External Platform.
      - `version` string — Version of the field. For example, Version of External Platform.
    - `adyenPaymentSource` CommonField
      - `name` string — Name of the field. For example, Name of External Platform.
      - `version` string — Version of the field. For example, Version of External Platform.
    - `externalPlatform` ExternalPlatform
      - `integrator` string — External platform integrator.
      - `name` string — Name of the field. For example, Name of External Platform.
      - `version` string — Version of the field. For example, Version of External Platform.
    - `merchantApplication` CommonField
      - `name` string — Name of the field. For example, Name of External Platform.
      - `version` string — Version of the field. For example, Version of External Platform.
    - `merchantDevice` MerchantDevice
      - `os` string — Operating system running on the merchant device.
      - `osVersion` string — Version of the operating system on the merchant device.
      - `reference` string — Merchant device reference.
    - `shopperInteractionDevice` ShopperInteractionDevice
      - `locale` string — Locale on the shopper interaction device.
      - `os` string — Operating system running on the shopper interaction device.
      - `osVersion` string — Version of the operating system on the shopper interaction device.
  - `authenticationData` AuthenticationData
    - `attemptAuthentication` 'always' | 'never' — Indicates when 3D Secure authentication should be attempted. This overrides all other rules, including [Dynamic 3D Secure settings](https://docs.adyen.com/risk-management/dynamic-3d-secure). Possible values: * **always**: Perform 3D Secure authentication. * **never**: Don't perform 3D Secure authentication. If PSD2 SCA or other national regulations require authentication, the transaction gets declined.
    - `authenticationOnly` boolean — Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorization. Default: **false**.
    - `threeDSRequestData` ThreeDSRequestData
      - `challengeWindowSize` '01' | '02' | '03' | '04' | '05' — Dimensions of the 3DS2 challenge window to be displayed to the cardholder. Possible values: * **01** - size of 250x400 * **02** - size of 390x400 * **03** - size of 500x600 * **04** - size of 600x400 * **05** - Fullscreen
      - `dataOnly` 'false' | 'true' — Required to trigger the [data-only flow](https://docs.adyen.com/online-payments/3d-secure/data-only/). When set to **true**, forces the 3D Secure 2 data-only flow for all transactions where it is possible.
      - `nativeThreeDS` 'preferred' | 'disabled' — Indicates if [native 3D Secure authentication](https://docs.adyen.com/online-payments/3d-secure/native-3ds2) should be triggered when available. Adyen can still select to fallback to the redirect flow to optimize authorization rates and improve the shopper's experience. Possible values: * **preferred**: Use native 3D Secure authentication when available. * **disabled**: Use the redirect 3D Secure authentication flow.
      - `threeDSVersion` '2.1.0' | '2.2.0' — The version of 3D Secure to use. Possible values: * **2.1.0** * **2.2.0**
  - `bankAccount` CheckoutBankAccount
    - `accountType` 'balance' | 'checking' | 'deposit' | 'general' | 'other' | 'payment' | 'savings' — The type of the bank account.
    - `bankAccountNumber` string — The bank account number (without separators).
    - `bankCity` string — The bank city.
    - `bankLocationId` string — The location id of the bank. The field value is `nil` in most cases.
    - `bankName` string — The name of the bank.
    - `bic` string — The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.
    - `countryCode` string — Country code where the bank is located. A valid value is an ISO two-character country code (e.g. 'NL').
    - `iban` string — The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).
    - `ownerName` string — The name of the bank account holder. If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: * χ12 is converted to ch12. * üA is converted to euA. * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: * John17 - allowed. * J17 - allowed. * 171 - not allowed. * John-7 - allowed. > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
    - `taxId` string — The bank account holder's tax ID.
  - `billingAddress` BillingAddress
    - `city` string, required — The name of the city. Maximum length: 3000 characters.
    - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
    - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
    - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
    - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
    - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
  - `browserInfo` BrowserInfo
    - `acceptHeader` string, required — The accept header value of the shopper's browser.
    - `colorDepth` integer, required — The color depth of the shopper's browser in bits per pixel. This should be obtained by using the browser's `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 30, 32 or 48 bit color depth.
    - `javaEnabled` boolean, required — Boolean value indicating if the shopper's browser is able to execute Java.
    - `javaScriptEnabled` boolean — Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present.
    - `language` string, required — The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47).
    - `screenHeight` integer, required — The total height of the shopper's device screen in pixels.
    - `screenWidth` integer, required — The total width of the shopper's device screen in pixels.
    - `timeZoneOffset` integer, required — Time difference between UTC time and the shopper's browser local time, in minutes.
    - `userAgent` string, required — The user agent value of the shopper's browser.
  - `captureDelayHours` integer — The [delay between the authorization and automatic capture](https://docs.adyen.com/online-payments/capture?tab=delayed-individual_2#delayed-automatic-capture) of the payment, specified in hours. Maximum value: **672** (28 days).
  - `channel` 'iOS' | 'Android' | 'Web' — The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`. Possible values: * iOS * Android * Web
  - `checkoutAttemptId` string — Checkout attempt ID that corresponds to the Id generated by the client SDK for tracking user payment journey.
  - `company` Company
    - `homepage` string — The company website's home page.
    - `name` string — The company name.
    - `registrationNumber` string — Registration number of the company.
    - `registryLocation` string — Registry location of the company.
    - `taxId` string — Tax ID of the company.
    - `type` string — The company type.
  - `conversionId` string — Conversion ID that corresponds to the Id generated by the client SDK for tracking user payment journey.
  - `countryCode` string — The shopper country code. Format: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Example: NL or DE
  - `dateOfBirth` string, date-time — The shopper's date of birth. Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD
  - `dccQuote` ForexQuote
    - `account` string — The account name.
    - `accountType` string — The account type.
    - `baseAmount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `basePoints` integer, required — The base points.
    - `buy` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `interbank` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `reference` string — The reference assigned to the forex quote request.
    - `sell` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `signature` string — The signature to validate the integrity.
    - `source` string — The source of the forex quote.
    - `type` string — The type of forex.
    - `validTill` string, date-time, required — The date until which the forex quote is valid.
  - `deliverAt` string, date-time — The date and time the purchased goods should be delivered. Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD Example: 2017-07-17T13:42:40.428+01:00
  - `deliveryAddress` DeliveryAddress
    - `city` string, required — The name of the city. Maximum length: 3000 characters.
    - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
    - `firstName` string
    - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
    - `lastName` string
    - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
    - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
    - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
  - `deliveryDate` string, date-time — The date and time the purchased goods should be delivered. Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD Example: 2017-07-17T13:42:40.428+01:00
  - `deviceFingerprint` string — A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).
  - `enableOneClick` boolean — When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition).
  - `enablePayOut` boolean — When true and `shopperReference` is provided, the payment details will be tokenized for payouts.
  - `enableRecurring` boolean — When true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments.
  - `enhancedSchemeData` EnhancedSchemeData
    - `airline` Airline
      - `agency` Agency
        - `invoiceNumber` string — The reference number for the invoice, issued by the agency. * Encoding: ASCII * minLength: 1 character * maxLength: 6 characters * **additionalData key:** `airline.agency_invoice_number`
        - `planName` string — The two-letter agency plan identifier. * Encoding: ASCII * minLength: 2 characters * maxLength: 2 characters * **additionalData key:** `airline.agency_plan_name`
      - `boardingFee` integer — The amount charged for boarding the plane, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * Encoding: Numeric * minLength: 1 character * maxLength: 11 characters * **additionalData key:** `airline.boarding_fee`
      - `code` string — The [IATA](https://www.iata.org/services/pages/codes.aspx) 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. * **additionalData key:** `airline.airline_code`
      - `computerizedReservationSystem` string — The [CRS](https://en.wikipedia.org/wiki/Computer_reservation_system) used to make the reservation and purchase the ticket. * Encoding: ASCII * minLength: 4 characters * maxLength: 4 characters * **additionalData key:** `airline.computerized_reservation_system`
      - `customerReferenceNumber` string — 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. * **additionalData key:** `airline.customer_reference_number`
      - `designatorCode` string — The [IATA](https://www.iata.org/services/pages/codes.aspx) 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. * **additionalData key:** `airline.airline_designator_code`
      - `documentType` string — 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 * **additionalData key:** `airline.document_type`
      - `flightDate` string, date-time — 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 * **additionalData key:** `airline.flight_date`
      - `legs` Leg[]
        - `carrierCode` string — The [IATA](https://www.iata.org/services/pages/codes.aspx) 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. * **additionalData key:** `airline.leg[N].carrier_code`
        - `classOfTravel` string — 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. * **additionalData key:** `airline.leg[N].class_of_travel`
        - `dateOfTravel` string, date-time — Date and time of travel in format `yyyy-MM-ddTHH:mm`. * Use local time of departure airport. * minLength: 16 characters * maxLength: 16 characters * **additionalData key:** `airline.leg[N].date_of_travel`
        - `departureAirportCode` string — The [IATA](https://www.iata.org/services/pages/codes.aspx) 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. * **additionalData key:** `airline.leg[N].depart_airport`
        - `departureTax` integer — The amount of [departure tax](https://en.wikipedia.org/wiki/Departure_tax) charged, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * Encoding: Numeric * minLength: 1 * maxLength: 11 * Must not be all zeros. * **additionalData key:** `airline.leg[N].depart_tax`
        - `destinationAirportCode` string — The [IATA](https://www.iata.org/services/pages/codes.aspx) 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. * **additionalData key:** `airline.leg[N].destination_code`
        - `fareBasisCode` string — The [fare basis code](https://en.wikipedia.org/wiki/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. * **additionalData key:** `airline.leg[N].fare_base_code`
        - `flightNumber` string — The flight identifier. * minLength: 1 character * maxLength: 5 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `airline.leg[N].flight_number`
        - `stopOverCode` string — 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 * **additionalData key:** `airline.leg[N].stop_over_code`
      - `passengerName` string, required — 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. * **additionalData key:** `airline.passenger_name`
      - `passengers` Passenger[]
        - `dateOfBirth` string, date — The passenger's date of birth. * Format `yyyy-MM-dd` * minLength: 10 * maxLength: 10 * **additionalData key:** `airline.passenger[N].date_of_birth`
        - `firstName` string — The passenger's first name. > This field is required if the airline data includes passenger details or leg details. * Encoding: ASCII * **additionalData key:** `airline.passenger[N].first_name`
        - `lastName` string — The passenger's last name. > This field is required if the airline data includes passenger details or leg details. * Encoding: ASCII * **additionalData key:** `airline.passenger[N].last_name`
        - `phoneNumber` string — 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 * **additionalData key:** `airline.passenger[N].phone_number`
        - `travellerType` string — The IATA passenger type code (PTC). * Encoding: ASCII * minLength: 3 characters * maxLength: 6 characters * **additionalData key:** `airline.passenger[N].traveller_type`
      - `ticket` Ticket
        - `issueAddress` string — The address of the organization that issued the ticket. * minLength: 0 characters * maxLength: 16 characters * **additionalData key:** `airline.ticket_issue_address`
        - `issueDate` string, date — The date that the ticket was issued to the passenger. * minLength: 10 characters * maxLength: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `airline.issue_date`
        - `number` string — 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. * **additionalData key:** `airline.ticket_number`
      - `travelAgency` TravelAgency
        - `code` string — 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. * **additionalData key:** `airline.travel_agency_code`
        - `name` string — 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. * **additionalData key:** `airline.travel_agency_name`
    - `carRental` CarRental
      - `customerServicePhoneNumber` string — The customer service phone number of the car rental company. * Format: Alphanumeric * maxLength: 17 * For US and CA numbers must be 10 characters in length * Must not contain any special characters such as + or - * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.customerServiceTollFreeNumber`
      - `noShow` boolean — Indicates if the customer didn't pick up their rental car. * **additionalData key:** `carRental.noShowIndicator`
      - `pickupInfo` PickupInfo
        - `city` string — The city where the car is rented. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.locationCity`
        - `countryCode` string — The country where the car is rented, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. * maxLength: 2 characters * **additionalData key:** `carRental.locationCountry`
        - `date` string, date — The pick-up date. * minLength: 10 characters * maxLength: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `carRental.checkOutDate`
        - `stateOrProvince` string — The state or province where the car is rented. * maxLength: 3 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.locationStateProvince`
      - `rateType` 'daily' | 'weekly' — Indicates whether the rental rate is daily or weekly. * **additionalData key:** `carRental.rateIndicator`
      - `rentalAgreementNumber` string — The rental agreement number for the car rental. * Format: ASCII * maxLength: 9 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.rentalAgreementNumber`
      - `rentalClassId` string — The classification of the rental car. * Format: Alphanumeric * maxLength: 4 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.rentalClassId`
      - `rentalDays` integer — The number of days the car is rented for. * Format: Numeric * Max value: 9999 * **additionalData key:** `carRental.daysRented`
      - `rentalRate` integer — Rental rate, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * Frequency of the rental rate is specified in the rateType field. * **additionalData key:** `carRental.rate`
      - `rentalSurcharges` RentalSurcharges
        - `fuel` integer — The fuel charges associated with the rental, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `carRental.fuelCharges`
        - `insurance` integer — Any insurance charges associated with the rental, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `carRental.insuranceCharges`
        - `oneWayDropOff` integer — The charge for not returning a car to the original rental location, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `carRental.oneWayDropOffCharges`
      - `renterName` string, required — The name of the person renting the car. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.renterName`
      - `returnInfo` ReturnInfo
        - `city` string — The city where the car must be returned. * Format: ASCII * maxLength: 18 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.returnCity`
        - `countryCode` string — 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. * maxLength: 2 characters * **additionalData key:** `carRental.returnCountry`
        - `date` string, date — The date by which the car must be returned. * minLength: 10 characters * maxLength: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `carRental.returnDate`
        - `locationId` string — The agency code, phone number, or address abbreviation. * Format: ASCII * maxLength: 10 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.returnLocationId`
        - `stateOrProvince` string — The state or province where the car must be returned. * Format: ASCII * maxLength: 3 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `carRental.returnStateProvince`
      - `taxExempt` boolean — Indicates if the goods or services were tax-exempt, or if tax was not collected. * **additionalData key:** `carRental.taxExemptIndicator`
    - `levelTwoThree` LevelTwoThree
      - `customerReferenceNumber` string — 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. * **additionalData key:** `enhancedSchemeData.customerReference`
      - `destination` Destination
        - `countryCode` string — The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or three-letter [ISO 3166-1 alpha-3 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) for the destination address. * Encoding: ASCII * Min length: 2 characters * Max length: 3 characters * **additionalData key:** `enhancedSchemeData.destinationCountryCode`
        - `postalCode` string — 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. * **additionalData key:** `enhancedSchemeData.destinationPostalCode`
        - `stateOrProvince` string — The state or province code of the destination address. * Encoding: ASCII * Max length: 3 characters * Must not start with a space. * **additionalData key:** `enhancedSchemeData.destinationStateProvinceCode`
      - `dutyAmount` integer — The duty tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `enhancedSchemeData.dutyAmount`
      - `freightAmount` integer — The shipping amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `enhancedSchemeData.freightAmount`
      - `itemDetailLines` ItemDetailLine[] — The list of item detail lines.
        - `commodityCode` string — The code that identifies the item in a standardized commodity coding scheme. There are different commodity coding schemes: * [UNSPSC commodity codes](https://www.ungm.org/public/unspsc) * [HS commodity codes](https://www.wcoomd.org/en/topics/nomenclature/overview.aspx) * [NAICS commodity codes](https://www.census.gov/naics/) * [NAPCS commodity codes](https://www.census.gov/naics/napcs/) * Encoding: ASCII * Max length: 12 characters * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].commodityCode`
        - `description` string — 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. * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].description`
        - `discountAmount` integer — The discount amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].discountAmount`
        - `productCode` string — 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 * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].productCode`
        - `quantity` integer — The number of items. Must be an integer greater than zero. * Encoding: Numeric * Max value: 9999 * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].quantity`
        - `totalAmount` integer — The total amount for the line item, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 See [Amount requirements for level 2/3 ESD](https://docs.adyen.com//payment-methods/cards/enhanced-scheme-data/l2-l3#amount-requirements) to learn more about how to calculate the line item total. * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].totalAmount`
        - `unitOfMeasure` string — The unit of measurement for an item. * Encoding: ASCII * Max length: 3 characters * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].unitOfMeasure`
        - `unitPrice` integer — The unit price, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `enhancedSchemeData.itemDetailLine[N].unitPrice`
      - `orderDate` string, date — The date of the order. * Min Length: 10 characters * Max Length: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `enhancedSchemeData.orderDate`
      - `shipFromPostalCode` string — 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. * **additionalData key:** `enhancedSchemeData.shipFromPostalCode`
      - `totalTaxAmount` integer — The amount of state or provincial [tax included in the total transaction amount](https://docs.adyen.com/payment-methods/cards/enhanced-scheme-data/l2-l3#requirements-to-send-level-2-3-esd), in [minor units](https://docs.adyen.com/development-resources/currency-codes). * 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. * **additionalData key:** `enhancedSchemeData.totalTaxAmount`
    - `lodging` Lodging
      - `checkInDate` string, date — The check-in date. * Min Length: 10 characters * Max Length: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `lodging.checkInDate`
      - `checkOutDate` string, date — The check-out date. * Min Length: 10 characters * Max Length: 10 characters * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `lodging.checkOutDate`
      - `customerServicePhoneNumber` string — The toll-free phone number for the lodging customer service. * Format: Alphanumeric * For US and CA numbers must be 10 characters in length * Must not start with a space * Must not contain any special characters such as + or - * Must not be all zeros. * **additionalData key:** `lodging.customerServiceTollFreeNumber`
      - `fireSafetyCompliance` boolean — Indicates that the facility complies with the Hotel and Motel Fire Safety Act of 1990. * **additionalData key:** `lodging.fireSafetyActIndicator`
      - `folio` Folio
        - `cashAdvances` integer — The folio cash advances, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.folioCashAdvances`
        - `number` string — The card acceptor's internal invoice or billing ID reference number. * Format: Alphanumeric * Must not start with a space * Must not contain any special characters * Must not be all zeros. * **additionalData key:** `lodging.folioNumber`
      - `foodBeverageCharges` integer — Any charges for food and beverages associated with the booking, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.foodBeverageCharges`
      - `lodgingChargeType` 'advanceDeposit' | 'noShow' | 'stay' — The category of lodging charges for the payment. * **additionalData key:** `lodging.specialProgramCode`
      - `noShow` boolean — Indicates if the customer didn't check in for their booking. * **additionalData key:** `lodging.noShowIndicator`
      - `prepaidExpenses` integer — The prepaid expenses for the booking, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.prepaidExpenses`
      - `propertyPhoneNumber` string — The lodging property location's phone number. * Format: Alphanumeric * Min length: 10 characters * For US and CA numbers must be 10 characters in length * Must not start with a space * Must not contain any special characters such as + or - * Must not be all zeros. * **additionalData key:** `lodging.propertyPhoneNumber`
      - `renterName` string — The name of the person renting the room. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `lodging.renterName`
      - `rooms` Room[] — The list of rooms booked.
        - `numberOfNights` integer — The total number of nights the room is booked for. * Format: Numeric * Must be a number between 1 and 99 * **additionalData key:** `lodging.room[N].numberOfNights`
        - `rate` integer — Room rate per night, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.room[N].rate`
      - `totalRoomTax` integer — The total room tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.totalRoomTax`
      - `totalTax` integer — The total tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `lodging.totalTax`
    - `temporaryServices` TemporaryServices
      - `employeeName` string — The name or ID of the person working in a temporary capacity. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `enhancedSchemeData.employeeName`
      - `endDate` string, date — The billing period end date. * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `enhancedSchemeData.tempWeekEnding`
      - `hourRate` integer — The hourly rate for the temporary services, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * For example, 2000 means USD 20.00. * Encoding: Numeric * Max value: 10000000000 * **additionalData key:** `enhancedSchemeData.regularHoursRate`
      - `hoursWorked` integer — The number of hours worked during the billing period. * Format: Numeric * **additionalData key:** `enhancedSchemeData.regularHoursWorked`
      - `jobDescription` string — The job description of the person working in a temporary capacity. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `enhancedSchemeData.jobDescription`
      - `serviceRequestor` string — The name of the person requesting the temporary services. * Format: ASCII * Must not start with a space or be all spaces. * Must not be all zeros. * **additionalData key:** `enhancedSchemeData.requestName`
      - `startDate` string, date — The billing period start date. * Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): yyyy-MM-dd * **additionalData key:** `enhancedSchemeData.tempStartDate`
  - `entityType` 'NaturalPerson' | 'CompanyName' — The type of the entity the payment is processed for.
  - `fraudOffset` integer — An integer value that is added to the normal fraud score. The value can be either positive or negative.
  - `fundOrigin` FundOrigin
    - `billingAddress` Address
      - `city` string, required — The name of the city. Maximum length: 3000 characters.
      - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
      - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
      - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
      - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
      - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
    - `shopperEmail` string — The email address of the person funding the money.
    - `shopperName` Name
      - `firstName` string, required — The first name.
      - `lastName` string, required — The last name.
    - `telephoneNumber` string — The phone number of the person funding the money.
    - `walletIdentifier` string — The unique identifier of the wallet where the funds are coming from.
  - `fundRecipient` FundRecipient
    - `IBAN` string — The IBAN of the bank account where the funds are being transferred to.
    - `billingAddress` Address
      - `city` string, required — The name of the city. Maximum length: 3000 characters.
      - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
      - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
      - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
      - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
      - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
    - `paymentMethod` CardDetails
      - `billingSequenceNumber` string — The sequence number for the debit. For example, send **2** if this is the second debit for the subscription. The sequence number is included in the notification sent to the shopper.
      - `brand` string — Secondary brand of the card. For example: **plastix**, **hmclub**.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `cupsecureplus.smscode` string
      - `cvc` string — The card verification code. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `encryptedCard` string — Only include this for JSON Web Encryption (JWE) implementations. The JWE-encrypted card details.
      - `encryptedCardNumber` string — The encrypted card number.
      - `encryptedExpiryMonth` string — The encrypted card expiry month.
      - `encryptedExpiryYear` string — The encrypted card expiry year.
      - `encryptedPassword` string — This field contains an encrypted, one-time password or an authentication code provided by the cardholder.
      - `encryptedSecurityCode` string — The encrypted card verification code.
      - `expiryMonth` string — The card expiry month. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `expiryYear` string — The card expiry year. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `fastlaneData` string — The encoded fastlane data blob
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `holderName` string — The name of the card holder.
      - `networkPaymentReference` string — The transaction identifier from card schemes. This is the [`networkTxReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-additionalData-ResponseAdditionalDataCommon-networkTxReference) from the response to the first payment.
      - `number` string — The card number. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used only for recurring payments in India.
      - `srcCorrelationId` string — An identifier used for the Click to Pay transaction.
      - `srcDigitalCardId` string — The SRC reference for the Click to Pay token.
      - `srcScheme` string — The scheme that is being used for Click to Pay.
      - `srcTokenReference` string — The reference for the Click to Pay token.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `threeDS2SdkVersion` string — Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.
      - `type` 'bcmc' | 'scheme' | 'networkToken' | 'giftcard' | 'card' | 'clicktopay' — Default payment method details. Common for scheme payment methods, and for simple payment method details.
    - `shopperEmail` string — The email address of the shopper.
    - `shopperName` Name
      - `firstName` string, required — The first name.
      - `lastName` string, required — The last name.
    - `shopperReference` string — Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
    - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
    - `subMerchant` SubMerchant
      - `city` string — The city of the sub-merchant's address. * Format: Alphanumeric * Maximum length: 13 characters
      - `country` string — The three-letter country code of the sub-merchant's address. For example, **BRA** for Brazil. * Format: [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) * Fixed length: 3 characters
      - `mcc` string — The sub-merchant's 4-digit Merchant Category Code (MCC). * Format: Numeric * Fixed length: 4 digits
      - `name` string — The name of the sub-merchant. Based on scheme specifications, this value will overwrite the shopper statement that will appear in the card statement. * Format: Alphanumeric * Maximum length: 22 characters
      - `taxId` string — The tax ID of the sub-merchant. * Format: Numeric * Fixed length: 11 digits for the CPF or 14 digits for the CNPJ
    - `telephoneNumber` string — The telephone number of the shopper.
    - `walletIdentifier` string — The unique identifier for the wallet the funds are being transferred to. You can use the shopper reference or any other identifier.
    - `walletOwnerTaxId` string — The tax identifier of the person receiving the funds.
    - `walletPurpose` 'identifiedBoleto' | 'transferDifferentWallet' | 'transferOwnWallet' | 'transferSameWallet' | 'unidentifiedBoleto' — The purpose of a digital wallet transaction.
  - `industryUsage` 'delayedCharge' | 'installment' | 'noShow' — The reason for the amount update. Possible values: * **delayedCharge** * **noShow** * **installment**
  - `installments` Installments
    - `extra` integer — Defines the bonus percentage, refund percentage or if the transaction is Buy now Pay later. Used for [card installments in Mexico](https://docs.adyen.com/payment-methods/cards/credit-card-installments/#getting-paid-mexico)
    - `plan` 'bonus' | 'buynow_paylater' | 'interes_refund_prctg' | 'interest_bonus' | 'nointeres_refund_prctg' | 'nointerest_bonus' | 'refund_prctg' | 'regular' | 'revolving' | 'with_interest' — The installment plan, used for [card installments in Japan](https://docs.adyen.com/payment-methods/cards/credit-card-installments#make-a-payment-japan). and [Mexico](https://docs.adyen.com/payment-methods/cards/credit-card-installments/#getting-paid-mexico). By default, this is set to **regular**.
    - `value` integer, required — Defines the number of installments. Usually, the maximum allowed number of installments is capped. For example, it may not be possible to split a payment in more than 24 installments. The acquirer sets this upper limit, so its value may vary. This value can be zero for Installments processed in Mexico.
  - `lineItems` LineItem[] — Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty.
    - `amountExcludingTax` integer — Item amount excluding the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
    - `amountIncludingTax` integer — Item amount including the tax, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
    - `brand` string — Brand of the item.
    - `color` string — Color of the item.
    - `description` string — Description of the line item.
    - `id` string — ID of the line item.
    - `imageUrl` string — Link to the picture of the purchased item.
    - `itemCategory` string — Item category, used by the payment methods PayPal and Ratepay.
    - `manufacturer` string — Manufacturer of the item.
    - `marketplaceSellerId` string — Marketplace seller id.
    - `productUrl` string — Link to the purchased item.
    - `quantity` integer — Number of items.
    - `receiverEmail` string — Email associated with the given product in the basket (usually in electronic gift cards).
    - `size` string — Size of the item.
    - `sku` string — Stock keeping unit.
    - `taxAmount` integer — Tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes/#minor-units).
    - `taxPercentage` integer — Tax percentage, represented as a [basis point](https://en.wikipedia.org/wiki/Basis_point) integer. For example: - **530** for 5.3% (five point three percent) - **2100** for 21% (twenty-one percent)
    - `upc` string — Universal Product Code.
  - `localizedShopperStatement` object — The `localizedShopperStatement` field lets you use dynamic values for your shopper statement in a local character set. If this parameter is left empty, not provided, or not applicable (in case of cross-border transactions), then **shopperStatement** is used. Currently, `localizedShopperStatement` is only supported for payments with Visa, Mastercard, JCB, Diners, and Discover. **Supported characters**: Hiragana, Katakana, Kanji, and alphanumeric.
  - `mandate` Mandate
    - `amount` string, required — The billing amount (in minor units) of the recurring transactions.
    - `amountRule` 'max' | 'exact' — The limitation rule of the billing amount. Possible values: * **max**: The transaction amount can not exceed the `amount`. * **exact**: The transaction amount should be the same as the `amount`.
    - `billingAttemptsRule` 'on' | 'before' | 'after' — The rule to specify the period, within which the recurring debit can happen, relative to the mandate recurring date. Possible values: * **on**: On a specific date. * **before**: Before and on a specific date. * **after**: On and after a specific date.
    - `billingDay` string — The number of the day, on which the recurring debit can happen. Should be within the same calendar month as the mandate recurring date. Possible values: 1-31 based on the `frequency`.
    - `count` string — The number of transactions that can be performed within the given frequency.
    - `endsAt` string, required — End date of the billing plan, in YYYY-MM-DD format.
    - `frequency` 'adhoc' | 'daily' | 'weekly' | 'biWeekly' | 'monthly' | 'quarterly' | 'halfYearly' | 'yearly', required — The frequency with which a shopper should be charged. Possible values: **adhoc**, **daily**, **weekly**, **biWeekly**, **monthly**, **quarterly**, **halfYearly**, **yearly**.
    - `remarks` string — The message shown by UPI to the shopper on the approval screen.
    - `startsAt` string — Start date of the billing plan, in YYYY-MM-DD format. By default, the transaction date.
  - `mcc` string — The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
  - `merchantAccount` string, required — The merchant account identifier, with which you want to process the transaction.
  - `merchantOrderReference` string — You can use this reference to link multiple transactions to one another (for example, to track order authorization rate).For each billing cycle, this reference should be unique. After the first authorized payment attempt, do not reuse the reference. If you use this parameter, include it in all of the payment requests that you make. We strongly recommend that you: * Always include this parameter, so that you can benefit from linking payment requests to one another, in case of authorization retries. * Additionally include the following parameters in the `additionalData` object: [`retry.orderAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-orderAttemptNumber), [`retry.chainAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-chainAttemptNumber), and [`retry.skipRetry`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-skipRetry)
  - `merchantRiskIndicator` MerchantRiskIndicator
    - `addressMatch` boolean — Whether the chosen delivery address is identical to the billing address.
    - `deliveryAddressIndicator` 'shipToBillingAddress' | 'shipToVerifiedAddress' | 'shipToNewAddress' | 'shipToStore' | 'digitalGoods' | 'goodsNotShipped' | 'other' — Indicator regarding the delivery address. Allowed values: * `shipToBillingAddress` * `shipToVerifiedAddress` * `shipToNewAddress` * `shipToStore` * `digitalGoods` * `goodsNotShipped` * `other`
    - `deliveryEmail` string — The delivery email address (for digital goods).
    - `deliveryEmailAddress` string — For Electronic delivery, the email address to which the merchandise was delivered. Maximum length: 254 characters.
    - `deliveryTimeframe` 'electronicDelivery' | 'sameDayShipping' | 'overnightShipping' | 'twoOrMoreDaysShipping' — The estimated delivery time for the shopper to receive the goods. Allowed values: * `electronicDelivery` * `sameDayShipping` * `overnightShipping` * `twoOrMoreDaysShipping`
    - `giftCardAmount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `giftCardCount` integer — For prepaid or gift card purchase, total count of individual prepaid or gift cards/codes purchased.
    - `giftCardCurr` string — For prepaid or gift card purchase, [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) three-digit currency code of the gift card, other than those listed in Table A.5 of the EMVCo 3D Secure Protocol and Core Functions Specification.
    - `preOrderDate` string, date-time — For pre-order purchases, the expected date this product will be available to the shopper.
    - `preOrderPurchase` boolean — Indicator for whether this transaction is for pre-ordering a product.
    - `preOrderPurchaseInd` string — Indicates whether Cardholder is placing an order for merchandise with a future availability or release date.
    - `reorderItems` boolean — Indicator for whether the shopper has already purchased the same items in the past.
    - `reorderItemsInd` string — Indicates whether the cardholder is reordering previously purchased merchandise.
    - `shipIndicator` string — Indicates shipping method chosen for the transaction.
  - `metadata` object — Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". * Maximum 20 characters per key. * Maximum 80 characters per value.
  - `mpiData` ThreeDSecureData
    - `authenticationResponse` 'Y' | 'N' | 'U' | 'A' — In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, omit this parameter.
    - `cavv` string, byte — The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).
    - `cavvAlgorithm` string — The CAVV algorithm used. Include this only for 3D Secure 1.
    - `challengeCancel` '01' | '02' | '03' | '04' | '05' | '06' | '07' — Indicator informing the Access Control Server (ACS) and the Directory Server (DS) that the authentication has been cancelled. For possible values, refer to [3D Secure API reference](https://docs.adyen.com/online-payments/3d-secure/api-reference#mpidata).
    - `directoryResponse` 'A' | 'C' | 'D' | 'I' | 'N' | 'R' | 'U' | 'Y' — In 3D Secure 2, this is the `transStatus` from the `ARes`.
    - `dsTransID` string — Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.
    - `eci` string — The electronic commerce indicator.
    - `riskScore` string — Risk score calculated by Directory Server (DS). Required for Cartes Bancaires integrations.
    - `threeDSVersion` string — The version of the 3D Secure protocol.
    - `tokenAuthenticationVerificationValue` string, byte — Network token authentication verification value (TAVV). The network token cryptogram.
    - `transStatusReason` string — Provides information on why the `transStatus` field has the specified value. For possible values, refer to [our docs](https://docs.adyen.com/online-payments/3d-secure/api-reference#possible-transstatusreason-values).
    - `xid` string, byte — Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).
  - `order` EncryptedOrderData
    - `orderData` string, required — The encrypted order data.
    - `pspReference` string, required — The `pspReference` that belongs to the order.
  - `orderReference` string — When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead.
  - `origin` string — > Required for browser-based (`channel` **Web**) 3D Secure 2 transactions.Set this to the origin URL of the page where you are rendering the Drop-in/Component. Do not include subdirectories and a trailing slash.
  - `paymentMethod` union, required — The type and required details of a payment method to use.
    - AchDetails
      - `accountHolderType` 'business' | 'personal' — The account holder type (personal or business).
      - `bankAccountNumber` string — The bank account number (without separators).
      - `bankAccountType` 'balance' | 'checking' | 'deposit' | 'general' | 'other' | 'payment' | 'savings' — The bank account type (checking, savings...).
      - `bankLocationId` string — The bank routing number of the account. The field value is `nil` in most cases.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `encryptedBankAccountNumber` string — Encrypted bank account number. The bank account number (without separators).
      - `encryptedBankLocationId` string — Encrypted location id. The bank routing number of the account. The field value is `nil` in most cases.
      - `ownerName` string — The name of the bank account holder. If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: * χ12 is converted to ch12. * üA is converted to euA. * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: * John17 - allowed. * J17 - allowed. * 171 - not allowed. * John-7 - allowed. > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `transferInstrumentId` string — The unique identifier of your user's verified transfer instrument, which you can use to top up their balance accounts.
      - `type` 'ach' | 'ach_plaid' — **ach**
    - AffirmDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `financingProgram` string — The Affirm financing program to apply to this transaction.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'affirm' — **affirm**
    - AfterpayDetails
      - `billingAddress` string — The address where to send the invoice.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deliveryAddress` string — The address where the goods should be delivered.
      - `personalDetails` string — Shopper name, date of birth, phone number, and email address.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'afterpay_default' | 'afterpaytouch' | 'afterpay_b2b' | 'clearpay', required — **afterpay_default**
    - AlmaDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `feeType` 'merchantPays' | 'shopperPays' — **Alma payment request fee type**
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'alma' — The payment method type.
    - AmazonPayDetails
      - `amazonPayToken` string — This is the `amazonPayToken` that you obtained from the [Get Checkout Session](https://amazon-pay-acquirer-guide.s3-eu-west-1.amazonaws.com/v1/amazon-pay-api-v2/checkout-session.html#get-checkout-session) response. This token is used for API only integration specifically.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `checkoutSessionId` string — The `checkoutSessionId` is used to identify the checkout session at the Amazon Pay side. This field is required only for drop-in and components integration, where it replaces the amazonPayToken.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'amazonpay' — **amazonpay**
    - AncvDetails
      - `beneficiaryId` string — ANCV account identification (email or account number)
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'ancv' — **ancv**
    - AndroidPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'androidpay' — **androidpay**
    - ApplePayDetails
      - `applePayToken` string, required — The stringified and base64 encoded `paymentData` you retrieved from the Apple framework.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'applepay' — **applepay**
    - AuPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'aupay' — **aupay**
    - BacsDirectDebitDetails
      - `bankAccountNumber` string — The bank account number (without separators).
      - `bankLocationId` string — The bank routing number of the account.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `holderName` string — The name of the bank account holder.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `transferInstrumentId` string — The unique identifier of your user's verified transfer instrument, which you can use to top up their balance accounts.
      - `type` 'directdebit_GB' — **directdebit_GB**
    - BillDeskDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string, required — The issuer id of the shopper's selected bank.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'billdesk_online' | 'billdesk_wallet', required — **billdesk**
    - BlikDetails
      - `blikCode` string — BLIK code consisting of 6 digits.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'blik' — **blik**
    - CardDetails
      - `billingSequenceNumber` string — The sequence number for the debit. For example, send **2** if this is the second debit for the subscription. The sequence number is included in the notification sent to the shopper.
      - `brand` string — Secondary brand of the card. For example: **plastix**, **hmclub**.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `cupsecureplus.smscode` string
      - `cvc` string — The card verification code. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `encryptedCard` string — Only include this for JSON Web Encryption (JWE) implementations. The JWE-encrypted card details.
      - `encryptedCardNumber` string — The encrypted card number.
      - `encryptedExpiryMonth` string — The encrypted card expiry month.
      - `encryptedExpiryYear` string — The encrypted card expiry year.
      - `encryptedPassword` string — This field contains an encrypted, one-time password or an authentication code provided by the cardholder.
      - `encryptedSecurityCode` string — The encrypted card verification code.
      - `expiryMonth` string — The card expiry month. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `expiryYear` string — The card expiry year. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `fastlaneData` string — The encoded fastlane data blob
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `holderName` string — The name of the card holder.
      - `networkPaymentReference` string — The transaction identifier from card schemes. This is the [`networkTxReference`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#responses-200-additionalData-ResponseAdditionalDataCommon-networkTxReference) from the response to the first payment.
      - `number` string — The card number. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used only for recurring payments in India.
      - `srcCorrelationId` string — An identifier used for the Click to Pay transaction.
      - `srcDigitalCardId` string — The SRC reference for the Click to Pay token.
      - `srcScheme` string — The scheme that is being used for Click to Pay.
      - `srcTokenReference` string — The reference for the Click to Pay token.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `threeDS2SdkVersion` string — Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.
      - `type` 'bcmc' | 'scheme' | 'networkToken' | 'giftcard' | 'card' | 'clicktopay' — Default payment method details. Common for scheme payment methods, and for simple payment method details.
    - CashAppDetails
      - `cashtag` string — Cash App issued cashtag for recurring payment
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `customerId` string — Cash App issued customerId for recurring payment
      - `grantId` string — Cash App issued grantId for one time payment
      - `onFileGrantId` string — Cash App issued onFileGrantId for recurring payment
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `requestId` string — Cash App request id
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `subtype` string — The payment method subtype.
      - `type` 'cashapp' — cashapp
    - CellulantDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string — The Cellulant issuer.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'cellulant' — **Cellulant**
    - DBaraiDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'dbarai' — **dbarai**
    - DirectDebitAuDetails
      - `bankAccountNumber` string — The shopper's banking account number used to complete payment.
      - `bankBranchCode` string — The shopper's BSB (their bank's branch code) number used to complete payment.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `holderName` string — The name of the bank account holder.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'directdebit_AU' — **directdebit_AU**
    - DokuDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `firstName` string, required — The shopper's first name.
      - `lastName` string, required — The shopper's last name.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperEmail` string, required — The shopper's email.
      - `type` 'doku_mandiri_va' | 'doku_cimb_va' | 'doku_danamon_va' | 'doku_bni_va' | 'doku_permata_lite_atm' | 'doku_bri_va' | 'doku_bca_va' | 'doku_alfamart' | 'doku_indomaret' | 'doku_wallet' | 'doku_ovo', required — **doku**
    - DragonpayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string, required — The Dragonpay issuer value of the shopper's selected bank. Set this to an **id** of a Dragonpay issuer to preselect it.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperEmail` string — The shopper’s email address.
      - `type` 'dragonpay_ebanking' | 'dragonpay_otc_banking' | 'dragonpay_otc_non_banking' | 'dragonpay_otc_philippines', required — **dragonpay**
    - EBankingFinlandDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string — The Ebanking Finland issuer value of the shopper's selected bank.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'ebanking_FI', required — **ebanking_FI**
    - EcontextVoucherDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `firstName` string, required — The shopper's first name.
      - `lastName` string, required — The shopper's last name.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperEmail` string, required — The shopper's email.
      - `telephoneNumber` string, required — The shopper's contact number. It must have an international number format, for example **+31 20 779 1846**. Formats like **+31 (0)20 779 1846** or **0031 20 779 1846** are not accepted.
      - `type` 'econtext_seven_eleven' | 'econtext_online' | 'econtext' | 'econtext_stores' | 'econtext_atm', required — **econtextvoucher**
    - EftDetails
      - `bankAccountNumber` string — The bank account number (without separators).
      - `bankCode` string — The financial institution code.
      - `bankLocationId` string — The bank routing number of the account.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `ownerName` string — The name of the bank account holder. If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: * χ12 is converted to ch12. * üA is converted to euA. * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: * John17 - allowed. * J17 - allowed. * 171 - not allowed. * John-7 - allowed. > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'eft_directdebit_CA' — **eft**
    - ExternalTokenDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `expiryMonth` string — The card expiry month. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `expiryYear` string — The card expiry year. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `holderName` string — The name of the card holder.
      - `number` string — The card number. Only collect raw card data if you are [fully PCI compliant](https://docs.adyen.com/development-resources/pci-dss-compliance-guide).
      - `storedPaymentMethodId` string, required — Identifier used to fetch the token from the external service
      - `subtype` 'hilton', required — The external service from which to fetch the token. Supported only for specific companies. Contact Adyen if you want to use this feature.
      - `type` 'externalToken', required — The type of token. Allowed value: **externalToken**.
    - FastlaneDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fastlaneData` string, required — The encoded fastlane data blob
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'fastlane', required — **fastlane**
    - GenericIssuerPaymentMethodDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string, required — The issuer id of the shopper's selected bank.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'onlineBanking_PL' | 'eps' | 'onlineBanking_SK' | 'onlineBanking_CZ' | 'onlinebanking_IN', required — **genericissuer**
    - GooglePayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `googlePayCardNetwork` string — The selected payment card network.
      - `googlePayToken` string, required — The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `threeDS2SdkVersion` string — Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.
      - `type` 'googlepay' — **googlepay**, **paywithgoogle**
    - IdealDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string — The iDEAL issuer value of the shopper's selected bank. Set this to an **id** of an iDEAL issuer to preselect it.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'ideal' — **ideal**
    - KlarnaDetails
      - `billingAddress` string — The address where to send the invoice.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deliveryAddress` string — The address where the goods should be delivered.
      - `personalDetails` string — Shopper name, date of birth, phone number, and email address.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `subtype` string — The type of flow to initiate.
      - `type` 'klarna' | 'klarnapayments' | 'klarnapayments_account' | 'klarnapayments_b2b' | 'klarna_paynow' | 'klarna_account' | 'klarna_b2b', required — **klarna**
    - KlarnaNetworkDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `klarnaNetworkData` string — A string containing a structured JSON object. This is a passthrough field used to enable custom features or data exchange with Klarna.
      - `klarnaNetworkSessionToken` string — The token obtained from the Klarna SDK during an Express Checkout flow.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'klarna_network', required — **klarna_network**
    - MasterpassDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `masterpassTransactionId` string, required — The Masterpass transaction ID.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'masterpass' — **masterpass**
    - MbwayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperEmail` string, required
      - `telephoneNumber` string, required
      - `type` 'mbway' — **mbway**
    - MobilePayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'mobilepay' — **mobilepay**
    - MolPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string, required — The shopper's bank. Specify this with the issuer value that corresponds to this bank.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'molpay_ebanking_fpx_MY' | 'molpay_ebanking_TH', required — **molpay**
    - OpenInvoiceDetails
      - `billingAddress` string — The address where to send the invoice.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deliveryAddress` string — The address where the goods should be delivered.
      - `personalDetails` string — Shopper name, date of birth, phone number, and email address.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'openinvoice' | 'afterpay_directdebit' | 'atome_pos' — **openinvoice**
    - PayByBankAISDirectDebitDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'paybybank_AIS_DD', required — **paybybank_AIS_DD**
    - PayByBankDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `issuer` string — The PayByBank issuer value of the shopper's selected bank.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'paybybank', required — **paybybank**
    - PayPalDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `orderID` string — The unique ID associated with the order.
      - `payeePreferred` string — IMMEDIATE_PAYMENT_REQUIRED or UNRESTRICTED
      - `payerID` string — The unique ID associated with the payer.
      - `payerSelected` string — PAYPAL or PAYPAL_CREDIT
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `subtype` 'express' | 'redirect' | 'sdk' — The type of flow to initiate.
      - `type` 'paypal', required — **paypal**
    - PayPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'paypay' — **paypay**
    - PayToDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperAccountIdentifier` string — The shopper's banking details or payId reference, used to complete payment.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'payto' — **payto**
    - PayUUpiDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used for recurring payment only.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'payu_IN_upi', required — **payu_IN_upi**
      - `virtualPaymentAddress` string — The virtual payment address for UPI.
    - PayWithGoogleDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `googlePayToken` string, required — The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `threeDS2SdkVersion` string — Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.
      - `type` 'paywithgoogle' — **paywithgoogle**
    - PaymentDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'alipay' | 'multibanco' | 'bankTransfer' | 'bankTransfer_IBAN' | 'paynow' | 'affirm_pos' | 'iris' | 'wero' | 'trustly' | 'trustlyvector' | 'oney' | 'facilypay' | 'facilypay_3x' | 'facilypay_4x' | 'facilypay_6x' | 'facilypay_10x' | 'facilypay_12x' | 'unionpay' | 'kcp_banktransfer' | 'kcp_payco' | 'kcp_creditcard' | 'wechatpaySDK' | 'wechatpayQR' | 'wechatpayWeb' | 'molpay_boost' | 'wallet_IN' | 'payu_IN_cashcard' | 'payu_IN_nb' | 'paytm' | 'molpay_ebanking_VN' | 'molpay_ebanking_MY' | 'molpay_ebanking_direct_MY' | 'swish' | 'bizum' | 'walley' | 'walley_b2b' | 'paypo' | 'scalapay' | 'scalapay_3x' | 'scalapay_4x' | 'molpay_fpx' | 'payme' | 'payme_pos' | 'konbini' | 'directEbanking' | 'boletobancario' | 'cashticket' | 'ikano' | 'karenmillen' | 'oasis' | 'warehouse' | 'primeiropay_boleto' | 'mada' | 'benefit' | 'knet' | 'omannet' | 'kcp_naverpay' | 'fawry' | 'atome' | 'naps' | 'nordea' | 'boletobancario_bradesco' | 'boletobancario_itau' | 'boletobancario_santander' | 'boletobancario_bancodobrasil' | 'boletobancario_hsbc' | 'molpay_maybank2u' | 'molpay_cimb' | 'molpay_rhb' | 'molpay_amb' | 'molpay_hlb' | 'molpay_affin_epg' | 'molpay_bankislam' | 'molpay_publicbank' | 'fpx_agrobank' | 'touchngo' | 'maybank2u_mae' | 'duitnow' | 'promptpay' | 'twint_pos' | 'alipay_hk' | 'alipay_hk_web' | 'alipay_hk_wap' | 'alipay_wap' | 'balanceplatform' — The payment method type.
    - PixDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `pixRecurring` PixRecurring
        - `billingDate` string — The date on which the shopper's payment method will be charged, in YYYY-MM-DD format.
        - `businessDayOnly` boolean — Flag used to define whether liquidation can happen only on business days
        - `endsAt` string — End date of the billing plan, in YYYY-MM-DD format. The end date must align with the frequency and the start date of the billing plan. If left blank, the subscription will continue indefinitely unless it is cancelled by the shopper.
        - `frequency` 'weekly' | 'monthly' | 'quarterly' | 'half-yearly' | 'yearly' — The frequency at which the shopper will be charged.
        - `minAmount` Amount
          - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
          - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
        - `originalPspReference` string — The pspReference for the failed recurring payment. Find this in AUTHORISATION webhook you received after the billing date.
        - `recurringAmount` Amount
          - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
          - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
        - `recurringStatement` string — The text that that will be shown on the shopper's bank statement for the recurring payments. We recommend to add a descriptive text about the subscription to let your shoppers recognize your recurring payments. Maximum length: 35 characters.
        - `retryPolicy` boolean — When set to true, you can retry for failed recurring payments. The default value is true.
        - `startsAt` string — Start date of the billing plan, in YYYY-MM-DD format. The default value is the transaction date.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'pix' — The payment method type.
    - PixPayByBankDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deviceId` string
      - `issuer` string
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `riskSignals` PixPayByBankRiskSignals
        - `confidenceScore` ConfidenceScore
          - `errors` string[]
          - `score` number, double
        - `elapsedTimeSinceBoot` integer
        - `isRootedDevice` boolean
        - `language` string
        - `osVersion` string
        - `screenBrightness` integer
        - `screenDimensions` ScreenDimensions
          - `height` integer
          - `width` integer
        - `userTimeZoneOffset` integer
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'paybybank_pix' — **paybybank_pix**
    - PseDetails
      - `bank` string, required — The shopper's bank.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `clientType` string, required — The client type.
      - `identification` string, required — The identification code.
      - `identificationType` string, required — The identification type.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'pse_payulatam' — The payment method type.
    - RakutenPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'rakutenpay' — **rakutenpay**
    - RatepayDetails
      - `billingAddress` string — The address where to send the invoice.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deliveryAddress` string — The address where the goods should be delivered.
      - `personalDetails` string — Shopper name, date of birth, phone number, and email address.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'ratepay' | 'ratepay_directdebit', required — **ratepay**
    - RivertyDetails
      - `billingAddress` string — The address where to send the invoice.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `deliveryAddress` string — The address where the goods should be delivered.
      - `deviceFingerprint` string — A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).
      - `iban` string — The iban number of the customer
      - `personalDetails` string — Shopper name, date of birth, phone number, and email address.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `subtype` string — The payment method subtype.
      - `type` 'riverty' | 'riverty_account' | 'riverty_installments' | 'sepadirectdebit_riverty', required — **riverty**
    - SamsungPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `samsungPayToken` string, required — The payload you received from the Samsung Pay SDK response.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'samsungpay' — **samsungpay**
    - SepaDirectDebitDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `dueDate` string — The date that the the shopper's bank account is charged.
      - `iban` string — The International Bank Account Number (IBAN).
      - `ownerName` string — The name of the bank account holder.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `transferInstrumentId` string — The unique identifier of your user's verified transfer instrument, which you can use to top up their balance accounts.
      - `type` 'sepadirectdebit' | 'sepadirectdebit_amazonpay' — **sepadirectdebit**
    - StoredPaymentMethodDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'alipay_plus' | 'alipay_plus_alipay_cn' | 'alipay_plus_alipay_hk' | 'alipay_plus_dana' | 'alipay_plus_gcash' | 'alipay_plus_kakaopay' | 'alipay_plus_kplus' | 'alipay_plus_naverpay' | 'alipay_plus_rabbitlinepay' | 'alipay_plus_tosspay' | 'alipay_plus_touchngo' | 'alipay_plus_truemoney' | 'bcmc_mobile' | 'bcmc_mobile_QR' | 'bcmc_mobile_app' | 'momo_wallet' | 'momo_wallet_app' | 'paymaya_wallet' | 'grabpay_SG' | 'grabpay_MY' | 'grabpay_TH' | 'grabpay_ID' | 'grabpay_VN' | 'grabpay_PH' | 'oxxo' | 'gcash' | 'dana' | 'kakaopay' | 'truemoney' | 'paysafecard' | 'gopay_wallet' — The payment method type.
    - TwintDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `subtype` string — The type of flow to initiate.
      - `type` 'twint' — The payment method type.
    - UpiCollectDetails
      - `billingSequenceNumber` string — The sequence number for the debit. For example, send **2** if this is the second debit for the subscription. The sequence number is included in the notification sent to the shopper.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used for recurring payment only.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'upi_collect', required — **upi_collect**
      - `virtualPaymentAddress` string — The virtual payment address for UPI.
    - UpiIntentDetails
      - `appId` string — TPAP (Third Party Application) Id that is being used to make the UPI payment
      - `billingSequenceNumber` string — The sequence number for the debit. For example, send **2** if this is the second debit for the subscription. The sequence number is included in the notification sent to the shopper.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used for recurring payment only.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'upi_intent', required — **upi_intent**
    - UpiQrDetails
      - `billingSequenceNumber` string — The sequence number for the debit. For example, send **2** if this is the second debit for the subscription. The sequence number is included in the notification sent to the shopper.
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `shopperNotificationReference` string — The `shopperNotificationReference` returned in the response when you requested to notify the shopper. Used for recurring payment only.
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'upi_qr', required — **upi_qr**
    - VippsDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `telephoneNumber` string, required
      - `type` 'vipps' — **vipps**
    - VisaCheckoutDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source that should be used when multiple sources are available. For Brazilian combo cards, by default the funding source is credit. To use debit, set this value to **debit**.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'visacheckout' — **visacheckout**
      - `visaCheckoutCallId` string, required — The Visa Click to Pay Call ID value. When your shopper selects a payment and/or a shipping address from Visa Click to Pay, you will receive a Visa Click to Pay Call ID.
    - WeChatPayDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `type` 'wechatpay' | 'wechatpay_pos' — **wechatpay**
    - WeChatPayMiniProgramDetails
      - `appId` string
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `openid` string
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'wechatpayMiniProgram' — **wechatpayMiniProgram**
    - ZipDetails
      - `checkoutAttemptId` string — The checkout attempt identifier.
      - `clickAndCollect` string — Set this to **true** if the shopper would like to pick up and collect their order, instead of having the goods delivered to them.
      - `recurringDetailReference` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `sdkData` string — Base64-encoded JSON object containing SDK related parameters required by the SDK
      - `storedPaymentMethodId` string — This is the `recurringDetailReference` returned in the response when you created the token.
      - `type` 'zip' | 'zip_pos' — **zip**
  - `paymentValidations` PaymentValidations
    - `name` PaymentValidationsNameRequest
      - `status` string, required — Set to **requested** to request a [name validation](https://docs.adyen.com/payment-methods/cards/name-validation) to verify if the cardholder name provided by the shopper matches the cardholder name on file at the issuing bank.
  - `platformChargebackLogic` PlatformChargebackLogic
    - `behavior` 'deductFromOneBalanceAccount' | 'deductAccordingToSplitRatio' | 'deductFromLiableAccount' — The method of handling the chargeback. Possible values: **deductFromLiableAccount**, **deductFromOneBalanceAccount**, **deductAccordingToSplitRatio**.
    - `costAllocationAccount` string — The unique identifier of the balance account to which the chargeback fees are booked. By default, the chargeback fees are booked to your liable balance account.
    - `targetAccount` string — The unique identifier of the balance account against which the disputed amount is booked. Required if `behavior` is **deductFromOneBalanceAccount**.
  - `recurringExpiry` string — Date after which no further authorisations shall be performed. Only for 3D Secure 2.
  - `recurringFrequency` string — Minimum number of days between authorisations. Only for 3D Secure 2.
  - `recurringProcessingModel` 'CardOnFile' | 'Subscription' | 'UnscheduledCardOnFile' — Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount.
  - `redirectFromIssuerMethod` string — Specifies the redirect method (GET or POST) when redirecting back from the issuer.
  - `redirectToIssuerMethod` string — Specifies the redirect method (GET or POST) when redirecting to the issuer.
  - `reference` string, required — The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. To provide multiple references for one transaction, separate the reference values with the hyphen (`-`) character.We strongly recommend that you use a unique value for each transaction. Maximum length: 80 characters.
  - `returnUrl` string, required — The URL to return to in case of a redirection. The format depends on the channel. * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name` If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value. We strongly recommend that you use a maximum of 1024 characters. > The URL must not include personally identifiable information (PII), for example name or email address.
  - `riskData` RiskData
    - `clientData` string — Contains client-side data, like the device fingerprint, cookies, and specific browser settings.
    - `customFields` object — Any custom fields used as part of the input to configured risk rules.
    - `fraudOffset` integer — An integer value that is added to the normal fraud score. The value can be either positive or negative.
    - `profileReference` string — The risk profile to assign to this payment. When left empty, the merchant-level account's default risk profile will be applied.
  - `sessionValidity` string — The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format. For example: 2020-07-18T15:42:40.428+01:00
  - `shopperConversionId` string — A unique ID to [connect the shopper to a single checkout session](https://docs.adyen.com/online-payments/checkout-settings#checkout-shopper-conversion-id) that uses multiple API requests. You can use this to get insights into conversion rates.
  - `shopperEmail` string — The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`.
  - `shopperIP` string — The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
  - `shopperInteraction` 'Ecommerce' | 'ContAuth' | 'Moto' | 'POS' — Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. For the web service API, Adyen assumes Ecommerce shopper interaction by default. This field has the following possible values: * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the cardholder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment). * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. * `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
  - `shopperLocale` string — The language for the payment. The value combines the two-letter [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) language code with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code. For example, **nl-NL**. When using Drop-in/Components, the specified language appears if your front-end global configuration does not set the `locale`.
  - `shopperName` ShopperName
    - `firstName` string, required — The first name.
    - `lastName` string, required — The last name.
  - `shopperReference` string — Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address.
  - `shopperStatement` string — The text to be shown on the shopper's bank statement. We recommend sending a maximum of 22 characters, otherwise banks might truncate the string. Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**.
  - `shopperTaxInfo` ShopperTaxInfo
    - `taxCountryCode` string, required — The two-character [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code associated with the provided tax identification number. Currently used only for Indian PA-CB tax verification, when applicable.
    - `taxIdentificationNumber` string, required — The shopper’s tax identification number.
  - `socialSecurityNumber` string — The shopper's social security number.
  - `splits` Split[] — An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).
    - `account` string — The unique identifier of the account to which the split amount is booked. Required if `type` is **MarketPlace** or **BalanceAccount**. * [Classic Platforms integration](https://docs.adyen.com/classic-platforms): The [`accountCode`](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccount#request-accountCode) of the account to which the split amount is booked. * [Balance Platform](https://docs.adyen.com/adyen-for-platforms-model): The [`balanceAccountId`](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/balanceAccounts/_id_#path-id) of the account to which the split amount is booked.
    - `amount` SplitAmount
      - `currency` string — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). By default, this is the original payment currency.
      - `value` integer, required — The value of the split amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes).
    - `description` string — Your description for the split item.
    - `reference` string — Your unique reference for the part of the payment booked to the specified `account`. This is required if `type` is **MarketPlace** ([Classic Platforms integration](https://docs.adyen.com/classic-platforms)) or **BalanceAccount** ([Balance Platform](https://docs.adyen.com/adyen-for-platforms-model)). 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.
    - `type` 'AcquiringFees' | 'AdyenCommission' | 'AdyenFees' | 'AdyenMarkup' | 'BalanceAccount' | 'Commission' | 'Default' | 'Interchange' | 'MarketPlace' | 'PaymentFee' | 'Remainder' | 'SchemeFee' | 'Surcharge' | 'Tip' | 'TopUp' | 'VAT', required — The part of the payment you want to book to the specified `account`. Possible values for the [Balance Platform](https://docs.adyen.com/adyen-for-platforms-model): * **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](https://www.adyen.com/knowledge-hub/interchange-fees-explained). * **AdyenMarkup**: The transaction fees due to Adyen under [Interchange ++ pricing](https://www.adyen.com/knowledge-hub/interchange-fees-explained). * **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`. * **Surcharge**: The payment acceptance fee imposed by the card scheme or debit network provider, paid by your user's customer. * **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. * **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](https://docs.adyen.com/classic-platforms): **Commission**, **Default**, **MarketPlace**, **PaymentFee**, **VAT**.
  - `store` string — Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.
  - `storePaymentMethod` boolean — When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).
  - `subMerchants` SubMerchantInfo[] — This field contains additional information on the submerchant, who is onboarded to an acquirer through a payment facilitator or aggregator
    - `address` BillingAddress
      - `city` string, required — The name of the city. Maximum length: 3000 characters.
      - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
      - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
      - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
      - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
      - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
    - `amount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `email` string — Required for transactions performed by registered payment facilitators. The email associated with the sub-merchant's account.
    - `id` string — Required for transactions performed by registered payment facilitators. A unique identifier that you create for the sub-merchant, used by schemes to identify the sub-merchant. * Format: Alphanumeric * Maximum length: 15 characters
    - `mcc` string — Required for transactions performed by registered payment facilitators. The sub-merchant's 4-digit Merchant Category Code (MCC). * Format: Numeric * Fixed length: 4 digits
    - `name` string — Required for transactions performed by registered payment facilitators. The name of the sub-merchant. Based on scheme specifications, this value will overwrite the shopper statement that will appear in the card statement. Exception: for acquirers in Brazil, this value does not overwrite the shopper statement. * Format: Alphanumeric * Maximum length: 22 characters
    - `phoneNumber` string — Required for transactions performed by registered payment facilitators. The phone number associated with the sub-merchant's account.
    - `registeredSince` string
    - `taxId` string — Required for transactions performed by registered payment facilitators. The tax ID of the sub-merchant. * Format: Numeric * Fixed length: 11 digits for the CPF or 14 digits for the CNPJ
    - `url` string — Required for transactions performed by registered payment facilitators. The sub-merchant's URL on the platform, i.e. the sub-merchant's shop.
  - `surcharge` Surcharge
    - `value` integer, required — The [surcharge](https://docs.adyen.com/online-payments/surcharge/) amount to apply to the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes). When you apply surcharge, include the surcharge in the `amount.value` field. Review our [Surcharge compliance guide](https://docs.adyen.com/development-resources/surcharge-compliance/) to learn about how to comply with regulatory requirements when applying surcharge.
  - `telephoneNumber` string — The shopper's telephone number. The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`.
  - `thirdPartyTokenRedundancyInfo` ThirdPartyTokenRedundancyInfo
    - `requestParameters` object — Request-specific parameter values to populate the template placeholders. Each key must match a placeholder defined in the template referenced by `requestTemplateCode`.
    - `requestTemplateCode` string, required — Identifier for the third-party token request template configured in your Adyen account. This template defines the structure and endpoint for token requests.
  - `threeDS2RequestData` ThreeDS2RequestFields
    - `acctInfo` AcctInfo
      - `chAccAgeInd` '01' | '02' | '03' | '04' | '05' — Length of time that the cardholder has had the account with the 3DS Requestor. Allowed values: * **01** — No account * **02** — Created during this transaction * **03** — Less than 30 days * **04** — 30–60 days * **05** — More than 60 days
      - `chAccChange` string — Date that the cardholder’s account with the 3DS Requestor was last changed, including Billing or Shipping address, new payment account, or new user(s) added. Format: **YYYYMMDD**
      - `chAccChangeInd` '01' | '02' | '03' | '04' — Length of time since the cardholder’s account information with the 3DS Requestor was last changed, including Billing or Shipping address, new payment account, or new user(s) added. Allowed values: * **01** — Changed during this transaction * **02** — Less than 30 days * **03** — 30–60 days * **04** — More than 60 days
      - `chAccPwChange` string — Date that cardholder’s account with the 3DS Requestor had a password change or account reset. Format: **YYYYMMDD**
      - `chAccPwChangeInd` '01' | '02' | '03' | '04' | '05' — Indicates the length of time since the cardholder’s account with the 3DS Requestor had a password change or account reset. Allowed values: * **01** — No change * **02** — Changed during this transaction * **03** — Less than 30 days * **04** — 30–60 days * **05** — More than 60 days
      - `chAccString` string — Date that the cardholder opened the account with the 3DS Requestor. Format: **YYYYMMDD**
      - `nbPurchaseAccount` string — Number of purchases with this cardholder account during the previous six months. Max length: 4 characters.
      - `paymentAccAge` string — String that the payment account was enrolled in the cardholder’s account with the 3DS Requestor. Format: **YYYYMMDD**
      - `paymentAccInd` '01' | '02' | '03' | '04' | '05' — Indicates the length of time that the payment account was enrolled in the cardholder’s account with the 3DS Requestor. Allowed values: * **01** — No account (guest checkout) * **02** — During this transaction * **03** — Less than 30 days * **04** — 30–60 days * **05** — More than 60 days
      - `provisionAttemptsDay` string — Number of Add Card attempts in the last 24 hours. Max length: 3 characters.
      - `shipAddressUsage` string — String when the shipping address used for this transaction was first used with the 3DS Requestor. Format: **YYYYMMDD**
      - `shipAddressUsageInd` '01' | '02' | '03' | '04' — Indicates when the shipping address used for this transaction was first used with the 3DS Requestor. Allowed values: * **01** — This transaction * **02** — Less than 30 days * **03** — 30–60 days * **04** — More than 60 days
      - `shipNameIndicator` '01' | '02' — Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction. Allowed values: * **01** — Account Name identical to shipping Name * **02** — Account Name different to shipping Name
      - `suspiciousAccActivity` '01' | '02' — Indicates whether the 3DS Requestor has experienced suspicious activity (including previous fraud) on the cardholder account. Allowed values: * **01** — No suspicious activity has been observed * **02** — Suspicious activity has been observed
      - `txnActivityDay` string — Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24 hours. Max length: 3 characters.
      - `txnActivityYear` string — Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year. Max length: 3 characters.
    - `acctType` '01' | '02' | '03' — Indicates the type of account. For example, for a multi-account card product. Length: 2 characters. Allowed values: * **01** — Not applicable * **02** — Credit * **03** — Debit
    - `acquirerBIN` string — Required for [authentication-only integration](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.
    - `acquirerMerchantID` string — Required for [authentication-only integration](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). The merchantId that is enrolled for 3D Secure 2 by the merchant's acquirer. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.
    - `addrMatch` 'Y' | 'N' — Indicates whether the cardholder shipping Address and cardholder billing address are the same. Allowed values: * **Y** — Shipping Address matches Billing Address. * **N** — Shipping Address does not match Billing Address.
    - `authenticationOnly` boolean — If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation.
    - `challengeIndicator` 'noPreference' | 'requestNoChallenge' | 'requestChallenge' | 'requestChallengeAsMandate' — Possibility to specify a preference for receiving a challenge from the issuer. Allowed values: * `noPreference` * `requestNoChallenge` * `requestChallenge` * `requestChallengeAsMandate`
    - `deviceRenderOptions` DeviceRenderOptions
      - `sdkInterface` 'native' | 'html' | 'both' — Supported SDK interface types. Allowed values: * native * html * both
      - `sdkUiType` string[] — UI types supported for displaying specific challenges. Allowed values: * text * singleSelect * outOfBand * otherHtml * multiSelect
    - `homePhone` Phone
      - `cc` string — Country code. Length: 1–3 digits.
      - `subscriber` string — Subscriber number. Length: 4-15 digits.
    - `mcc` string — Required for merchants that have been enrolled for 3D Secure 2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme.
    - `merchantName` string — Required for [authentication-only integration](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/online-payments/3d-secure/native-3ds2/api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account.
    - `messageVersion` string — The `messageVersion` value indicating the 3D Secure 2 protocol version.
    - `mobilePhone` Phone
      - `cc` string — Country code. Length: 1–3 digits.
      - `subscriber` string — Subscriber number. Length: 4-15 digits.
    - `notificationURL` string — URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**.
    - `payTokenInd` boolean — Value **true** indicates that the transaction was de-tokenised prior to being received by the ACS.
    - `paymentAuthenticationUseCase` string — Indicates the type of payment for which an authentication is requested (message extension)
    - `purchaseInstalData` string — Indicates the maximum number of authorisations permitted for instalment payments. Length: 1–3 characters.
    - `recurringExpiry` string — Date after which no further authorisations shall be performed. Format: YYYYMMDD
    - `recurringFrequency` string — Indicates the minimum number of days between authorisations. Maximum length: 4 characters.
    - `sdkAppID` string — The `sdkAppID` value as received from the 3D Secure 2 SDK.
    - `sdkEphemPubKey` SDKEphemPubKey
      - `crv` string — The `crv` value as received from the 3D Secure 2 SDK.
      - `kty` string — The `kty` value as received from the 3D Secure 2 SDK.
      - `x` string — The `x` value as received from the 3D Secure 2 SDK.
      - `y` string — The `y` value as received from the 3D Secure 2 SDK.
    - `sdkMaxTimeout` integer — The maximum amount of time in minutes for the 3D Secure 2 authentication process. Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes.
    - `sdkReferenceNumber` string — The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK.
    - `sdkTransID` string — The `sdkTransID` value as received from the 3D Secure 2 SDK.
    - `threeDSCompInd` string — Completion indicator for the device fingerprinting.
    - `threeDSRequestorAuthenticationInd` string — Indicates the type of Authentication request.
    - `threeDSRequestorAuthenticationInfo` ThreeDSRequestorAuthenticationInfo
      - `threeDSReqAuthData` string — Data that documents and supports a specific authentication process. Maximum length: 2048 bytes.
      - `threeDSReqAuthMethod` '01' | '02' | '03' | '04' | '05' | '06' — Mechanism used by the Cardholder to authenticate to the 3DS Requestor. Allowed values: * **01** — No 3DS Requestor authentication occurred (for example, cardholder “logged in” as guest). * **02** — Login to the cardholder account at the 3DS Requestor system using 3DS Requestor’s own credentials. * **03** — Login to the cardholder account at the 3DS Requestor system using federated ID. * **04** — Login to the cardholder account at the 3DS Requestor system using issuer credentials. * **05** — Login to the cardholder account at the 3DS Requestor system using third-party authentication. * **06** — Login to the cardholder account at the 3DS Requestor system using FIDO Authenticator.
      - `threeDSReqAuthTimestamp` string — Date and time in UTC of the cardholder authentication. Format: YYYYMMDDHHMM
    - `threeDSRequestorChallengeInd` '01' | '02' | '03' | '04' | '05' | '06' — Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only
    - `threeDSRequestorID` string — Required for [authentication-only integration](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.
    - `threeDSRequestorName` string — Required for [authentication-only integration](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.
    - `threeDSRequestorPriorAuthenticationInfo` ThreeDSRequestorPriorAuthenticationInfo
      - `threeDSReqPriorAuthData` string — Data that documents and supports a specific authentication process. Maximum length: 2048 bytes.
      - `threeDSReqPriorAuthMethod` '01' | '02' | '03' | '04' — Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor. Allowed values: * **01** — Frictionless authentication occurred by ACS. * **02** — Cardholder challenge occurred by ACS. * **03** — AVS verified. * **04** — Other issuer methods.
      - `threeDSReqPriorAuthTimestamp` string — Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMM
      - `threeDSReqPriorRef` string — This data element provides additional information to the ACS to determine the best approach for handing a request. This data element contains an ACS Transaction ID for a prior authenticated transaction. For example, the first recurring transaction that was authenticated with the cardholder. Length: 30 characters.
    - `threeDSRequestorURL` string — URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process.
    - `transType` '01' | '03' | '10' | '11' | '28' — Identifies the type of transaction being authenticated. Length: 2 characters. Allowed values: * **01** — Goods/Service Purchase * **03** — Check Acceptance * **10** — Account Funding * **11** — Quasi-Cash Transaction * **28** — Prepaid Activation and Load
    - `transactionType` 'goodsOrServicePurchase' | 'checkAcceptance' | 'accountFunding' | 'quasiCashTransaction' | 'prepaidActivationAndLoad' — Identify the type of the transaction being authenticated.
    - `whiteListStatus` string — The `whiteListStatus` value returned from a previous 3D Secure 2 transaction, only applicable for 3D Secure 2 protocol version 2.2.0.
    - `workPhone` Phone
      - `cc` string — Country code. Length: 1–3 digits.
      - `subscriber` string — Subscriber number. Length: 4-15 digits.
  - `threeDSAuthenticationOnly` boolean — Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorisation.Default: **false**.
  - `trustedShopper` boolean — Set to true if the payment should be routed to a trusted MID.

## Response `200`

OK - the request has succeeded.

- PaymentResponse
  - `action` union — Action to be taken for completing the payment.
    - object
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `type` 'await', required — **await**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `accountNumber` string — The account number of the bank transfer.
      - `bankCode` string — The bank code of the bank transfer.
      - `beneficiary` string — The name of the account holder.
      - `bic` string — The BIC of the IBAN.
      - `branchCode` string — The branch code of the bank transfer.
      - `downloadUrl` string — The url to download payment details with.
      - `iban` string — The IBAN of the bank transfer.
      - `paymentMethodType` string — Specifies the payment method.
      - `reference` string — The transfer reference.
      - `routingNumber` string — The routing number of the bank transfer.
      - `shopperEmail` string — The e-mail of the shopper, included if an e-mail was sent to the shopper.
      - `sortCode` string — The sort code of the bank transfer.
      - `totalAmount` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `type` 'bankTransfer', required — The type of the action.
      - `url` string — Specifies the URL to redirect to.
    - object
      - `authorisationToken` string — A token needed to authorise a payment.
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `token` string — A token to pass to the delegatedAuthentication component.
      - `type` 'delegatedAuthentication', required — **delegatedAuthentication**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `data` object — When the redirect URL must be accessed via POST, use this data to post to the redirect URL.
      - `method` string — Specifies the HTTP method, for example GET or POST.
      - `nativeRedirectData` string — Native SDK's redirect data containing the direct issuer link and state data that must be submitted to the /v1/nativeRedirect/redirectResult.
      - `paymentMethodType` string — Specifies the payment method.
      - `type` 'nativeRedirect', required — **nativeRedirect**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `expiresAt` string — Expiry time of the QR code.
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `qrCodeData` string — The contents of the QR code as a UTF8 string.
      - `type` 'qrCode', required — **qrCode**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `data` object — When the redirect URL must be accessed via POST, use this data to post to the redirect URL.
      - `method` string — Specifies the HTTP method, for example GET or POST.
      - `paymentMethodType` string — Specifies the payment method.
      - `type` 'redirect', required — **redirect**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `sdkData` object — The data to pass to the SDK.
      - `type` 'sdk' | 'wechatpaySDK', required — The type of the action.
      - `url` string — Specifies the URL to redirect to.
    - object
      - `authorisationToken` string — A token needed to authorise a payment.
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `subtype` string — A subtype of the token.
      - `token` string — A token to pass to the 3DS2 Component to get the fingerprint.
      - `type` 'threeDS2', required — **threeDS2**
      - `url` string — Specifies the URL to redirect to.
    - object
      - `alternativeReference` string — The voucher alternative reference code.
      - `collectionInstitutionNumber` string — A collection institution number (store number) for Econtext Pay-Easy ATM.
      - `downloadUrl` string — The URL to download the voucher.
      - `entity` string — An entity number of Multibanco.
      - `expiresAt` string — The date time of the voucher expiry.
      - `initialAmount` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `instructionsUrl` string — The URL to the detailed instructions to make payment using the voucher.
      - `issuer` string — The issuer of the voucher.
      - `maskedTelephoneNumber` string — The shopper telephone number (partially masked).
      - `merchantName` string — The merchant name.
      - `merchantReference` string — The merchant reference.
      - `passCreationToken` string — A Base64-encoded token containing all properties of the voucher. For iOS, you can use this to pass a voucher to Apple Wallet.
      - `paymentData` string — Encoded payment data.
      - `paymentMethodType` string — Specifies the payment method.
      - `reference` string — The voucher reference code.
      - `shopperEmail` string — The shopper email.
      - `shopperName` string — The shopper name.
      - `surcharge` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `totalAmount` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `type` 'voucher', required — **voucher**
      - `url` string — Specifies the URL to redirect to.
  - `additionalData` object — Contains additional information about the payment. Some data fields are included only if you select them first: Go to **Customer Area** > **Developers** > **Additional data**.
  - `amount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `donationToken` string — Donation Token containing payment details for Adyen Giving.
  - `fraudResult` FraudResult
    - `accountScore` integer, required — The total fraud score generated by the risk checks.
    - `results` FraudCheckResult[] — The result of the individual risk checks.
      - `accountScore` integer, required — The fraud score generated by the risk check.
      - `checkId` integer, required — The ID of the risk check.
      - `name` string, required — The name of the risk check.
  - `merchantReference` string — The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement. If you need to provide multiple references for a transaction, separate them with hyphens ("-"). Maximum length: 80 characters.
  - `order` CheckoutOrderResponse
    - `amount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `expiresAt` string — The expiry date for the order.
    - `orderData` string — The encrypted order data.
    - `pspReference` string, required — The `pspReference` that belongs to the order.
    - `reference` string — The merchant reference for the order.
    - `remainingAmount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `paymentMethod` ResponsePaymentMethod
    - `brand` string — The card brand that the shopper used to pay. Only returned if `paymentMethod.type` is **scheme**.
    - `type` string — The `paymentMethod.type` value used in the request.
  - `paymentValidations` PaymentValidationsResponse
    - `name` PaymentValidationsNameResponse
      - `rawResponse` PaymentValidationsNameResultRawResponse
        - `firstName` string — The raw first name validation result that Adyen received from the scheme. First name validation result is only returned for Visa.
        - `fullName` string — The raw full name validation result that Adyen received from the scheme. Full name is the only field that is validated for Mastercard
        - `lastName` string — The raw last name validation result that Adyen received from the scheme. Last name validation result is only returned for Visa.
        - `middleName` string — The raw middle name validation result that Adyen received from the scheme. Middle name validation result is only returned for Visa.
        - `status` string — The raw name validation status value that Adyen received from the scheme. Only returned for Visa.
      - `result` PaymentValidationsNameResultResponse
        - `firstName` string — Informs you if the first name your shopper provided matches the cardholder first name on file at the issuing bank. The first name is only validated for Visa. Possible values: **match**, **partialMatch**, **noMatch**
        - `fullName` string — Informs you if the full name your shopper provided matches the cardholder name on file at the issuing bank. The full name is the only field that is validated for Mastercard. Possible values: **match**, **partialMatch**, **noMatch**
        - `lastName` string — Informs you if the last name your shopper provided matches the cardholder last name on file at the issuing bank. The last name is only validated for Visa. Possible values: **match**, **partialMatch**, **noMatch**
        - `middleName` string — Informs you if the middle name your shopper provided matches the cardholder middle name on file at the issuing bank. The middle name is only validated for Visa. Possible values: **match**, **partialMatch**, **noMatch**
      - `status` 'notPerformed' | 'notSupported' | 'performed' — Informs you if the name validation was performed. Possible values: **performed**, **notPerformed**, **notSupported**
  - `pspReference` string — Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. > For payment methods that require a redirect or additional action, you will get this value in the `/payments/details` response.
  - `refusalReason` string — If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error. When a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values. For more information, see [Refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
  - `refusalReasonCode` string — Code that specifies the refusal reason. For more information, see [Authorisation refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
  - `resultCode` 'AuthenticationFinished' | 'AuthenticationNotRequired' | 'Authorised' | 'Cancelled' | 'ChallengeShopper' | 'Error' | 'IdentifyShopper' | 'PartiallyAuthorised' | 'Pending' | 'PresentToShopper' | 'Received' | 'RedirectShopper' | 'Refused' | 'Success' — The result of the payment. For more information, see [Result codes](https://docs.adyen.com/online-payments/payment-result-codes). Possible values: * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. * **AuthenticationNotRequired** – The transaction does not require 3D Secure authentication. Returned for [standalone authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). * **Authorised** – The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. * **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state. * **ChallengeShopper** – The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **Error** – There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state. * **IdentifyShopper** – The issuer requires the shopper's device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **PartiallyAuthorised** – The payment has been authorised for a partial amount. This happens for card payments when the merchant supports Partial Authorisations and the cardholder has insufficient funds. * **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. * **PresentToShopper** – Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment. * **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. * **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. * **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.
  - `threeDS2ResponseData` ThreeDS2ResponseData
    - `acsChallengeMandated` string
    - `acsOperatorID` string
    - `acsReferenceNumber` string
    - `acsSignedContent` string
    - `acsTransID` string
    - `acsURL` string
    - `authenticationType` string
    - `cardHolderInfo` string
    - `cavvAlgorithm` string
    - `challengeIndicator` string
    - `dsReferenceNumber` string
    - `dsTransID` string
    - `exemptionIndicator` string
    - `messageVersion` string
    - `riskScore` string
    - `sdkEphemPubKey` string
    - `threeDSServerTransID` string
    - `transStatus` string
    - `transStatusReason` string
  - `threeDS2Result` ThreeDS2Result
    - `authenticationValue` string — The `authenticationValue` value as defined in the 3D Secure 2 specification.
    - `cavvAlgorithm` string — The algorithm used by the ACS to calculate the authentication value, only for Cartes Bancaires integrations.
    - `challengeCancel` '01' | '02' | '03' | '04' | '05' | '06' | '07' — Indicator informing the Access Control Server (ACS) and the Directory Server (DS) that the authentication has been cancelled. For possible values, refer to [3D Secure API reference](https://docs.adyen.com/online-payments/3d-secure/api-reference#mpidata).
    - `dsTransID` string — The `dsTransID` value as defined in the 3D Secure 2 specification.
    - `eci` string — The `eci` value as defined in the 3D Secure 2 specification.
    - `exemptionIndicator` 'lowValue' | 'secureCorporate' | 'trustedBeneficiary' | 'transactionRiskAnalysis' — Indicates the exemption type that was applied by the issuer to the authentication, if exemption applied. Allowed values: * `lowValue` * `secureCorporate` * `trustedBeneficiary` * `transactionRiskAnalysis`
    - `messageVersion` string — The `messageVersion` value as defined in the 3D Secure 2 specification.
    - `riskScore` string — Risk score calculated by Cartes Bancaires Directory Server (DS).
    - `threeDSRequestorChallengeInd` '01' | '02' | '03' | '04' | '05' | '06' — Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only
    - `threeDSServerTransID` string — The `threeDSServerTransID` value as defined in the 3D Secure 2 specification.
    - `timestamp` string — The `timestamp` value of the 3D Secure 2 authentication.
    - `transStatus` string — The `transStatus` value as defined in the 3D Secure 2 specification.
    - `transStatusReason` string — Provides information on why the `transStatus` field has the specified value. For possible values, refer to [our docs](https://docs.adyen.com/online-payments/3d-secure/api-reference#possible-transstatusreason-values).
    - `whiteListStatus` string — The `whiteListStatus` value as defined in the 3D Secure 2 specification.
  - `threeDSPaymentData` string — When non-empty, contains a value that you must submit to the `/payments/details` endpoint as `paymentData`.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

---

[API](https://skmtc.net/adyen/apis/checkoutservice.md) · [All operations](https://skmtc.net/adyen/apis/checkoutservice/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adyen/checkoutservice/revisions/a2d1f411288c/schema)
