# Create a PaymentIntent

Start collecting payment from your customer by creating a PaymentIntent. The payment `amount` and `currency`, as well as the merchant order unique identifier must be provided.

## Endpoint

`POST /api/v1/pa/payment_intents/create`

## Request Headers

- `Authorization` (string, required)
  Obtain a token via `POST /api/v1/authentication/login` with your API key and client unique identifier. Pass it as `Authorization: Bearer {{ACCESS_TOKEN}}`. Tokens expire after a configurable duration.

## Request Parameters

### Request Body

- `additional_info` (object, conditional)
  Additional info for the transaction.
  - `account_funding_data` (object, conditional)
    Additional info for account funding transactions to ensure compliance with card networks.
    - `recipient` (object, conditional)
      Details of the recipient for this account funding transaction.
      - `account_number` (string, conditional)
        Account number of the recipient receiving funds. If you are funding a card, provide the first six digits and last four digits of the card number (e.g., "411111xxxxxxxx1111").
      - `address` (object, conditional)
        Address of the recipient.
        - `city` (string, conditional)
          City of the address.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `line1` (string, conditional)
          Address line1.
        - `line2` (string, conditional)
          Address line2.
        - `postcode` (string, conditional)
          Postcode of the address.
        - `state` (string, conditional)
          State or province of the address.
      - `first_name` (string, conditional)
        First name of the recipient.
      - `last_name` (string, conditional)
        Last name of the recipient.
      - `middle_name` (string, conditional)
        Middle name of the recipient.
    - `sender` (object, conditional)
      Details of the sender for this account funding transaction.
      - `address` (object, conditional)
        Address of the sender.
        - `city` (string, conditional)
          City of the address.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `line1` (string, conditional)
          Address line1.
        - `line2` (string, conditional)
          Address line2.
        - `postcode` (string, conditional)
          Postcode of the address.
        - `state` (string, conditional)
          State or province of the address.
      - `date_of_birth` (string, conditional)
        The sender's date of birth. Format: YYYY-MM-DD (e.g., "1989-07-15").
      - `first_name` (string, conditional)
        First name of the sender.
      - `last_name` (string, conditional)
        Last name of the sender.
      - `middle_name` (string, conditional)
        Middle name of the sender.
    - `transfer_between_own_accounts` (boolean, conditional)
      Indicates whether the transfer is between the customer's own accounts. If true, Airwallex will compare the cardholder's name and the recipient's name, and will trigger 3DS if the names do not match.
    - `type` (string, required)
      Account funding transaction type. Possible values:
      - **ACCOUNT_TO_ACCOUNT_TRANSFER**: An account-to-account transfer, either within the same financial institution or to a different one.
      - **STORED_VALUE_DIGITAL_WALLET_TRANSFER**: Adding funds to or cashing out a Stored Value Digital Wallet (SVDW) account.
      - **STAGED_DIGITAL_WALLET_TRANSFER**: Funding a Staged Digital Wallet before the cardholder makes a purchase.
      - **PREPAID_CARD_TOP_UP**: Prepaid card or gift card top-up (adding value to an eligible reloadable prepaid card or funding the cardholder's own prepaid account).
      - **LIQUID_ASSET_PURCHASE**: Funds transfer for the acquisition of liquid assets (for example, stocks, shares, foreign currency and cryptocurrency).
  - `customer_activity_data` (object, conditional)
    (Optional) Additional customer information to be sent to the external risk control system. This information may increase the success rate of your transactions if provided.
    - `account_type` (string, conditional)
      Customer account type. One of `GUEST`, `PRIVATE`, `BUSINESS`, `VIP`, `MERCHANT_OPERATED`, `TRIAL`, `MERCHANT_EMPLOYEE`, `PREMIUM_PAID`, `SMALL_BUSINESS`, `AGENT`
    - `first_successful_order_date` (string, conditional)
      Date at which the customer completes the first order on the merchant's site
    - `last_login_ip_address` (string, conditional)
      The public IP address used by the customer in the last login.
    - `last_modified_at` (string, conditional)
      The last time at which the customer modified their account in the merchant's system. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `linked_social_networks` (array[object], conditional)
      Social network data related to the customer
      - `email` (string, conditional)
        The customer's email address on the social network.
      - `name` (string, conditional)
        The social network used by the customer. Can be one of: `FACEBOOK`, `GOOGLE`, `TWITTER`, `REDDIT`, `PINTEREST`, `WECHAT`, `QQ`, `TWITCH`, `APPLE`, `DRIBBBLE`, `GITHUB`, `LINKEDIN`, `MAKER_STUDIOS`, `STACK_EXCHANGE`, `VIMEO`, `STEAM`, `OTHER`, `KAKAO`, `NAVER`, `GRAB`, `JKOPAY`, `LINE`, `OTHER`
      - `profile_id` (string, conditional)
        The customer's profile unique identifier on the social network.
    - `purchase_summaries` (array[object], conditional)
      The purchase summaries of this customer with different payment methods in the merchant's system for risk analysis
      - `currency` (string, conditional)
        The currency of successful purchase volume in 3-letter ISO 4217 currency code. Please refer to [supported currencies](/docs/payments/supported-currencies).
      - `first_successful_purchase_date` (string, conditional)
        The date on which the customer completed their first purchase in the merchant's system with the specified payment method type
      - `last_successful_purchase_date` (string, conditional)
        The date on which the customer completed their last purchase in the merchant's system with the specified payment method type
      - `payment_method_type` (string, required)
        Payment method type, one of `affirm`, `afterpay`, `atome`, `klarna`, and `other`
      - `successful_purchase_amount` (number, conditional)
        Total volume of successful purchases. Please refer to [supported currencies](/docs/payments/supported-currencies) for supported minor units.
      - `successful_purchase_count` (integer (int32), conditional)
        Total number of successful purchases
    - `registered_via_social_media` (boolean, conditional)
      Whether the customer registers through social media. Default to `false`
    - `registration_date` (string, conditional)
      Date at which the customer registers on the merchant's site
    - `registration_ip_address` (string, conditional)
      The public IP address used by the customer when registering on the merchant's site.
  - `enhanced_scheme_data` (object, conditional)
    Level 2 & Level 3 data that will be sent to card schemes. By providing Level 2 or Level 3 data with your transactions, you may be able to qualify for reduced interchange rates.
    - `customer` (object, conditional)
      Details of the customer making a payment for this Payment Intent.
      - `first_name` (string, conditional)
        First name of the customer
      - `last_name` (string, conditional)
        Last name of the customer
      - `reference` (string, conditional)
        A reference number or code supplied by the cardholder to the merchant, which could be used for invoice management at the cardholder's side. Maximum of 17 characters.
    - `customer_tax_identifier` (string, conditional)
      Tax identifier of the customer. Maximum of 13 characters.
    - `duty_amount` (number, conditional)
      The total charges for any import or export duty included in the transaction. This amount must be expressed in the original currency of the transaction.
    - `invoice_reference` (string, conditional)
      Invoice reference number. Maximum of 17 characters.
    - `local_tax_amount` (number, conditional)
      The amount of state or provincial tax on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `merchant_tax_identifier` (string, conditional)
      Tax identifier of the merchant. This can be a VAT / GST / other tax related identifier. Maximum of 20 characters.
    - `national_tax_amount` (number, conditional)
      The amount of national tax on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `products` (array[object], conditional)
      Product list
      - `code` (string, conditional)
        Merchant's product identifier code. Maximum of 12 characters.
      - `commodity_code` (string, conditional)
        The [UNSPSC Commodity Code](https://www.ungm.org/Public/UNSPSC) for the product. Maximum of 12 characters.
      - `description` (string, conditional)
        Product description. Maximum of 26 characters.
      - `discount_amount` (number, conditional)
        The discount amount for the product. This amount must be expressed in the original currency of the transaction.
      - `quantity` (integer (int32), conditional)
        Product quantity
      - `tax_percent` (number, conditional)
        The tax rate percentage for the product. Should be less than 100, up to 2 decimal places.
      - `total_amount` (number, conditional)
        The total amount for the product. This amount must be expressed in the original currency of the transaction.
      - `total_tax_amount` (number, conditional)
        The total amount of tax for the product. This amount must be expressed in the original currency of the transaction.
      - `unit` (string, conditional)
        The unit of measure code used for the product. Maximum of 12 characters.
      - `unit_price` (number, conditional)
        Product unit price. This amount must be expressed in the original currency of the transaction.
    - `shipping` (object, conditional)
      Shipping information
      - `address` (object, conditional)
        Shipping address
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `date` (string, conditional)
        The date the goods were shipped to the destination, in YYYY-MM-DD format.
      - `fee_amount` (number, conditional)
        Shipping fee amount. This amount must be expressed in the same currency as the transaction amount.
      - `from_postcode` (string, conditional)
        The postcode of the location the goods are being shipped from. Maximum of 10 characters.
    - `summary_commodity_code` (string, conditional)
      The first 2,4 or 6 digits of  [UNSPSC Commodity Code](https://www.ungm.org/Public/UNSPSC) that best categorizes the items being purchased. If the items belong to different categories, choose a category that best represents the items. Maximum of 15 characters
    - `total_tax_amount` (number, conditional)
      The total amount of sales tax or value added tax (VAT) on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `vat_invoice_reference` (string, conditional)
      Value added tax invoice reference number. Maximum of 15 characters.
  - `online_ticket_agency_data` (object, conditional)
    The additional information for online ticket agency data.
    - `events` (array[object], conditional)
      The details of the event.
      - `arena_location` (object, conditional)
        The location of the venue.
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `arena_name` (string, conditional)
        The name of the venue.
      - `arena_seat_number` (string, conditional)
        The seat number of the venue.
      - `company` (string, conditional)
        The name of the company arranging the event.
      - `customer_name` (string, conditional)
        The name of the customer.
      - `customer_title` (string, conditional)
        The title used before the customer's  name. One of mr, ms, and mrs.
      - `ends_at` (string, conditional)
        The event's end date and time in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `name` (string, required)
        The name of the event.
      - `starts_at` (string, conditional)
        The event's start date and time in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `type` (string, conditional)
        The category or type of the event.
  - `online_travel_agency_data` (object, conditional)
    The additional information for online travel agency data.
    - `accommodations` (array[object], conditional)
      The details of accommodation.
      - `address` (object, required)
        The address of this accommodation.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, required)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `check_in_date` (string, required)
        Check-in date, in YYYY-MM-DD format.
      - `check_out_date` (string, required)
        Check-out date, in YYYY-MM-DD format.
      - `early_checkin` (boolean, conditional)
        Indicates if early check-in was paid for.
      - `guest_email` (string, conditional)
        Guest email address for communication and confirmations.
      - `guest_name` (string, conditional)
        Full legal name of the guest
      - `guest_nationality` (string, required)
        Nationality of the guest (ISO 3166-1 alpha-2 code).
      - `guest_phone` (string, required)
        Guest phone number.
      - `late_checkout` (boolean, conditional)
        Indicates if late checkout was paid for.
      - `name` (string, required)
        Name of the accommodation.
      - `pre_tax_amount` (number, conditional)
        Accommodation amount excluding tax.
      - `ratings` (array[object], conditional)
        Hotel rating(s) (from various sources).
        - `score` (string, conditional)
          The score of this rating.
        - `source` (string, conditional)
          The source of this rating.
        - `type` (string, conditional)
          The type of this rating. For example `Internal`, `External`
      - `room_type` (string, required)
        Type of room. For example `Presidential Suite`, `Single Room`, `Double Room`, `Suite`
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the accommodation price.
      - `type` (string, required)
        Type of accommodation. For example `Hotel`, `Hostel`, `Resort`, `Apartment`
    - `buses` (array[object], conditional)
      The details of the buses travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `car_rentals` (array[object], conditional)
      The details of the car rental.
      - `agreement_number` (string, required)
        Rental agreement number.
      - `driver_email` (string, conditional)
        Driver email address for communication and confirmations.
      - `driver_name` (string, required)
        Full legal name of the driver.
      - `driver_nationality` (string, required)
        Nationality of the driver (ISO 3166-1 alpha-2 code)
      - `driver_phone` (string, conditional)
        Driver phone number.
      - `drop_off_address` (object, conditional)
        The return address of this rental.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `drop_off_at` (string, required)
        Rental drop-off time, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `insurances` (array[object], conditional)
        The list of insurances.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `pick_up_address` (object, conditional)
        The start address of this rental.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `pick_up_at` (string, required)
        Rental pick-up time, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `pre_tax_amount` (number, conditional)
        Rental amount excluding tax.
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the rental price.
      - `vehicle` (object, conditional)
        The details of the vehicle.
        - `condition` (string, conditional)
          Condition of the vehicle. One of `GOOD`, `FAIR`, `POOR`.
        - `license_plate` (string, required)
          License plate number.
        - `manufacture_year` (string, conditional)
          Year of manufacture.
        - `manufacturer` (string, required)
          Manufacturer of the vehicle.
        - `model` (string, required)
          Model of the vehicle.
        - `vin` (string, conditional)
          Vehicle Identification Number.
    - `customer` (object, conditional)
      Details of the customer making a payment for this Payment Intent.
      - `loyalty_program_name` (string, conditional)
        The name of the loyalty program.
      - `loyalty_program_points` (integer (int32), conditional)
        Points or miles in the loyalty program.
      - `loyalty_program_tier` (string, conditional)
        Tier of the loyalty program. For example `Silver`, `Gold`, `Platinum`.
      - `type` (string, conditional)
        Customer account type. One of `GUEST`, `MEMBER`.
    - `ferries` (array[object], conditional)
      The details of the ferries travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `flights` (array[object], conditional)
      The details of the flights.
      - `arrival_airport_code` (string, required)
        IATA code of the arrival airport.
      - `arrival_city` (string, required)
        City where the arrival airport is located.
      - `arrival_country` (string, required)
        Country where the arrival airport is located (ISO 3166-1 alpha-2 code).
      - `class_of_service` (string, conditional)
        Class of service. For example `Economy`, `Premium Economy`, `Business`, `First`.
      - `departure_airport_code` (string, required)
        IATA code of the departure airport.
      - `departure_city` (string, required)
        City where the departure airport is located.
      - `departure_country` (string, required)
        Country where the departure airport is located (ISO 3166-1 alpha-2 code).
      - `flight_number` (string, required)
        Airline's unique flight number.
      - `insurances` (array[object], conditional)
        The list of insurance.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_email` (string, conditional)
        Passenger email address for communication and confirmations.
      - `passenger_name` (string, required)
        Full legal name of the passenger.
      - `passenger_nationality` (string, required)
        Nationality of the passenger (ISO 3166-1 alpha-2 code).
      - `passenger_phone` (string, conditional)
        Passenger phone number.
      - `pre_tax_amount` (number, conditional)
        Ticket amount excluding tax.
      - `scheduled_arrival_at` (string, required)
        Scheduled arrival date and time in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, required)
        Scheduled departure date and time in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `seat_number` (string, conditional)
        Assigned seat number on the flight.
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the ticket price.
      - `type` (string, required)
        Whether the flight is domestic or international. One of `DOMESTIC`, `INTERNATIONAL`.
    - `order` (object, conditional)
      Purchase order related to this PaymentIntent.
      - `cancellable` (boolean, required)
        Indicates if the booking is cancellable.
      - `created_at` (string, required)
        The time of the order was made, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `prepayment_model` (string, conditional)
        The model of payment. One of `FULL`, `PARTIAL`
    - `trains` (array[object], conditional)
      The details of the trains travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
- `amount` (number, required)
  Payment amount. This is the order amount you would like to charge your customer. Please refer to [supported currencies](/docs/payments/supported-currencies) for supported minor units.
- `connected_account_id` (string, conditional)
  Airwallex assigned account identifier of the connected entity(another account which is linked with platform). It is to be used by the platform to indicate the connected entity in the transaction where platform is the owner of transaction. Notice: This can not be used with x-on-behalf-of header together.
- `currency` (string, required)
  Payment currency in 3-letter ISO 4217 currency code. Please refer to [supported currencies](/docs/payments/supported-currencies).
- `customer` (object, conditional)
  Details of the customer making a payment for this Payment Intent. When `customer_id` is provided in the request you must leave this object empty unless you want to provide `additional_info` related to the customer for this payment.
  - `address` (object, conditional)
    Address of the customer
    - `city` (string, conditional)
      City of the address. Maximum of 100 characters.
    - `country_code` (string, required)
      The two-letter country code in ISO 3166-1 alpha-2 format.
    - `postcode` (string, conditional)
      Postcode of the address. Maximum of 10 characters.
    - `state` (string, conditional)
      State or province of the address. Maximum of 100 characters.
    - `street` (string, conditional)
      Street of the address. Maximum of 1000 characters.
  - `business_name` (string, conditional)
    Business name of the customer
  - `email` (string, conditional)
    Email address of the customer
  - `first_name` (string, conditional)
    First name of the customer
  - `last_name` (string, conditional)
    Last name of the customer
  - `merchant_customer_id` (string, conditional)
    Unique identifier of the customer in merchant's system. Maximum length is 64.
  - `phone_number` (string, conditional)
    Phone number of the customer
- `customer_id` (string, conditional)
  The unique identifier of the customer making a payment for this Payment Intent. This field is required if the Payment Intent is created for recurring payments. Leave this field empty if the customer is unknown (guest checkout) or if the customer details are provided via the customer object. If only `additional_info` is provided in the customer object for the Payment Intent, you can still include `customer_id` in the request.
- `descriptor` (string, conditional)
  Descriptor that will display to the customer. Maximum length is 32.
- `device_data` (object, conditional)
  Client device information applicable when `payment_method` is set. It is recommended to provide this data for risk analysis.
  - `accept_header` (string, conditional)
    Accept header value
  - `browser` (object, conditional)
    Browser specific data
    - `java_enabled` (boolean, conditional)
      Is Java enabled?
    - `javascript_enabled` (boolean, conditional)
      Is JavaScript enabled?
    - `user_agent` (string, conditional)
      User Agent header value
  - `device_id` (string, conditional)
    Device unique identifier or Advertisement unique identifier or IMEI
  - `ip_address` (string, conditional)
    Public IP address, both IPv4 and IPv6 are supported.
  - `language` (string, conditional)
    Language or locale
  - `location` (object, conditional)
    Location data
    - `lat` (string, conditional)
      Latitude
    - `lon` (string, conditional)
      Longitude
  - `mobile` (object, conditional)
    Mobile specific data
    - `device_model` (string, conditional)
      Device model
    - `os_type` (string, conditional)
      OS type
    - `os_version` (string, conditional)
      OS version
  - `screen_color_depth` (integer (int32), conditional)
    Screen color depth in bits
  - `screen_height` (integer (int32), conditional)
    Screen height in pixels
  - `screen_width` (integer (int32), conditional)
    Screen width in pixels
  - `timezone` (string, conditional)
    Timezone offset to UTC in hours, with added minutes if necessary
- `external_recurring_data` (object, conditional)
  Some merchants prefer to maintain the recurring payments on their own instead of using **PaymentConsent**. Providing this data indicates the request is an external recurring payment.
  Only effective when the `payment_method.type` is `card`, `applepay`, `googlepay`.
  - `initial_payment` (boolean, conditional)
    Set this to `true` if it is the initial transaction request in a recurring series.
    Default: `false`.
  - `merchant_trigger_reason` (string, conditional)
    Indicate if this subsequent payment is scheduled. Only applicable when `triggered_by` is `merchant`. One of `scheduled`, `unscheduled`, `installments`.
    Default: `scheduled`
  - `original_transaction_id` (string, conditional)
    The original transaction reference which can be provided to increase the odds of getting approved by issuer when `triggered_by` is `merchant` (not in customer's presence).
    Do not pass this value when `initial_payment` is `true` or if you are not clear about the valid formats (as listed below).
    - Visa (`card`) - 15 digits unique ID Visa assigns to the response of the original authorization request, i.e. `123456789012345`
    - Mastercard (`card`) - 13 characters trace id (DE 63 Subfield 1 & 2 + DE 15) from the response of the original authorization request, i.e. `MCC123ABC0101`
  - `terms_of_use` (object, conditional)
    Terms to specify how this Payment Consent will be used.
    - `billing_cycle_charge_day` (integer (int32), conditional)
      The granularity per billing cycle. Required when payment_schedule.period_unit is WEEK, MONTH, or YEAR. (e.g. charge_day_per_billing_cycle= 5, payment_schedule.period_unit  = MONTH, payment_schedule.period = 1 if collect payment on the 5th of each month).
    - `end_date` (string, conditional)
      End date to expect payment request.
    - `first_payment_amount` (number, conditional)
      The first payment. It could include the costs associated with the first debited amount.Optional if payment agreement type is `VARIABLE`.
    - `fixed_payment_amount` (number, conditional)
      The fixed payment amount that can be charged for a single payment.Required if payment agreement type is `FIXED`.
    - `max_payment_amount` (number, conditional)
      The maximum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `min_payment_amount` (number, conditional)
      The minimum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `payment_amount_type` (string, required)
      The agreed type of amounts for subsequent payment. Should be one of `FIXED`, `VARIABLE`.
      - **FIXED**: payment amount is fixed. A specific amount is required.
      - **VARIABLE**: payment amount is variable at each collection. A max limit is recommended.
    - `payment_currency` (string, conditional)
      The currency of this payment. Please refer to [supported currencies](/docs/payments/supported-currencies).
    - `payment_schedule` (object, conditional)
      - `period` (integer (int32), conditional)
        The number of period units between billing cycles. For example, the payment cycle is one month if period=1 and period_unit=MONTH. Required when merchant_trigger_reason = scheduled
      - `period_unit` (string, conditional)
        Specifies billing frequency. One of `DAY`, `WEEK`,  `MONTH`, and `YEAR`. Required when merchant_trigger_reason = scheduled
    - `start_date` (string, conditional)
      Start date to expect payment request.
    - `total_billing_cycles` (integer (int32), conditional)
      The total number of billing cycles. For example, the mandate will last for 1 year if `total_billing_cycles`=12, `payment_schedule.period`=1 and `payment_schedule.period_unit`=MONTH if the `merchant_trigger_reason` is `scheduled`. Merchant can bill customers 12 times when `total_billing_cycles`=12 if the `merchant_trigger_reason` is `unscheduled`The mandate will continue indefinitely if total_billing_cycles is null.
  - `triggered_by` (string, required)
    The party who initiated this subsequent payment request. One of `merchant`, `customer`.
- `funds_split_data` (array[object], conditional)
  When provided, it creates specified funds splits that are automatically released after the PaymentIntent succeeds.
  - `amount` (number, required)
    Amount of this split. Please refer to [supported currencies](/docs/payments/supported-currencies) for supported minor units.
  - `destination` (string, conditional)
    The destination that the money is splitting to. The value could be either:
    - a connected account ID. Used to split funds when collecting payments directly
    - a platform account ID. Used to split funds when collecting payments on behalf of connected accounts
    If a value is not specified, the destination will be as specified in the PaymentIntent.
- `merchant_category_code` (string, conditional)
  Four-digit code to categorize the business or service. This field is only applicable for approved merchants to specify an alternative category code.
- `merchant_order_id` (string, required)
  The order unique identifier created in merchant's order system that corresponds to this PaymentIntent. Maximum length is 64.
- `metadata` (object, conditional)
  A set of key-value pairs that you can attach to the PaymentIntent. You can specify up to 50 keys with key names up to 50 characters long and values up to 500 characters long.
- `order` (object, conditional)
  Purchase order related to this PaymentIntent
  - `discount` (object, conditional)
    Discount used by the customer.
    - `coupon_code` (string, conditional)
      Coupon code used
  - `foreign_retailer_amount` (number, conditional)
    The total amount from all foreign retailers in a marketplace transaction. Must be greater than or equal to 0 and less than or equal to the payment intent amount.
  - `products` (array[object], conditional)
    Product list
    - `category` (string, conditional)
      Product category at the merchant store, such as home furnishings, pet supplies, apparel and accessories
    - `code` (string, conditional)
      Merchant's product identifier code. Maximum of 128 characters.
    - `desc` (string, conditional)
      Product description. Maximum of 500 characters.
    - `effective_end_at` (string, conditional)
      The effective end time of the product, only applicable when product type is `intangible_good`. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `effective_start_at` (string, conditional)
      The effective start time of the product, only applicable when product type is `intangible_good`. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `image_url` (string, conditional)
      The preview image url for this product, which is usually displayed as thumbnail in the order details.
    - `name` (string, conditional)
      Name of the product. Maximum of 255 characters.
    - `quantity` (integer (int32), conditional)
      Product quantity
    - `seller` (object, conditional)
      Seller info of the purchase order
      - `identifier` (string, conditional)
        The identifier of the seller in the merchant's system
      - `name` (string, conditional)
        The name of the seller in the merchant's system
    - `sku` (string, conditional)
      Stock keeping unit. A unique identifier assigned by the merchant to identify and track this specific product. Maximum of 128 characters.
    - `type` (string, conditional)
      Type of product, such as `physical_good`, `intangible_good`, or `service`. Maximum of 128 characters.
    - `unit_price` (number, conditional)
      Product unit price
    - `url` (string, conditional)
      The url that links to the product page at merchant site.
  - `sellers` (array[object], conditional)
    Seller list
    - `additional_info` (object, conditional)
      The additional information of the seller in the merchant's system for risk analysis
      - `address_updated_at` (string, conditional)
        The timestamp of the latest address change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `email_updated_at` (string, conditional)
        The timestamp of the latest email change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `password_updated_at` (string, conditional)
        The timestamp of the latest password change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `products_updated_at` (string, conditional)
        The timestamp of the latest change of product listing details. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `sales_summary` (object, conditional)
        The sales summary of this seller during the last period
        - `currency` (string, conditional)
          The currency of sales amount
        - `period` (string, conditional)
          The period of this sales summary. Default to 12M (last 12 months).
        - `sales_amount` (number, conditional)
          The volume of sales completed by the seller in the last period
        - `sales_count` (integer (int32), conditional)
          The number of sales completed by the seller in the last period
    - `business_info` (object, conditional)
      The business information of the seller in the merchant's system for risk analysis
      - `address` (object, conditional)
        Address of the seller
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `email` (string, conditional)
        Email address of the seller
      - `phone_number` (string, conditional)
        Phone number of the seller
      - `rating` (number, conditional)
        The latest customer rating (out of 10) for this seller
      - `registration_date` (string, conditional)
        The date on which the seller registered in the merchant's system
    - `identifier` (string, conditional)
      The identifier of the seller in the merchant's system. Maximum length is 64.
    - `name` (string, conditional)
      The name of the seller in the merchant's system. Maximum length is 100.
  - `shipping` (object, conditional)
    Shipping information
    - `address` (object, conditional)
      Shipping address
      - `city` (string, conditional)
        City of the address. Maximum of 100 characters.
      - `country_code` (string, required)
        The two-letter country code in ISO 3166-1 alpha-2 format.
      - `postcode` (string, conditional)
        Postcode of the address. Maximum of 10 characters.
      - `state` (string, conditional)
        State or province of the address. Maximum of 100 characters.
      - `street` (string, conditional)
        Street of the address. Maximum of 1000 characters.
    - `fee_amount` (number, conditional)
      Shipping fee amount.
    - `first_name` (string, conditional)
      First name of the recipient. Maximum of 128 characters.
    - `last_name` (string, conditional)
      Last name of the recipient. Maximum of 128 characters.
    - `phone_number` (string, conditional)
      Phone number of the recipient. Maximum of 50 characters.
    - `shipping_delayed_at` (string, conditional)
      Use if customer chose to deliver the item at a later time. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `shipping_method` (string, conditional)
      Shipping method for the product. Maximum of 128 characters.
  - `supplier` (object, conditional)
    Deprecated.
    Use `order.sellers` instead
    - `address` (object, conditional)
      Address of the supplier
      - `city` (string, conditional)
        City of the address. Maximum of 100 characters.
      - `country_code` (string, required)
        The two-letter country code in ISO 3166-1 alpha-2 format.
      - `postcode` (string, conditional)
        Postcode of the address. Maximum of 10 characters.
      - `state` (string, conditional)
        State or province of the address. Maximum of 100 characters.
      - `street` (string, conditional)
        Street of the address. Maximum of 1000 characters.
    - `business_name` (string, conditional)
      Business name of the supplier. Maximum length is 128.
    - `email` (string, conditional)
      Email address of the supplier
    - `first_name` (string, conditional)
      First name of the supplier. Maximum length is 128.
    - `last_name` (string, conditional)
      Last name of the supplier. Maximum length is 128.
    - `phone_number` (string, conditional)
      Phone number of the supplier
  - `surcharge` (object, conditional)
    Surcharge Information.
    - `amount` (number, required)
      The surcharge amount. This amount is included in the PaymentIntent's total `amount`.
  - `tip` (object, conditional)
    Tip information
    - `amount` (number, required)
      The tip amount. This amount is included in the total `amount`.
  - `type` (string, conditional)
    Industry category of the order. Maximum of 128 characters.
- `payment_consent` (object, conditional)
  The associated **PaymentConsent** to set up along with the PaymentIntent. Only effective when the `payment_method.type` is `card`.
  - `merchant_trigger_reason` (string, conditional)
    Indicate whether the subsequent payments are scheduled. Only applicable when `next_triggered_by` is `merchant`. One of `scheduled`, `unscheduled`, `installments`.
    Default: `unscheduled`
    Possible enum values:
      - `installments`
      - `scheduled`
      - `unscheduled`
  - `next_triggered_by` (string, required)
    The party to trigger subsequent payments. One of `merchant`, `customer`.
  - `terms_of_use` (object, conditional)
    Terms to specify how this Payment Consent will be used.
    - `billing_cycle_charge_day` (integer (int32), conditional)
      The granularity per billing cycle. Required when payment_schedule.period_unit is WEEK, MONTH, or YEAR. (e.g. charge_day_per_billing_cycle= 5, payment_schedule.period_unit  = MONTH, payment_schedule.period = 1 if collect payment on the 5th of each month).
    - `end_date` (string, conditional)
      End date to expect payment request.
    - `first_payment_amount` (number, conditional)
      The first payment. It could include the costs associated with the first debited amount.Optional if payment agreement type is `VARIABLE`.
    - `fixed_payment_amount` (number, conditional)
      The fixed payment amount that can be charged for a single payment.Required if payment agreement type is `FIXED`.
    - `max_payment_amount` (number, conditional)
      The maximum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `min_payment_amount` (number, conditional)
      The minimum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `payment_amount_type` (string, required)
      The agreed type of amounts for subsequent payment. Should be one of `FIXED`, `VARIABLE`.
      - **FIXED**: payment amount is fixed. A specific amount is required.
      - **VARIABLE**: payment amount is variable at each collection. A max limit is recommended.
    - `payment_currency` (string, conditional)
      The currency of this payment. Please refer to [supported currencies](/docs/payments/supported-currencies).
    - `payment_schedule` (object, conditional)
      - `period` (integer (int32), conditional)
        The number of period units between billing cycles. For example, the payment cycle is one month if period=1 and period_unit=MONTH. Required when merchant_trigger_reason = scheduled
      - `period_unit` (string, conditional)
        Specifies billing frequency. One of `DAY`, `WEEK`,  `MONTH`, and `YEAR`. Required when merchant_trigger_reason = scheduled
    - `start_date` (string, conditional)
      Start date to expect payment request.
    - `total_billing_cycles` (integer (int32), conditional)
      The total number of billing cycles. For example, the mandate will last for 1 year if `total_billing_cycles`=12, `payment_schedule.period`=1 and `payment_schedule.period_unit`=MONTH if the `merchant_trigger_reason` is `scheduled`. Merchant can bill customers 12 times when `total_billing_cycles`=12 if the `merchant_trigger_reason` is `unscheduled`The mandate will continue indefinitely if total_billing_cycles is null.
- `payment_method` (object, conditional)
  The payment method details to confirm the PaymentIntent. The PaymentIntent will be confirmed automatically when `payment_method` is set.
  - `applepay` (object, conditional)
    Applepay information. This must be provided if `type` is set to `applepay`
    - `billing` (object, conditional)
      Billing information
      - `address` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `email` (string, conditional)
        Email address of the customer
      - `first_name` (string, conditional)
        First name of the customer. Maximum length is 128.
      - `last_name` (string, conditional)
        Last name of the customer. Maximum length is 128.
      - `phone_number` (string, conditional)
        Phone number of the customer
    - `encrypted_payment_token` (string, conditional)
      Payment data from ApplePayPaymentToken
    - `payment_data_type` (string, conditional)
      Type of the payment data details. One of `tokenized_card` or `encrypted_payment_token`.
    - `tokenized_card` (object, conditional)
      Payment data with the tokenized card details
      - `authentication_method` (object, conditional)
        Authentication method
        - `emv` (object, conditional)
          EMV data
          - `emv_data` (string, required)
            Output from the Secure Element
          - `encrypted_pin_data` (string, conditional)
            The PIN encrypted using the bank's key
        - `three_ds` (object, conditional)
          3D-Secure authentication data
          - `eci_indicator` (string, conditional)
            Electronic Commerce Indicator, as defined by 3-D Secure
          - `online_payment_cryptogram` (string, required)
            Online payment cryptogram, as defined by 3-D Secure
        - `type` (string, required)
          The authentication method type. One of `emv` or `three_ds`.
      - `device_manufacturer_identifier` (string, conditional)
        Device manufacturer identifier
      - `expiry_month` (string, required)
        Two digit number representing the card's expiration month
      - `expiry_year` (string, required)
        Four digit number representing the card's expiration year
      - `name` (string, conditional)
        Cardholder name
      - `number` (string, required)
        Card number
  - `card` (object, conditional)
    Information required for online card transactions. This must be provided if `type` is set to `card`
    - `additional_info` (object, conditional)
      Additional information of external network token requestor. Should be provided when number_type is `EXTERNAL_NETWORK_TOKEN`
      - `merchant_verification_value` (string, conditional)
        Merchant Verification Value (Provided by VISA during onboarding)
        or
        MasterCard Assigned ID (Provided by MasterCard during onboarding)
      - `token_requestor_id` (string, conditional)
        Token requestor unique identifier (Provided by card schemes during onboarding)
    - `billing` (object, conditional)
      Billing information
      - `address` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `email` (string, conditional)
        Email address of the customer
      - `first_name` (string, conditional)
        First name of the customer. Maximum length is 128.
      - `last_name` (string, conditional)
        Last name of the customer. Maximum length is 128.
      - `phone_number` (string, conditional)
        Phone number of the customer
    - `cryptogram` (string, conditional)
      The cryptogram value. Must be provided if card.number_type is `EXTERNAL_NETWORK_TOKEN`. Maximum length is 28.
    - `cvc` (string, conditional)
      CVC code of this card. Required for all transactions except merchant initiated transactions and network tokenized transactions
    - `expiry_month` (string, conditional)
      Two digit number representing the card's expiration month
    - `expiry_year` (string, conditional)
      Four digit number representing the card's expiration year
    - `external_three_ds` (object, conditional)
      Authentication data from an external 3D-Secure provider (3RI for MIT subsequent transaction)
      - `authentication_value` (string, conditional)
        Authentication value, will be used to provide proof of authentication for 3DS v2
      - `ds_transaction_id` (string (uuid), conditional)
        UUID assigned by the Directory Server to identify a single transaction for 3DS v2
      - `eci` (string, conditional)
        Electronic Commerce Indicator provided by the ACS or DS to indicate the results of the attempt to authenticate the Cardholder
      - `three_ds_exemption` (string, conditional)
        Add the SCA exemptions if your 3DS provider decides any exemptions are applicable. One of `TRA`, `LVP`, `ANONYMOUS`
      - `three_ds_server_transaction_id` (string (uuid), conditional)
        UUID assigned by the 3DS server to identify a single transaction for 3DS v2
      - `version` (string, conditional)
        3DS version in the format major.minor.patch
    - `korean_card` (object, conditional)
      Information for Korean Card
      - `business_number` (string, conditional)
        A 10-digit business number of the company. Either `business_number` or `date_of_birth` must be provided.
      - `date_of_birth` (string, conditional)
        A 6-digit date of birth in the format of YYMMDD. Either `business_number` or `date_of_birth` must be provided.
      - `password_first2` (string, required)
        Card password first 2 digits.
    - `name` (string, conditional)
      Card holder name. Maximum length is 128.
    - `number` (string, conditional)
      Card number
    - `number_type` (string, conditional)
      Type of the number. One of `PAN`, `EXTERNAL_NETWORK_TOKEN`. Default: `PAN`
  - `card_present` (object, conditional)
    Information required for card-present transactions. This must be provided if `type` is set to `card_present`
    - `cardholder_verification_method` (string, required)
      Cardholder verification method.
      - `offline_pin`: The PIN is verified offline by the EMV chip card.
      - `online_pin`: The PIN is encrypted and verified online by issuers or card schemes. `encrypted_pin` is required for `online_pin`.
      - `manual_signature`: The cardholder signature on the receipt is compared to the signature on the back of the card.
      - `no_cvm`: No verification needed.
      - `cdcvm`: Cardholder device verification method. The cardholder is verified using a device's authentication method.
      - `offline_pin_and_signature`: Both an offline PIN and a manual signature are used to verify the cardholder.
      - `skipped`: Verification process was bypassed.
    - `emv_tags` (string, conditional)
      Tag-length-value (TLV)-encoded data read from a chip card. Required when pan_entry_mode is chip, contactless_chip.
      Mandatory tags:
      - 82 - Application interchange profile
      - 84 - Dedicated file name
      - 95 - Terminal verification results
      - 9A - Application date
      - 9C - Transaction type
      - 5F2A - Transaction currency code
      - 9F02 - Amount authorized
      - 9F10 - Issuer application data
      - 9F1A - Terminal country code
      - 9F26 - Application cryptogram
      - 9F27 - Cryptogram information
      - 9F34 - Cardholder verification method results
      - 9F36 - Application transaction counter
      - 9F37 - Unpredictable number
      - 9F6E - Form factor indicator / Third party data
      Recommended tags:
      - 9F33 - Terminal capabilities
      - 9F35 - Terminal type
      - 9F41 - Transaction sequence counter
      Provide if present:
      - 5F34 - Card sequence number
    - `encrypted_pin` (string, conditional)
      Encrypted personal identification number. Required when `cardholder_verification_method` is `online_pin`.
    - `expiry_month` (string, conditional)
      Two digit number representing the card's expiration month. Required when `pan_entry_mode` is `manual_entry`.
    - `expiry_year` (string, conditional)
      Four digit number representing the card's expiration year. Required when `pan_entry_mode` is `manual_entry`.
    - `fallback` (boolean, conditional)
      The default is `false`. Set to `true` when:
      - Chip card at a chip-capable terminal was unable to process transactions using data on the chip or magnetic strip and use entry mode `manual`.
      - Chip card at a chip-capable terminal was unable to process transactions using data on the chip and use entry mode `contact_magnetic_stripe_card`.
    - `fallback_reason` (string, conditional)
      Fallback reason applicable when `fallback` is `true`.
      Set to `chip_read_failure` when all of the following conditions are met:
      - The transaction is initiated at a chip-capable terminal.
      - `pan_entry_mode` is `magstripe`.
      - The previous transaction initiated by the terminal was an unsuccessful chip read.
    - `key_serial_number` (string, conditional)
      Key serial number while using DUKPT for PIN encryption.
    - `number` (string, conditional)
      Card number. Required when `pan_entry_mode` is `manual_entry`.
    - `pan_entry_mode` (string, required)
      The way the terminal reads the card information.
      - `manual_entry`: Manually keyed into POS terminal.
      - `chip`: Read from direct contact with a chip card.
      - `magstripe`: Read from direct contact with magnetic stripe card.
      - `contactless_chip`: Read from a contactless interface using chip data.
      - `contactless_magstripe`: Read from a contactless interface using magnetic stripe data (MSD).
    - `terminal_info` (object, required)
      Data obtained by the POS terminal from the card and terminal properties.
      - `mobile_device` (boolean, conditional)
        Indicate whether the POS terminal is a mobile POS device. Default is `false`.
      - `pin_entry_capability` (string, required)
        Describe the capability of the terminal device to accept PIN.
        - `unsupported`: Terminal does not have PIN entry capability.
        - `supported`: Terminal has PIN entry capability. Except the case suitable for software_based.
        - `software_based`: For a mobile POS device, a user can input PIN through software-based keyboard.
        - `disabled`: Terminal has PIN entry capability but PIN pad is not currently operative.
      - `support_single_tap_with_pin` (boolean, conditional)
        Indicate whether the POS terminal could respond to a `request_pin` action. Default is `false`.
      - `supported_pan_entry_modes` (array[string], required)
        List of `pan_entry_modes` supported by the terminal.
      - `terminal_identifier` (string, required)
        An up to 8 digit alphanumeric unique identifier used to identify the terminal at the card acceptor location of the user's POS system.
      - `terminal_type` (string, conditional)
        Type of the POS terminal that processes this payment.
        - `attended_pos`: dedicated pos devices that attended by a merchant staff.
        - `unattended_pos`: dedicated pos devices that not attended.
        - `android_softpos`: android mobile devices that can work as pos device with software.
        - `ios_softpos`: iOS mobile devices that can work as pos device with software.
      - `use_embedded_reader` (boolean, conditional)
        Indicate whether the reader is embedded in a mobile POS device. Default is `true`.
    - `track1` (string, conditional)
      Track 1 read from magnetic stripe card
    - `track2` (string, conditional)
      Track 2 is read from a magnetic stripe card or is track 2 equivalent data get from the chip card.
      Track 2 is required when `pan_entry_mode` is not `manual_entry`.
  - `googlepay` (object, conditional)
    Googlepay information. This must be provided if `type` is set to `googlepay`
    - `billing` (object, conditional)
      Billing information
      - `address` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `email` (string, conditional)
        Email address of the customer
      - `first_name` (string, conditional)
        First name of the customer. Maximum length is 128.
      - `last_name` (string, conditional)
        Last name of the customer. Maximum length is 128.
      - `phone_number` (string, conditional)
        Phone number of the customer
    - `encrypted_payment_token` (string, conditional)
      A UTF-8 encoded, serialized JSON object with the keys specified.
    - `payment_data_type` (string, conditional)
      Type of the payment data details.  One of `tokenized_card` or `encrypted_payment_token`.
    - `tokenized_card` (object, conditional)
      Payment data with the tokenized card details
      - `authentication_method` (object, conditional)
        Authentication method
        - `emv` (object, conditional)
          EMV data
          - `emv_data` (string, required)
            Output from the Secure Element
          - `encrypted_pin_data` (string, conditional)
            The PIN encrypted using the bank's key
        - `three_ds` (object, conditional)
          3D-Secure authentication data
          - `eci_indicator` (string, conditional)
            Electronic Commerce Indicator, as defined by 3-D Secure
          - `online_payment_cryptogram` (string, required)
            Online payment cryptogram, as defined by 3-D Secure
        - `type` (string, required)
          The authentication method type. One of `emv` or `three_ds`.
      - `device_manufacturer_identifier` (string, conditional)
        Device manufacturer identifier
      - `expiry_month` (string, required)
        Two digit number representing the card's expiration month
      - `expiry_year` (string, required)
        Four digit number representing the card's expiration year
      - `name` (string, conditional)
        Cardholder name
      - `number` (string, required)
        Card number
  - `id` (string, conditional)
    The ID of the payment method. If this field is provided, you must also include either `payment_consent` or `triggered_by`. Requests that include `payment_method.id` without either of these fields are rejected with a `validation_error`.
  - `pay_now` (object, conditional)
    Pay now information. This must be provided if `type` is set to `pay_now`
    - `channel` (string, conditional)
      Payment channel. Use `pos` for POS transactions.
    - `shopper_name` (string, conditional)
      The name of the shopper.
  - `type` (string, conditional)
    Type of the PaymentMethod. One of `card`, `card_present`, `applepay`, `googlepay`, `wechatpay`, `pay_now`.
  - `wechatpay` (object, conditional)
    Wechatpay information. This must be provided if `type` is set to `wechatpay`
    - `channel` (string, conditional)
      Payment channel. Use `pos` for POS transactions.
    - `flow` (string, required)
      The specific WeChat Pay flow to use.  One of `qrcode`, `official_account`, `mini_program`, `mobile_app`, `mobile_web`
    - `open_id` (string, conditional)
      Required when `flow` is `mini_program`
- `payment_method_options` (object, conditional)
  Options for PaymentMethod
  - `card` (object, conditional)
    The PaymentMethod options for card
    - `authorization_type` (string, conditional)
      The authorization type of the card payment. One of `final_auth`, `pre_auth`. Only applicable when `payment_method` is provided. Default to `final_auth`. Currently only available when `brand` is `visa` or `mastercard`.
    - `auto_capture` (boolean, conditional)
      Specifies whether the funds should be requested automatically after the payment is authorized. Only applicable when `payment_method` is provided. Default to `true`.
    - `card_input_via` (string, conditional)
      The channel through which the cardholder inputs the card. One of `ecommerce`, `moto`
    - `merchant_trigger_reason` (string, conditional)
      Types of transactions where the merchant is allowed to initiate payments because it is a customary, legitimate need of the merchant's industry. Only applicable for merchant-initiated transactions. One of `incremental_authorization`, `reauthorization`, `resubmission`, `delayed_charges`, `partial_shipment`, `no_show`.
      Possible enum values:
        - `delayed_charges`
        - `incremental_authorization`
        - `no_show`
        - `partial_shipment`
        - `reauthorization`
        - `resubmission`
    - `three_ds_action` (string, conditional)
      Set it to `FORCE_3DS` if you want to enforce 3DS with our 3DS provider. Set it to EXTERNAL_3DS if you want to use your own 3DS provider, in this case `payment_method_options.card.external_three_ds` should be provided in the confirm request. Set it to SKIP_3DS if you want to skip 3DS regardless of the risk score. `null` by default
  - `wechatpay` (object, conditional)
    The PaymentMethod options for wechatpay
    - `enable_funds_split` (boolean, conditional)
      Indicates whether funds split will be enabled for this WeChatPay order
- `request_id` (string, required)
  Unique request identifier specified by the merchant. Maximum length is 64.
- `return_url` (string, conditional)
  The web page URL or application scheme URI to redirect the customer after payment authentication.
- `risk_control_options` (object, conditional)
  Risk Control Options
  - `skip_risk_processing` (boolean, conditional)
    Set it to `true` if you want to skip fraud processing. Please contact your account manager to enable the feature to take effect. Defaults to `false`.
  - `tra_applicable` (boolean, conditional)
    Set it to 'true' if you want to use TRA exemption when create payment intent, only applicable when you skip risk processing

**Example:**

```json
{
  "amount": 100,
  "currency": "USD",
  "merchant_order_id": "D202503210001",
  "request_id": "b01737e5-c5ab-4765-8834-cbd92dfeaf81",
  "descriptor": "Airwallex - Test Descriptor",
  "return_url": "https://www.airwallex.com",
  "metadata": {
    "foo": "bar"
  }
}
```

## cURL Example

```bash
curl -X POST "https://api.airwallex.com/api/v1/pa/payment_intents/create" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
  "amount": 100,
  "currency": "USD",
  "merchant_order_id": "D202503210001",
  "request_id": "b01737e5-c5ab-4765-8834-cbd92dfeaf81",
  "descriptor": "Airwallex - Test Descriptor",
  "return_url": "https://www.airwallex.com",
  "metadata": {
    "foo": "bar"
  }
}'
```

## Response

### 201 Created

**Example:**

```json
{
  "id": "int_hkpdskz7vg1xc7uscdj",
  "request_id": "b01737e5-c5ab-4765-8834-cbd92dfeaf81",
  "amount": 100,
  "currency": "USD",
  "status": "REQUIRES_PAYMENT_METHOD",
  "merchant_order_id": "D202503210001",
  "return_url": "https://www.airwallex.com",
  "descriptor": "Airwallex - Test Descriptor",
  "metadata": {
    "foo": "bar"
  },
  "client_secret": "eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MzgzMDY2MzAsImV4cCI6MTczODMxMDIzMCwidHlwZSI6ImNsaWVudC1zZWNyZXQiLCJwYWRjIjoiSEsiLCJhY2NvdW50X2lkIjoiN2EwYzQ3YzctNzM0Zi00NzdmLTk1OWItMzIxNTQyNzgxYTgyIiwiaW50ZW50X2lkIjoiaW50X2hrcGRza3o3dmcxeGM3dXNjZGoiLCJjdXN0b21lcl9pZCI6IjlmYWZjMmZiLTQyNjItNGZmOC1hMjA1LWQ2MGZiNDc4MWNiMCJ9.Rg1M2Vl0GDARU0rnTghenUVe9v1ix1IrSQOxQO7Zqyw",
  "created_at": "2025-01-31T06:57:10.000Z",
  "updated_at": "2025-01-31T06:57:10.000Z"
}
```

- `additional_info` (object, conditional)
  Additional info for the transaction.
  - `account_funding_data` (object, conditional)
    Additional info for account funding transactions to ensure compliance with card networks.
    - `recipient` (object, conditional)
      Details of the recipient for this account funding transaction.
      - `account_number` (string, conditional)
        Account number of the recipient receiving funds. If you are funding a card, provide the first six digits and last four digits of the card number (e.g., "411111xxxxxxxx1111").
      - `address` (object, conditional)
        Address of the recipient.
        - `city` (string, conditional)
          City of the address.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `line1` (string, conditional)
          Address line1.
        - `line2` (string, conditional)
          Address line2.
        - `postcode` (string, conditional)
          Postcode of the address.
        - `state` (string, conditional)
          State or province of the address.
      - `first_name` (string, conditional)
        First name of the recipient.
      - `last_name` (string, conditional)
        Last name of the recipient.
      - `middle_name` (string, conditional)
        Middle name of the recipient.
    - `sender` (object, conditional)
      Details of the sender for this account funding transaction.
      - `address` (object, conditional)
        Address of the recipient.
        - `city` (string, conditional)
          City of the address.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `line1` (string, conditional)
          Address line1.
        - `line2` (string, conditional)
          Address line2.
        - `postcode` (string, conditional)
          Postcode of the address.
        - `state` (string, conditional)
          State or province of the address.
      - `date_of_birth` (string, conditional)
        The sender's date of birth. Format: YYYY-MM-DD (e.g., "1989-07-15").
      - `first_name` (string, conditional)
        First name of the sender.
      - `last_name` (string, conditional)
        Last name of the sender.
      - `middle_name` (string, conditional)
        Middle name of the sender.
    - `transfer_between_own_accounts` (boolean, conditional)
      Indicates whether the transfer is between the customer's own accounts. If true, Airwallex will compare the cardholder's name and the recipient's name, and will trigger 3DS if the names do not match.
    - `type` (string, required)
      Account funding transaction type. Possible values:
      - **ACCOUNT_TO_ACCOUNT_TRANSFER**: An account-to-account transfer, either within the same financial institution or to a different one.
      - **STORED_VALUE_DIGITAL_WALLET_TRANSFER**: Adding funds to or cashing out a Stored Value Digital Wallet (SVDW) account.
      - **STAGED_DIGITAL_WALLET_TRANSFER**: Funding a Staged Digital Wallet before the cardholder makes a purchase.
      - **PREPAID_CARD_TOP_UP**: Prepaid card or gift card top-up (adding value to an eligible reloadable prepaid card or funding the cardholder's own prepaid account).
      - **LIQUID_ASSET_PURCHASE**: Funds transfer for the acquisition of liquid assets (for example, stocks, shares, foreign currency and cryptocurrency).
  - `customer_activity_data` (object, conditional)
    (Optional) Additional customer information to be sent to the external risk control system. This information may increase the success rate of your transactions if provided.
    - `account_type` (string, conditional)
      Customer account type. One of `GUEST`, `PRIVATE`, `BUSINESS`, `VIP`, `MERCHANT_OPERATED`, `TRIAL`, `MERCHANT_EMPLOYEE`, `PREMIUM_PAID`, `SMALL_BUSINESS`, `AGENT`
    - `first_successful_order_date` (string, conditional)
      Date at which the customer completes the first order on the merchant's site
    - `last_login_ip_address` (string, conditional)
      The public IP address used by the customer in the last login.
    - `last_modified_at` (string, conditional)
      The last time at which the customer modified their account in the merchant's system. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `linked_social_networks` (array[object], conditional)
      Social network data related to the customer
      - `email` (string, conditional)
        The customer's email address on the social network.
      - `name` (string, conditional)
        The social network used by the customer. Can be one of: `FACEBOOK`, `GOOGLE`, `TWITTER`, `REDDIT`, `PINTEREST`, `WECHAT`, `QQ`, `TWITCH`, `APPLE`, `DRIBBBLE`, `GITHUB`, `LINKEDIN`, `MAKER_STUDIOS`, `STACK_EXCHANGE`, `VIMEO`, `STEAM`, `KAKAO`, `NAVER`, `GRAB`, `JKOPAY`, `LINE`, `OTHER`
      - `profile_id` (string, conditional)
        The customer's profile unique identifier on the social network.
    - `purchase_summaries` (array[object], conditional)
      The purchase summaries of this customer with different payment methods in the merchant's system for risk analysis
      - `currency` (string, conditional)
        The currency of successful purchase volume in 3-letter ISO 4217 currency code. Please refer to [supported currencies](/docs/payments/supported-currencies).
      - `first_successful_purchase_date` (string, conditional)
        The date on which the customer completed their first purchase in the merchant's system with the specified payment method type
      - `last_successful_purchase_date` (string, conditional)
        The date on which the customer completed their last purchase in the merchant's system with the specified payment method type
      - `payment_method_type` (string, required)
        Payment method type, one of `affirm`, `afterpay`, `atome`, `klarna`, and `other`
      - `successful_purchase_amount` (number, conditional)
        Total volume of successful purchases. Please refer to [supported currencies](/docs/payments/supported-currencies) for supported minor units.
      - `successful_purchase_count` (integer (int32), conditional)
        Total number of successful purchases
    - `registered_via_social_media` (boolean, conditional)
      Whether the customer registers through social media. Default to `false`
    - `registration_date` (string, conditional)
      Date at which the customer registers on the merchant's site
    - `registration_ip_address` (string, conditional)
      The public IP address used by the customer when registering on the merchant's site.
  - `enhanced_scheme_data` (object, conditional)
    Level 2 & Level 3 data that will be sent to card schemes. By providing Level 2 or Level 3 data with your transactions, you may be able to qualify for reduced interchange rates.
    - `customer` (object, conditional)
      Details of the customer making a payment for this Payment Intent.
      - `first_name` (string, conditional)
        First name of the customer
      - `last_name` (string, conditional)
        Last name of the customer
      - `reference` (string, conditional)
        A reference number or code supplied by the cardholder to the merchant, which could be used for invoice management at the cardholder's side. Maximum of 17 characters.
    - `customer_tax_identifier` (string, conditional)
      Tax identifier of the customer. Maximum of 13 characters.
    - `duty_amount` (number, conditional)
      The total charges for any import or export duty included in the transaction. This amount must be expressed in the original currency of the transaction.
    - `invoice_reference` (string, conditional)
      Invoice reference number. Maximum of 17 characters.
    - `local_tax_amount` (number, conditional)
      The amount of state or provincial tax on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `merchant_tax_identifier` (string, conditional)
      Tax identifier of the merchant. This can be a VAT / GST / other tax related identifier. Maximum of 20 characters.
    - `national_tax_amount` (number, conditional)
      The amount of national tax on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `products` (array[object], conditional)
      Product list
      - `code` (string, conditional)
        Merchant's product identifier code. Maximum of 12 characters.
      - `commodity_code` (string, conditional)
        The [UNSPSC Commodity Code](https://www.ungm.org/Public/UNSPSC) for the product. Maximum of 12 characters.
      - `description` (string, conditional)
        Product description. Maximum of 26 characters.
      - `discount_amount` (number, conditional)
        The discount amount for the product. This amount must be expressed in the original currency of the transaction.
      - `quantity` (integer (int32), conditional)
        Product quantity
      - `tax_percent` (number, conditional)
        The tax rate percentage for the product. Should be less than 100, up to 2 decimal places.
      - `total_amount` (number, conditional)
        The total amount for the product. This amount must be expressed in the original currency of the transaction.
      - `total_tax_amount` (number, conditional)
        The total amount of tax for the product. This amount must be expressed in the original currency of the transaction.
      - `unit` (string, conditional)
        The unit of measure code used for the product. Maximum of 12 characters.
      - `unit_price` (number, conditional)
        Product unit price. This amount must be expressed in the original currency of the transaction.
    - `shipping` (object, conditional)
      Shipping information
      - `address` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `date` (string, conditional)
        The date the goods were shipped to the destination, in YYYY-MM-DD format.
      - `fee_amount` (number, conditional)
        Shipping fee amount. This amount must be expressed in the same currency as the transaction amount.
      - `from_postcode` (string, conditional)
        The postcode of the location the goods are being shipped from. Maximum of 10 characters.
    - `summary_commodity_code` (string, conditional)
      The first 2,4 or 6 digits of  [UNSPSC Commodity Code](https://www.ungm.org/Public/UNSPSC) that best categorizes the items being purchased. If the items belong to different categories, choose a category that best represents the items. Maximum of 15 characters
    - `total_tax_amount` (number, conditional)
      The total amount of sales tax or value added tax (VAT) on the transaction amount. This amount must be expressed in the original currency of the transaction.
    - `vat_invoice_reference` (string, conditional)
      Value added tax invoice reference number. Maximum of 15 characters.
  - `online_ticket_agency_data` (object, conditional)
    The additional information for online ticket agency data.
    - `events` (array[object], conditional)
      The details of the event.
      - `arena_location` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `arena_name` (string, conditional)
        The name of the venue.
      - `arena_seat_number` (string, conditional)
        The seat number of the venue.
      - `company` (string, conditional)
        The name of the company arranging the event.
      - `customer_name` (string, conditional)
        The name of the customer.
      - `customer_title` (string, conditional)
        The title used before the customer's  name. One of mr, ms, and mrs.
      - `ends_at` (string, conditional)
        The event's end date and time in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `name` (string, required)
        The name of the event.
      - `starts_at` (string, conditional)
        The event's start date and time in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `type` (string, conditional)
        The category or type of the event.
  - `online_travel_agency_data` (object, conditional)
    The additional information for online travel agency data.
    - `accommodations` (array[object], conditional)
      The details of accommodation.
      - `address` (object, required)
        The address of this accommodation.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, required)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `check_in_date` (string, required)
        Check-in date, in YYYY-MM-DD format.
      - `check_out_date` (string, required)
        Check-out date, in YYYY-MM-DD format.
      - `early_checkin` (boolean, conditional)
        Indicates if early check-in was paid for.
      - `guest_email` (string, conditional)
        Guest email address for communication and confirmations.
      - `guest_name` (string, conditional)
        Full legal name of the guest
      - `guest_nationality` (string, required)
        Nationality of the guest (ISO 3166-1 alpha-2 code).
      - `guest_phone` (string, required)
        Guest phone number.
      - `late_checkout` (boolean, conditional)
        Indicates if late checkout was paid for.
      - `name` (string, required)
        Name of the accommodation.
      - `pre_tax_amount` (number, conditional)
        Accommodation amount excluding tax.
      - `ratings` (array[object], conditional)
        Hotel rating(s) (from various sources).
        - `score` (string, conditional)
          The score of this rating.
        - `source` (string, conditional)
          The source of this rating.
        - `type` (string, conditional)
          The type of this rating. For example `Internal`, `External`
      - `room_type` (string, required)
        Type of room. For example `Presidential Suite`, `Single Room`, `Double Room`, `Suite`
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the accommodation price.
      - `type` (string, required)
        Type of accommodation. For example `Hotel`, `Hostel`, `Resort`, `Apartment`
    - `buses` (array[object], conditional)
      The details of the buses travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `car_rentals` (array[object], conditional)
      The details of the car rental.
      - `agreement_number` (string, required)
        Rental agreement number.
      - `driver_email` (string, conditional)
        Driver email address for communication and confirmations.
      - `driver_name` (string, required)
        Full legal name of the driver.
      - `driver_nationality` (string, required)
        Nationality of the driver (ISO 3166-1 alpha-2 code)
      - `driver_phone` (string, conditional)
        Driver phone number.
      - `drop_off_address` (object, conditional)
        The return address of this rental.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `drop_off_at` (string, required)
        Rental drop-off time, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `insurances` (array[object], conditional)
        The list of insurances.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `pick_up_address` (object, conditional)
        The return address of this rental.
        - `city` (string, required)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, required)
          Street of the address. Maximum of 1000 characters.
      - `pick_up_at` (string, required)
        Rental pick-up time, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `pre_tax_amount` (number, conditional)
        Rental amount excluding tax.
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the rental price.
      - `vehicle` (object, conditional)
        The details of the vehicle.
        - `condition` (string, conditional)
          Condition of the vehicle. One of `GOOD`, `FAIR`, `POOR`.
        - `license_plate` (string, required)
          License plate number.
        - `manufacture_year` (string, conditional)
          Year of manufacture.
        - `manufacturer` (string, required)
          Manufacturer of the vehicle.
        - `model` (string, required)
          Model of the vehicle.
        - `vin` (string, conditional)
          Vehicle Identification Number.
    - `customer` (object, conditional)
      Details of the customer making a payment for this Payment Intent.
      - `loyalty_program_name` (string, conditional)
        The name of the loyalty program.
      - `loyalty_program_points` (integer (int32), conditional)
        Points or miles in the loyalty program.
      - `loyalty_program_tier` (string, conditional)
        Tier of the loyalty program. For example `Silver`, `Gold`, `Platinum`.
      - `type` (string, conditional)
        Customer account type. One of `GUEST`, `MEMBER`.
    - `ferries` (array[object], conditional)
      The details of the ferries travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `flights` (array[object], conditional)
      The details of the flights.
      - `arrival_airport_code` (string, required)
        IATA code of the arrival airport.
      - `arrival_city` (string, required)
        City where the arrival airport is located.
      - `arrival_country` (string, required)
        Country where the arrival airport is located (ISO 3166-1 alpha-2 code).
      - `class_of_service` (string, conditional)
        Class of service. For example `Economy`, `Premium Economy`, `Business`, `First`.
      - `departure_airport_code` (string, required)
        IATA code of the departure airport.
      - `departure_city` (string, required)
        City where the departure airport is located.
      - `departure_country` (string, required)
        Country where the departure airport is located (ISO 3166-1 alpha-2 code).
      - `flight_number` (string, required)
        Airline's unique flight number.
      - `insurances` (array[object], conditional)
        The list of insurance.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_email` (string, conditional)
        Passenger email address for communication and confirmations.
      - `passenger_name` (string, required)
        Full legal name of the passenger.
      - `passenger_nationality` (string, required)
        Nationality of the passenger (ISO 3166-1 alpha-2 code).
      - `passenger_phone` (string, conditional)
        Passenger phone number.
      - `pre_tax_amount` (number, conditional)
        Ticket amount excluding tax.
      - `scheduled_arrival_at` (string, required)
        Scheduled arrival date and time in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, required)
        Scheduled departure date and time in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `seat_number` (string, conditional)
        Assigned seat number on the flight.
      - `tax_amount` (number, conditional)
        Taxes and fees applied to the ticket price.
      - `type` (string, required)
        Whether the flight is domestic or international. One of `DOMESTIC`, `INTERNATIONAL`.
    - `order` (object, conditional)
      Purchase order related to this PaymentIntent.
      - `cancellable` (boolean, required)
        Indicates if the booking is cancellable.
      - `created_at` (string, required)
        The time of the order was made, in ISO8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `prepayment_model` (string, conditional)
        The model of payment. One of `FULL`, `PARTIAL`
    - `trains` (array[object], conditional)
      The details of the trains travel.
      - `arrival_city` (string, required)
        The city of the arrival. Maximum length is 100.
      - `carrier` (string, conditional)
        The name of the transportation company.
      - `class_of_service` (string, required)
        The itinerary service class.
      - `departure_city` (string, required)
        The city of the departure. Maximum length is 100.
      - `insurances` (array[object], conditional)
        The insurance list for the itinerary.
        - `company` (string, required)
          The insurance company name. Maximum length is 100.
        - `price` (number, required)
          The insurance price in payment intent currency.
        - `type` (string, required)
          The insurance type. One of `cancellation`, `delay`, `casualty`,  `baggage`, and `other`.
      - `passenger_identifier` (string, conditional)
        The identifier of the traveler in the merchant's system. Maximum length is 64.
      - `passenger_name` (string, required)
        The name of the traveler. Maximum length is 100.
      - `passenger_title` (string, conditional)
        The title used before the traveler's name. One of `mr`, `ms`, and `mrs`.
      - `price` (number, conditional)
        The itinerary unit price in payment intent currency.
      - `scheduled_arrival_at` (string, conditional)
        The estimated arrival datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `scheduled_departure_at` (string, conditional)
        The departure datetime in ISO 8601 format. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
- `amount` (number, conditional)
  Payment amount. This is the order amount you would like to charge your customer
- `cancellation_reason` (string, conditional)
  Reason for cancelling the PaymentIntent. Only present when the PaymentIntent was successfully cancelled, i.e. status is `CANCELLED`
- `cancelled_at` (string (date-time), conditional)
  Last time at which this PaymentIntent was cancelled. Only present when the PaymentIntent was successfully cancelled, i.e. status is `CANCELLED`
- `captured_amount` (number, conditional)
  Amount that captured from this PaymentIntent
- `client_secret` (string, conditional)
  PaymentIntent's client secret for browser or app. Returned by PaymentIntent create API or PaymentIntent retrieve API
  The provided client_secret is valid for 60 minutes
- `connected_account_id` (string, conditional)
  Account identifier of the connected account.
- `conversion_quote_id` (string, conditional)
  The unique identifier of the conversion quote applied to the intent.
- `created_at` (string (date-time), conditional)
  Time at which this PaymentIntent was created
- `currency` (string, conditional)
  Amount currency
- `customer` (object, conditional)
  Details of the customer making a payment for this Payment Intent. When `customer_id` is provided in the request you must leave this object empty unless you want to provide `additional_info` related to the customer for this payment.
  - `address` (object, conditional)
    The billing address as it appears on the credit card issuer's records
    - `city` (string, conditional)
      City of the address. Maximum of 100 characters.
    - `country_code` (string, required)
      The two-letter country code in ISO 3166-1 alpha-2 format.
    - `postcode` (string, conditional)
      Postcode of the address. Maximum of 10 characters.
    - `state` (string, conditional)
      State or province of the address. Maximum of 100 characters.
    - `street` (string, conditional)
      Street of the address. Maximum of 1000 characters.
  - `business_name` (string, conditional)
    Business name of the customer
  - `email` (string, conditional)
    Email address of the customer
  - `first_name` (string, conditional)
    First name of the customer
  - `last_name` (string, conditional)
    Last name of the customer
  - `merchant_customer_id` (string, conditional)
    Unique identifier of the customer in merchant's system. Maximum length is 64.
  - `phone_number` (string, conditional)
    Phone number of the customer
- `customer_id` (string, conditional)
  The unique identifier of the Customer who is paying for this PaymentIntent
- `descriptor` (string, conditional)
  Descriptor that will be displayed to the customer
- `funds_split_data` (array[object], conditional)
  The data that will create funds splits automatically after the PaymentIntent succeeds.
  - `amount` (number, required)
    Amount of this split. Please refer to [supported currencies](/docs/payments/supported-currencies) for supported minor units.
  - `destination` (string, conditional)
    The destination that the money is splitting to. The value could be either:
    - a connected account ID. Used to split funds when collecting payments directly
    - a platform account ID. Used to split funds when collecting payments on behalf of connected accounts
    If a value is not specified, the destination will be as specified in the PaymentIntent.
- `id` (string, conditional)
  Unique identifier for the PaymentIntent
- `invoice_id` (string, conditional)
  Invoice unique identifier
- `latest_payment_attempt` (object, conditional)
  Latest PaymentAttempt that was created under the PaymentIntent
  - `acquirer_reference_number` (string, conditional)
    Acquirer reference number of the card payment. Will be populated after the payment attempt has transitioned to the `CAPTURE_REQUESTED` or `SETTLED` status.
  - `amount` (number, conditional)
    Amount of the PaymentAttempt
  - `authentication_data` (object, conditional)
    Authentication data which contains AVS result, CVC result, three domain secure result and fraud evaluation result
    - `authentication_type` (string, conditional)
      The method used to authenticate this transaction. Possible values: passkey, 3ds, none.
    - `avs_result` (string, conditional)
      AVS result.
    - `cvc_result` (string, conditional)
      CVC result.
    - `ds_data` (object, conditional)
      3DS data.
      - `cavv` (string, conditional)
        Cardholder Authentication Verification Value. Base64-encoded 28-character string.
      - `challenge_cancellation_reason` (string, conditional)
        Challenge cancellation reason
      - `eci` (string,null, conditional)
        Electronic Commerce Indicator. As defined by 3D-Secure.
        - `00`: **Mastercard variant**: Authentication failed.
        - `01`: **Mastercard variant**: Authentication attempted.
        - `02`: **Mastercard variant**: Authentication succeeded.
        - `04`: **Mastercard variant**: Frictionless authentication via data only mode.
        - `05`: Authentication succeeded.
        - `06`: Authentication attempted. **Mastercard variant**: Exempted from Strong Customer Authentication.
        - `07`: Authentication failed or exempted. **Mastercard variant**: Recurring transaction successfully authenticated.
        - `null`: Not applicable or 3DS authentication was not performed.
      - `enrolled` (string,null, conditional)
        Indicates whether the cardholder is enrolled in 3D-Secure.
        - `Y`: Cardholder is enrolled.
        - `N`: Cardholder is not enrolled.
        - `U`: Unable to determine enrollment status.
        - `null`: Not applicable or enrollment check was not performed.
      - `frictionless` (string,null, conditional)
        Indicates whether 3DS passed in frictionless flow.
        - `Y`: 3DS passed in frictionless flow.
        - `N`: 3DS entered challenge flow.
        - `null`: Not applicable or 3DS authentication was not performed.
      - `liability_shift_indicator` (string,null, conditional)
        Indicates whether liability has shifted to the card issuer.
        - `Y`: Liability has shifted to the issuer.
        - `N`: Liability has not shifted.
        - `null`: Not applicable or unable to determine.
      - `pa_res_status` (string,null, conditional)
        Payment Authentication Response (PARes) status.
        - `Y`: Authentication successful.
        - `N`: Authentication failed.
        - `U`: Authentication could not be performed.
        - `A`: Authentication attempted but not completed.
        - `C`: Challenge required.
        - `R`: Authentication rejected.
        - `null`: Not applicable or authentication was not performed.
      - `version` (string, conditional)
        3ds version
      - `xid` (string, conditional)
        XID
    - `fraud_data` (object, conditional)
      Fraud data.
      - `action` (string, conditional)
        Fraud action
      - `post_authorization_check` (object, conditional)
        Post-authorization fraud check data
        - `action` (string, conditional)
          Fraud action
        - `risk_factors` (array[object], conditional)
          Risk factors
          - `description` (string, conditional)
            Risk factor description
        - `score` (string, conditional)
          Fraud score
      - `risk_factors` (array[object], conditional)
        Risk factors
        - `description` (string, conditional)
          Risk factor description
      - `score` (string, conditional)
        Fraud score
    - `passkey_setup_status` (string, conditional)
      Status of payment passkey setup for the card/device used in the transaction, during cardholder authentication. Possible values: `SETUP_COMPLETED`, `ALREADY_SETUP`, `FAILED_TO_SETUP`, `NOT_TRIGGERED`
      - `SETUP_COMPLETED`: Payment passkey was successfully set up.
      - `ALREADY_SETUP`: Payment passkey was already set up for this card/device combination in a previous transaction.
      - `FAILED_TO_SETUP`: Attempted to set up a payment passkey, but the setup failed.
      - `NOT_TRIGGERED`: Payment passkey setup was not supported or not applicable for this transaction (transaction was not processed via the passkey flow).
    - `sca_exemption` (object, conditional)
      - `applied_exemption` (string, conditional)
        The SCA exemption type actually applied by Airwallex in the authorization request sent downstream. If this field is `null`, SCA exemption was not applied. Possible values: `LOW_RISK_TRANSACTION`, `LOW_VALUE`, `SECURE_CORPORATE_PAYMENT`.
      - `requested_exemption` (string, conditional)
        The SCA exemption type requested by the merchant for Airwallex to use. Possible values: `LOW_RISK_TRANSACTION`, `LOW_VALUE`, `SECURE_CORPORATE_PAYMENT`, `ANONYMOUS`.
  - `authorization_code` (string, conditional)
    Authorization response code from issuer when the payment is authorized successfully
  - `captured_amount` (number, conditional)
    Captured amount
  - `created_at` (string (date-time), conditional)
    Time at which this PaymentAttempt was created
  - `currency` (string, conditional)
    Currency of the PaymentAttempt
  - `dcc_data` (object, conditional)
    Present when DCC amount is available and DCC currency is different from PaymentIntent currency. DCC could be conducted either by third party or Airwallex when using Airwallex DCC product
    - `amount` (number, conditional)
      DCC amount
    - `currency` (string, conditional)
      DCC currency
  - `failure_code` (string, conditional)
    PaymentAttempt failure code. One of `authentication_failed`, `capture_failed`, `authorization_failed`, `provider_unavailable`, `system_unavailable`, `fraud_rejected`
  - `failure_details` (object, conditional)
    Failure details. Only applicable when status is FAILED.
    - `code` (string, conditional)
      The failure code returned by Airwallex
    - `details` (object, conditional)
      Additional details that may include `original_response_code`, `original_response_message` from provider, and other contextual information such as card details, risk factors, etc. depending on the specific error code.
    - `message` (string, conditional)
      The failure description.
    - `trace_id` (string, conditional)
      The unique identifier for tracing the failure.
  - `id` (string, conditional)
    Unique identifier for the PaymentAttempt
  - `merchant_advice_code` (string, conditional)
    An advice code from issuer to provide more details about the payment. It can be useful when implementing a retry logic for declined payments.
  - `merchant_order_id` (string, conditional)
    Merchant order unique identifier of the PaymentAttempt
  - `payment_consent_id` (string, conditional)
    PaymentConsent unique identifier of the PaymentAttempt
  - `payment_intent_id` (string, conditional)
    PaymentIntent unique identifier of the PaymentAttempt
  - `payment_method` (object, conditional)
    PaymentMethod used by the PaymentAttempt
    - `ach_direct_debit` (object, conditional)
      ACH Direct Debit information.
      - `aba_routing_number` (string, conditional)
        9-digit number to identify a bank in the US.
      - `account_number` (string, conditional)
        4-17 digits number to identify a bank account in the US.
      - `business_account` (boolean, conditional)
        Indicate whether the account is a business account.
      - `micro_debit` (object, conditional)
        The result of micro debit.
        - `status` (string, conditional)
          The status of micro_debit.
      - `micro_deposit` (object, conditional)
        The result of micro deposit.
        - `status` (string, conditional)
          The status of micro_deposit.
      - `owner_email` (string, conditional)
        Email of the account holder.
      - `owner_name` (string, conditional)
        Name of the account holder.
    - `airwallex_pay` (object, conditional)
      AirwallexPay information.
      - `payer_name` (string, conditional)
        Name of the payer. Only returned for successful payments.
    - `alfamart` (object, conditional)
      Alfamart information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `alipaycn` (object, conditional)
      Alipay CN information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`, `mini_program`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `alipayhk` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `applepay` (object, conditional)
      Apple pay information.
      - `billing` (object, conditional)
        Billing information
        - `address` (object, conditional)
          The billing address as it appears on the credit card issuer's records
          - `city` (string, conditional)
            City of the address. Maximum of 100 characters.
          - `country_code` (string, required)
            The two-letter country code in ISO 3166-1 alpha-2 format.
          - `postcode` (string, conditional)
            Postcode of the address. Maximum of 10 characters.
          - `state` (string, conditional)
            State or province of the address. Maximum of 100 characters.
          - `street` (string, conditional)
            Street of the address. Maximum of 1000 characters.
        - `date_of_birth` (string, conditional)
          Date of birth of the customer in the format: YYYY-MM-DD
        - `email` (string, conditional)
          Email address of the customer
        - `first_name` (string, conditional)
          First name of the customer
        - `last_name` (string, conditional)
          Last name of the customer
        - `phone_number` (string, conditional)
          Phone number of the customer
      - `lifecycle_id` (string, conditional)
        The Lifecycle Identifier is a unique code that links all related transaction events - Capture, refund & disputes, making it easy to track a transaction throughout its lifecycle. This identifier is currently supported only when the card brand is MasterCard.
      - `payment_data_type` (string, conditional)
        Type of the payment data details. One of `tokenized_card` or `encrypted_payment_token`.
      - `tokenized_card` (object, conditional)
        Payment data with the tokenized card details.
        - `authentication_method` (object, conditional)
          Authentication method
          - `emv` (object, conditional)
            EMV data
            - `emv_data` (string, required)
              Output from the Secure Element
            - `encrypted_pin_data` (string, conditional)
              The PIN encrypted using the bank's key
          - `three_ds` (object, conditional)
            3D-Secure authentication data
            - `eci_indicator` (string, conditional)
              Electronic Commerce Indicator, as defined by 3-D Secure
            - `online_payment_cryptogram` (string, required)
              Online payment cryptogram, as defined by 3-D Secure
          - `type` (string, required)
            The authentication method type. One of `CRYPTOGRAM_3DS`, `PAN_ONLY`.
        - `bin` (string, conditional)
          Bank identify number of this card
        - `brand` (string, conditional)
          Brand of the card. One of `visa`, `mastercard`, `maestro`, `chinaunionpay`.
        - `device_manufacturer_identifier` (string, conditional)
          Device manufacturer identifier
        - `expiry_month` (string, required)
          Two digit number representing the card's expiration month
        - `expiry_year` (string, required)
          Four digit number representing the card's expiration year
        - `fingerprint` (string, conditional)
          Fingerprint of the card
        - `is_commercial` (boolean, conditional)
          A boolean field referring whether the card is commercial or not
        - `issuer_country_code` (string, conditional)
          Country code of the card issuer
        - `issuer_name` (string, conditional)
          Issuer name
        - `last4` (string, conditional)
          Last four digits of the card number
        - `name` (string, conditional)
          Cardholder name
        - `type` (string, conditional)
          The card's type of payment. One of `credit` or `debit`.
    - `atome` (object, conditional)
      Atome information.
      - `shopper_phone` (string, conditional)
        Customer's mobile number, formatted in [E.164](https://en.wikipedia.org/wiki/E.164) standard.
    - `bacs_direct_debit` (object, conditional)
      BACS Direct Debit information.
      - `account_number` (string, conditional)
        8 digits number to identify a bank account in the UK.
      - `address` (object, conditional)
        Account holder's address.
        - `country_code` (string, conditional)
          Country code of the address. Use the two-character ISO Standard Country Codes. One of `GB`, `US`. Default to `GB` if not provided
        - `line1` (string, required)
          House number and street name, e.g., `777 Casino Drive`
        - `line2` (string, conditional)
          Locality name, e.g., `Apartment 123`
        - `postcode` (string, required)
          Postcode of the address.
        - `state` (string, conditional)
          State or province of the address. Should be provided if country code is `US`. Use the two-character ISO3166-2:US state code.
        - `town` (string, required)
          Post town.
      - `bank_name` (string, conditional)
        Bank of the account. You can call [API to retrieve the available bank names](https://www.airwallex.com/docs/api/payments/config/banks).
      - `business_account` (boolean, conditional)
        Indicate whether the account is a business account.
      - `micro_deposit` (object, conditional)
        The result of micro deposit.
        - `status` (string, conditional)
          The status of micro_deposit.
      - `owner_email` (string, conditional)
        Email of the account holder.
      - `owner_name` (string, conditional)
        Name of the account holder.
      - `sort_code` (string, conditional)
        6-digit number to identify a bank in the UK.
    - `bancontact` (object, conditional)
      Bancontact information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `bank_transfer` (object, conditional)
      Bank Transfer information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `expires_at` (string, conditional)
        Expiry time of this attempt, in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format
      - `ga_mode` (string, conditional)
        The type of GA mode.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `becs_direct_debit` (object, conditional)
      BECS Direct Debit information.
      - `account_number` (string, conditional)
        4-9 digits number to identify a bank account in Australia.
      - `bsb_number` (string, conditional)
        6-digit Bank-State-Branch number.
      - `business_account` (boolean, conditional)
        Indicate whether the account is a business account.
      - `micro_debit` (object, conditional)
        The result of micro debit.
        - `status` (string, conditional)
          The status of micro_debit.
      - `micro_deposit` (object, conditional)
        The result of micro deposit.
        - `status` (string, conditional)
          The status of micro_deposit.
      - `owner_email` (string, conditional)
        Account holder's email.
      - `owner_name` (string, conditional)
        Account holder name.
    - `bitpay` (object, conditional)
      BitPay information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `blik` (object, conditional)
      BLIK information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `boost` (object, conditional)
      Boost information.
      - `shopper_email` (string, conditional)
        Email address of the shopper
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper
    - `card` (object, conditional)
      Card information
      - `additional_info` (object, conditional)
        Additional information of external network token requestor. Would return when number_type is `EXTERNAL_NETWORK_TOKEN`
        - `merchant_verification_value` (string, conditional)
          Merchant Verification Value (Provided by VISA during onboarding)
          or
          MasterCard Assigned ID (Provided by MasterCard during onboarding)
        - `token_requestor_id` (string, conditional)
          Token requestor unique identifier (Provided by card schemes during onboarding)
      - `billing` (object, conditional)
        Billing information
        - `address` (object, conditional)
          The billing address as it appears on the credit card issuer's records
          - `city` (string, conditional)
            City of the address. Maximum of 100 characters.
          - `country_code` (string, required)
            The two-letter country code in ISO 3166-1 alpha-2 format.
          - `postcode` (string, conditional)
            Postcode of the address. Maximum of 10 characters.
          - `state` (string, conditional)
            State or province of the address. Maximum of 100 characters.
          - `street` (string, conditional)
            Street of the address. Maximum of 1000 characters.
        - `date_of_birth` (string, conditional)
          Date of birth of the customer in the format: YYYY-MM-DD
        - `email` (string, conditional)
          Email address of the customer
        - `first_name` (string, conditional)
          First name of the customer
        - `last_name` (string, conditional)
          Last name of the customer
        - `phone_number` (string, conditional)
          Phone number of the customer
      - `bin` (string, conditional)
        Bank identify number of this card
      - `brand` (string, conditional)
        Brand of the card. One of `mastercard`, `visa`, `union pay`, `american express`, `jcb`, `discover`, `diners club international`.
      - `card_type` (string, conditional)
        Funding type of the card
      - `card_updater_info` (object, conditional)
        Specifies if card information got updated
        - `expiry_updated` (boolean, conditional)
          Expiry was updated (true or false)
        - `number_updated` (boolean, conditional)
          Account number was updated (true or false)
      - `expiry_month` (string, conditional)
        Two digit number representing the card's expiration month
      - `expiry_year` (string, conditional)
        Four digit number representing the card's expiration year
      - `fingerprint` (string, conditional)
        Fingerprint of the card
      - `is_commercial` (boolean, conditional)
        A boolean field referring whether the card is commercial or not
      - `issuer_country_code` (string, conditional)
        Country code of the card issuer
      - `issuer_name` (string, conditional)
        Issuer name
      - `korean_card` (object, conditional)
        Information for Korean Card
        - `business_number` (string, conditional)
          A 10-digit business number of the company.
        - `date_of_birth` (string, conditional)
          A 6-digit date of birth in the format of YYMMDD.
        - `password_first2` (string, conditional)
          Card password first 2 digits.
      - `last4` (string, conditional)
        Last four digits of the card number
      - `lifecycle_id` (string, conditional)
        The Lifecycle Identifier is a unique code that links all related transaction events - Capture, refund & disputes, making it easy to track a transaction throughout its lifecycle. This identifier is currently supported only when the card brand is MasterCard.
      - `name` (string, conditional)
        Card holder name
      - `number_type` (string, conditional)
        Type of the number. One of `PAN`, `EXTERNAL_NETWORK_TOKEN`, `AIRWALLEX_NETWORK_TOKEN`.
    - `card_present` (object, conditional)
      Card-present information
      - `aid` (string, conditional)
        Application Identifier (AID) of the card.
      - `bin` (string, conditional)
        Bank identify number of this card
      - `brand` (string, conditional)
        Brand of the card
      - `card_sequence_number` (string, conditional)
        A unique identifier to distinguish among separate cards having the save PAN.
      - `card_type` (string, conditional)
        Funding type of the card
      - `cardholder_verification_method` (string, conditional)
        Cardholder verification method.
      - `contactless_card_form_factor` (string, conditional)
        Contactless Card Form Factor.
      - `emv_tags` (string, conditional)
        Tag-length-value (TLV)-encoded data returned by issuers or card schemes.
      - `expiry_month` (string, conditional)
        Two digit number representing the card's expiration month
      - `expiry_year` (string, conditional)
        Four digit number representing the card's expiration year
      - `fallback` (boolean, conditional)
        Whether fallback happens when reading the card.
      - `fallback_reason` (string, conditional)
        Fallback reason.
      - `fingerprint` (string, conditional)
        Fingerprint of the card
      - `is_commercial` (boolean, conditional)
        A boolean field referring whether the card is commercial or not
      - `issuer_country_code` (string, conditional)
        Country code of the card issuer
      - `issuer_name` (string, conditional)
        Issuer name
      - `last4` (string, conditional)
        Last four digits of the card number
      - `name` (string, conditional)
        Card holder name
      - `pan_entry_mode` (string, conditional)
        The way the terminal reads the card information.
      - `receipt` (object, conditional)
        Data used for receipt printing of the transaction.
        - `retrieval_reference_number` (string, conditional)
          Retrieval reference number of the transaction.
        - `system_trace_audit_number` (string, conditional)
          System trace audit number of the transaction.
        - `terminal_verification_results` (string, conditional)
          Terminal verification result (EMV tag 95) of the transaction.
      - `terminal_info` (object, conditional)
        Data obtained by the POS terminal from the card and terminal properties.
        - `mobile_device` (boolean, conditional)
          Indicate whether the POS terminal is a mobile POS device. Default is `false`.
        - `pin_entry_capability` (string, required)
          Describe the capability of the terminal device to accept PIN.
          - `unsupported`: Terminal does not have PIN entry capability.
          - `supported`: Terminal has PIN entry capability. Except the case suitable for software_based.
          - `software_based`: For a mobile POS device, a user can input PIN through software-based keyboard.
          - `disabled`: Terminal has PIN entry capability but PIN pad is not currently operative.
        - `support_single_tap_with_pin` (boolean, conditional)
          Indicate whether the POS terminal could respond to a `request_pin` action. Default is `false`.
        - `supported_pan_entry_modes` (array[string], required)
          List of `pan_entry_modes` supported by the terminal.
        - `terminal_identifier` (string, required)
          An up to 8 digit alphanumeric unique identifier used to identify the terminal at the card acceptor location of the user's POS system.
        - `terminal_type` (string, conditional)
          Type of the POS terminal that processes this payment.
          - `attended_pos`: dedicated pos devices that attended by a merchant staff.
          - `unattended_pos`: dedicated pos devices that not attended.
          - `android_softpos`: android mobile devices that can work as pos device with software.
          - `ios_softpos`: iOS mobile devices that can work as pos device with software.
        - `use_embedded_reader` (boolean, conditional)
          Indicate whether the reader is embedded in a mobile POS device. Default is `true`.
    - `created_at` (string (date-time), conditional)
      Time at which the PaymentMethod was created
    - `customer_id` (string, conditional)
      Customer id
    - `dana` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `doku_ewallet` (object, conditional)
      Doku E-Wallet information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `dragonpay` (object, conditional)
      Dragonpay information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `duit_now` (object, conditional)
      DuitNow information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `eft_direct_debit` (object, conditional)
      EFT Direct Debit information.
      - `account_number` (string, conditional)
        4-17 digits number to identify a bank account in Canada.
      - `business_account` (boolean, conditional)
        Indicate whether the account is a business account.
      - `institution_number` (string, conditional)
        3-digit number to identify a bank institution in Canada.
      - `micro_debit` (object, conditional)
        The result of micro debit.
        - `status` (string, conditional)
          The status of micro_debit.
      - `micro_deposit` (object, conditional)
        The result of micro deposit.
        - `status` (string, conditional)
          The status of micro_deposit.
      - `owner_email` (string, conditional)
        Email of the account holder.
      - `owner_name` (string, conditional)
        Name of the account holder.
      - `transit_number` (string, conditional)
        Identify a bank branch transit in Canada.
    - `eps` (object, conditional)
      EPS information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `esun` (object, conditional)
      ESUN information.
      - `shopper_email` (string, conditional)
        Email address of the shopper
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper
    - `family_mart` (object, conditional)
      FamilyMart information.
      - `shopper_email` (string, conditional)
        Email address of the shopper
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper
    - `fps` (object, conditional)
      FPS information.
      - `flow` (string, conditional)
        The specific FPS flow to use. Currently only support `qrcode`.
    - `fpx` (object, conditional)
      FPX information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `gcash` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `go_pay` (object, conditional)
      GoPay information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `googlepay` (object, conditional)
      Google pay information.
      - `billing` (object, conditional)
        Billing information
        - `address` (object, conditional)
          The billing address as it appears on the credit card issuer's records
          - `city` (string, conditional)
            City of the address. Maximum of 100 characters.
          - `country_code` (string, required)
            The two-letter country code in ISO 3166-1 alpha-2 format.
          - `postcode` (string, conditional)
            Postcode of the address. Maximum of 10 characters.
          - `state` (string, conditional)
            State or province of the address. Maximum of 100 characters.
          - `street` (string, conditional)
            Street of the address. Maximum of 1000 characters.
        - `date_of_birth` (string, conditional)
          Date of birth of the customer in the format: YYYY-MM-DD
        - `email` (string, conditional)
          Email address of the customer
        - `first_name` (string, conditional)
          First name of the customer
        - `last_name` (string, conditional)
          Last name of the customer
        - `phone_number` (string, conditional)
          Phone number of the customer
      - `lifecycle_id` (string, conditional)
        The Lifecycle Identifier is a unique code that links all related transaction events - Capture, refund & disputes, making it easy to track a transaction throughout its lifecycle. This identifier is currently supported only when the card brand is MasterCard.
      - `payment_data_type` (string, conditional)
        Type of the payment data details. One of `tokenized_card` or `encrypted_payment_token`.
      - `tokenized_card` (object, conditional)
        Payment data with the tokenized card details.
        - `authentication_method` (object, conditional)
          Authentication method
          - `emv` (object, conditional)
            EMV data
            - `emv_data` (string, required)
              Output from the Secure Element
            - `encrypted_pin_data` (string, conditional)
              The PIN encrypted using the bank's key
          - `three_ds` (object, conditional)
            3D-Secure authentication data
            - `eci_indicator` (string, conditional)
              Electronic Commerce Indicator, as defined by 3-D Secure
            - `online_payment_cryptogram` (string, required)
              Online payment cryptogram, as defined by 3-D Secure
          - `type` (string, required)
            The authentication method type. One of `CRYPTOGRAM_3DS`, `PAN_ONLY`.
        - `bin` (string, conditional)
          Bank identify number of this card
        - `brand` (string, conditional)
          Brand of the card. One of `visa`, `mastercard`, `maestro`, `chinaunionpay`.
        - `device_manufacturer_identifier` (string, conditional)
          Device manufacturer identifier
        - `expiry_month` (string, required)
          Two digit number representing the card's expiration month
        - `expiry_year` (string, required)
          Four digit number representing the card's expiration year
        - `fingerprint` (string, conditional)
          Fingerprint of the card
        - `is_commercial` (boolean, conditional)
          A boolean field referring whether the card is commercial or not
        - `issuer_country_code` (string, conditional)
          Country code of the card issuer
        - `issuer_name` (string, conditional)
          Issuer name
        - `last4` (string, conditional)
          Last four digits of the card number
        - `name` (string, conditional)
          Cardholder name
        - `type` (string, conditional)
          The card's type of payment. One of `credit` or `debit`.
    - `grabpay` (object, conditional)
      GrabPay information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `hi_life` (object, conditional)
      Hi-Life information.
      - `shopper_email` (string, conditional)
        Email address of the shopper
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper
    - `id` (string, conditional)
      Unique identifier for the PaymentMethod
    - `ideal` (object, conditional)
      iDEAL information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `indomaret` (object, conditional)
      Indomaret information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `jenius_pay` (object, conditional)
      JeniusPay information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `kakaopay` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `klarna` (object, conditional)
      Klarna information.
      - `billing` (object, conditional)
        Billing information
        - `address` (object, conditional)
          The billing address as it appears on the credit card issuer's records
          - `city` (string, conditional)
            City of the address. Maximum of 100 characters.
          - `country_code` (string, required)
            The two-letter country code in ISO 3166-1 alpha-2 format.
          - `postcode` (string, conditional)
            Postcode of the address. Maximum of 10 characters.
          - `state` (string, conditional)
            State or province of the address. Maximum of 100 characters.
          - `street` (string, conditional)
            Street of the address. Maximum of 1000 characters.
        - `date_of_birth` (string, conditional)
          Date of birth of the customer in the format: YYYY-MM-DD
        - `email` (string, conditional)
          Email address of the customer
        - `first_name` (string, conditional)
          First name of the customer
        - `last_name` (string, conditional)
          Last name of the customer
        - `phone_number` (string, conditional)
          Phone number of the customer
      - `country_code` (string, required)
        The ISO 3166 alpha-2 standard country/region code from which the consumer will be paying. One of `AT`, `BE`, `CH`, `CZ`, `DE`, `DK`, `ES`, `FI`, `FR`, `GB`, `GR`, `IE`, `IT`, `NL`, `NO`, `PL`, `PT`, `SE`, `US`
      - `language` (string, conditional)
        The ISO 639-1 alpha-2 language code. Default value is `en`. Besides `en`, you can specify other local languages (see below) for some countries to render the payment page.
        AT: `de`; BE: `be`, `nl`, `fr`; CH: `it`, `de`, `fr`; CZ: `cs`; DE: `de`; DK: `da`; ES: `es`; FI: `fi`, `sv`; FR: `fr`; GR: `el`; IT: `it`; NL: `nl`; NO: `nb`; PL: `pl`; PT: `pt`; SE: `sv`; US: `es`
    - `konbini` (object, conditional)
      Konbini information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `linkaja` (object, conditional)
      LinkAja information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `maxima` (object, conditional)
      Maxima information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `metadata` (object, conditional)
      A set of key-value pairs that you can attach to the PaymentMethod. You can specify up to 50 keys with key names up to 50 characters long and values up to 500 characters long.
    - `multibanco` (object, conditional)
      Multibanco information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `mybank` (object, conditional)
      MyBank information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `narvesen` (object, conditional)
      Narvesen information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `online_banking` (object, conditional)
      Online Banking information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `ovo` (object, conditional)
      OVO information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `p24` (object, conditional)
      P24 information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `pay_now` (object, conditional)
      PayNow information.
      - `channel` (string, conditional)
        The payment channel.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `paybybankapp` (object, conditional)
      Pay by Bank app information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `payeasy` (object, conditional)
      PayEasy information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `paypal` (object, conditional)
      PayPal information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `paypost` (object, conditional)
      Paypost information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `paysafecard` (object, conditional)
      paysafecard information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `paysafecash` (object, conditional)
      Paysafecash information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `paysera` (object, conditional)
      Paysera information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `payto` (object, conditional)
      Payto information
      - `bsb` (object, conditional)
        - `account_name` (string, conditional)
          The account name.
        - `account_number` (string, conditional)
          4-9 digits number to identify a bank account in Australia.
        - `bsb_number` (string, conditional)
          6-digit Bank-State-Branch number.
      - `pay_id` (object, conditional)
        The PayID of the recipient.
        - `australian_business_number` (string, conditional)
          11 digits number to identify the PayId. Required when `phone_number`, `owner_email`, and `organisation_id` is null.
        - `organisation_id` (string, conditional)
          The organisation id of the recipient. The PayID must be in the format of `payid:airwallex.com`.
        - `owner_email` (string, conditional)
          owner email to identify the PayId. Required when `phone_number`, `australian_business_number`, and `organisation_id` is null.
        - `phone_number` (string, conditional)
          The phone number of the PayId. Required when `owner_email`, `australian_business_number`, and `organisation_id` is null.
    - `payu` (object, conditional)
      PayU information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `perlas_terminals` (object, conditional)
      Perlas terminals information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `prompt_pay` (object, conditional)
      PromptPay information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `rabbit_line_pay` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `satispay` (object, conditional)
      Satispay information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `shopper_name` (string, conditional)
        The name of the shopper
    - `sepa_direct_debit` (object, conditional)
      SEPA Direct Debit information.
      - `address` (object, conditional)
        Account holder's address.
        - `country_code` (string, conditional)
          Country code of the address. Use the two-character ISO Standard Country Codes.
        - `postcode` (string, required)
          Postcode of the address.
        - `street` (string, required)
          street of the address.
        - `town` (string, required)
          town of the address.
      - `bank_name` (string, conditional)
        Bank of the account. You can call [API to retrieve the available bank names](https://www.airwallex.com/docs/api/payments/config/banks).
      - `business_account` (boolean, conditional)
        Indicate whether the account is a business account.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying.
      - `iban` (string, conditional)
        15-34 characters to identify a bank account.
      - `micro_debit` (object, conditional)
        The result of micro debit.
        - `status` (string, conditional)
          The status of micro_debit.
      - `micro_deposit` (object, conditional)
        The result of micro deposit.
        - `status` (string, conditional)
          The status of micro_deposit.
      - `owner_email` (string, conditional)
        Email of the account holder.
      - `owner_name` (string, conditional)
        Name of the account holder.
    - `seven_eleven` (object, conditional)
      7-Eleven information.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper.
    - `shopee_pay` (object, conditional)
      Boost information.
      - `shopper_email` (string, conditional)
        Email address of the shopper
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        Phone number of the shopper
    - `skrill` (object, conditional)
      Skrill information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying. Applicable worldwide except for blacklisted countries. For the forbidden countries, please refer to [Skrill Non-serviced Countries](https://www.skrill.com/en/footer/terms-conditions/non-serviced-countries/)
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `status` (string, conditional)
      Status of the PaymentMethod. One of `CREATED`, `DISABLED`
    - `tabby` (object, conditional)
      Tabby information
      - `language` (string, conditional)
        The ISO 639-1 alpha-2 language code.
      - `shopper_email` (string, conditional)
        The email of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
      - `shopper_phone` (string, conditional)
        The phone of the shopper.
    - `tng` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `truemoney` (object, conditional)
      Alipay HK information.
      - `flow` (string, conditional)
        One of `qrcode`, `mobile_web`, `mobile_app`
      - `os_type` (string, conditional)
        ios, android
      - `shopper_login_id` (string, conditional)
        Alipay's User LoginId (Shopper) for Payment Consent Verification
      - `user_id` (string, conditional)
        Unique identifier of a user in payment method provider side. Only present after the payment has been completed or the consent has been verified.
    - `trustly` (object, conditional)
      Trustly information.
      - `country_code` (string, conditional)
        The 2-letter ISO country/region code from which the consumer will be paying. One of `DE`, `DK`, `EE`, `ES`, `FI`, `GB`, `LT`, `LV`, `NL`, `NO`, `PL`, `SE`, `SK`.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `type` (string, conditional)
      Type of the PaymentMethod. One of `card`, `card_present`, `applepay`, `wechatpay`, `alipaycn`, `alipayhk`, `googlepay`, `gcash`, `dana`, `kakaopay`, `tng`, `truemoney`, `rabbit_line_pay`, `family_mart`, `hi_life`, `esun`, `boost`, `shopee_pay`, `fpx`, `bank_transfer`, `alfamart`, `doku_ewallet`, `grabpay`, `indomaret`, `konbini`, `online_banking`, `payeasy`, `seven_eleven`, `skrill`, `eps`, `bancontact`, `ideal`, `multibanco`, `p24`, `trustly`, `dragonpay`, `blik`, `mybank`, `paybybankapp`, `verkkopankki`, `maxima`, `narvesen`, `paypost`, `perlas_terminals`, `paysafecash`, `paysafecard`, `paysera`, `satispay`, `atome`, `duit_now`, `pay_now`, `prompt_pay`, `go_pay`, `jenius_pay`, `fps`, `ach_direct_debit`, `bacs_direct_debit`, `becs_direct_debit`, `klarna`, `sepa_direct_debit`, `korean_local_card`, `payco`, `samsung_pay`, `naver_pay`, `toss_pay`, `ovo`, `bitpay`, `linkaja`, `eft_direct_debit`, `zip`, `afterpay`.
    - `updated_at` (string (date-time), conditional)
      Last time at which the PaymentMethod was updated
    - `verkkopankki` (object, conditional)
      Verkkopankki information.
      - `bank_name` (string, conditional)
        The name of the bank.
      - `shopper_email` (string, conditional)
        Email address of the shopper.
      - `shopper_name` (string, conditional)
        The name of the shopper.
    - `wechatpay` (object, conditional)
      WeChat Pay information.
      - `channel` (string, conditional)
        The payment channel.
      - `flow` (string, conditional)
        The specific WechatPay flow to use.  One of `qrcode`, `official_account`, `mobile_app`, `mobile_web`
    - `zip` (object, conditional)
      Zip information.
      - `shopper_name` (string, conditional)
        The name of the shopper.
  - `payment_method_options` (object, conditional)
    Options for PaymentMethod.
    - `card` (object, conditional)
      The PaymentMethod options for card.
      - `authorization_type` (string, conditional)
        The authorization type of the card payment. One of `final_auth`, `pre_auth`. Default to `final_auth`. Currently only available when `brand` is `visa` or `mastercard`.
      - `auto_capture` (boolean, conditional)
        Specifies whether the funds should be requested automatically after the payment is authorized. Default to `true`.
  - `payment_method_transaction_id` (string, conditional)
    The unique transaction identifier for a Payment Attempt, assigned by the payment provider (card issuers or local payment method providers such as Google Pay, iDEAL, etc.).
  - `provider_original_response_code` (string, conditional)
    The original response code from the payment method provider (or issuer for card)
  - `provider_original_response_description` (string, conditional)
    Human-readable description of `provider_original_response_code`, describing the reason returned by the issuer.
  - `provider_transaction_id` (string, conditional)
    Deprecated.
    Use `payment_method_transaction_id` instead.
  - `refunded_amount` (number, conditional)
    Refunded amount
  - `settle_via` (string, conditional)
    Through which channel the merchant will get this payment settled. Possible values are `airwallex`, `paypal`, `amex`.
    If `airwallex` is returned, this payment will be settled to merchant's Airwallex wallet, otherwise it will be settled externally.
  - `status` (string, conditional)
    - **RECEIVED**: The PaymentAttempt has been created upon request.
    - **AUTHENTICATION_REDIRECTED**: The PaymentAttempt is waiting for further customer action of authentication, e.g. 3DS verification and QR code scan.
    - **PENDING_AUTHORIZATION**: The PaymentAttempt authorization request has been accepted and is pending the final result from the provider.
    - **AUTHORIZED**: The PaymentAttempt was successfully authorized. It will either be automatically captured or require a manual capture to finalize the payment. Please be aware that capturing the payment is not possible if the PaymentIntent status is **PENDING_REVIEW**.
    - **CAPTURE_REQUESTED**: The PaymentAttempt has been successfully requested for capture. The payment is complete.
    - **EXPIRED**: The PaymentAttempt expired after the allowed payment time. Please create a new PaymentAttempt to retry.
    - **CANCELLED**: The PaymentAttempt has been cancelled. The previously authorized amount (if any) will be returned to the customer.
    - **FAILED**: The PaymentAttempt has failed. Please create a new PaymentAttempt to retry.
    - **SETTLED**: Airwallex has received the settlement from the provider. We will settle the funds in your wallet.
    - **PAID**: Airwallex has settled the funds in your wallet.
  - `terminal_id` (string, conditional)
    Airwallex terminal unique identifier used to process the payment attempt.
  - `updated_at` (string (date-time), conditional)
    Last time at which this PaymentAttempt was updated or operated on
- `merchant_category_code` (string, conditional)
  Four-digit code to categorize the business or service. This field is only applicable for approved merchants to specify an alternative category code.
- `merchant_order_id` (string, conditional)
  The order unique identifier created in merchant's order system that corresponds to this PaymentIntent
- `metadata` (object, conditional)
  A set of key-value pairs that you can attach to this PaymentIntent. You can specify up to 50 keys with key names up to 50 characters long and values up to 500 characters long.
- `next_action` (object, conditional)
  Next action for merchant
  - `content_type` (string, conditional)
    The content type of the request when `method` is `POST`. If not provided, the content type should be `application/json`
  - `data` (object, conditional)
    The additional data that can be used to complete this action
  - `dcc_data` (object, conditional)
    The DCC data that can be used to complete this action
    - `amount` (number, conditional)
      The proposed payment amount after Dynamic Currency Conversion (DCC)
    - `client_rate` (number, conditional)
      The proposed client rate for DCC
    - `currency` (string, conditional)
      Three-letter ISO code of the payment currency after DCC
    - `currency_pair` (string, conditional)
      Six-letter code representing the pair of PaymentIntent currency and the proposed payment currency after DCC. Notice the preceding currency does not always represent the PaymentIntent currency. The order of currencies only indicates the exchanging direction of `client_rate`.
    - `rate_expiry` (string, conditional)
      Time at which the proposed `client_rate` expires
    - `rate_timestamp` (string, conditional)
      Time at which the proposed `client_rate` was generated
  - `fallback_url` (string, conditional)
    Fallback url to redirect the shopper to the web page if the redirection to the app fails. Returned only if the flow is `mobile_app`.
  - `method` (string, conditional)
    The redirect method if the action type is `redirect`. One of `GET`, `POST`
  - `package_name` (string, conditional)
    Android package name. Returned only if the flow is `mobile_app` and the os_type is `android`.
  - `qrcode` (string, conditional)
    QR Code text representation if the action type is `render_qrcode`, only applicable to `wechatpay`, `alipaycn`, `alipayhk`, `kakaopay`, `gcash`, `tng`, `truemoney`, `rabbit_line_pay`, `fps`.
  - `type` (string, conditional)
    Type of next action. One of `render_qrcode`, `call_sdk`, `redirect`, `redirect_iframe`, `request_pin`
  - `url` (string, conditional)
    The redirect url
- `order` (object, conditional)
  Purchase order related to this PaymentIntent
  - `discount` (object, conditional)
    Discount used by the customer.
    - `coupon_code` (string, conditional)
      Coupon code used
  - `foreign_retailer_amount` (number, conditional)
    The total amount from all foreign retailers in a marketplace transaction. Must be greater than or equal to 0 and less than or equal to the payment intent amount.
  - `products` (array[object], conditional)
    Product list
    - `category` (string, conditional)
      Product category at the merchant store, such as home furnishings, pet supplies, apparel and accessories
    - `code` (string, conditional)
      Merchant's product identifier code. Maximum of 128 characters.
    - `desc` (string, conditional)
      Product description. Maximum of 500 characters.
    - `effective_end_at` (string, conditional)
      The effective end time of the product, only applicable when product type is `intangible_good`. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `effective_start_at` (string, conditional)
      The effective start time of the product, only applicable when product type is `intangible_good`. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `image_url` (string, conditional)
      The preview image url for this product, which is usually displayed as thumbnail in the order details.
    - `name` (string, conditional)
      Name of the product. Maximum of 255 characters.
    - `quantity` (integer (int32), conditional)
      Product quantity
    - `seller` (object, conditional)
      Seller info of the purchase order
      - `identifier` (string, conditional)
        The identifier of the seller in the merchant's system
      - `name` (string, conditional)
        The name of the seller in the merchant's system
    - `sku` (string, conditional)
      Stock keeping unit. A unique identifier assigned by the merchant to identify and track this specific product. Maximum of 128 characters.
    - `type` (string, conditional)
      Type of product, such as `physical_good`, `intangible_good`, or `service`. Maximum of 128 characters.
    - `unit_price` (number, conditional)
      Product unit price
    - `url` (string, conditional)
      The url that links to the product page at merchant site.
  - `sellers` (array[object], conditional)
    Seller list
    - `additional_info` (object, conditional)
      The additional information of the seller in the merchant's system for risk analysis
      - `address_updated_at` (string, conditional)
        The timestamp of the latest address change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `email_updated_at` (string, conditional)
        The timestamp of the latest email change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `password_updated_at` (string, conditional)
        The timestamp of the latest password change. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `products_updated_at` (string, conditional)
        The timestamp of the latest change of product listing details. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
      - `sales_summary` (object, conditional)
        The sales summary of this seller during the last period
        - `currency` (string, conditional)
          The currency of sales amount
        - `period` (string, conditional)
          The period of this sales summary. Default to 12M (last 12 months).
        - `sales_amount` (number, conditional)
          The volume of sales completed by the seller in the last period
        - `sales_count` (integer (int32), conditional)
          The number of sales completed by the seller in the last period
    - `business_info` (object, conditional)
      The business information of the seller in the merchant's system for risk analysis
      - `address` (object, conditional)
        The billing address as it appears on the credit card issuer's records
        - `city` (string, conditional)
          City of the address. Maximum of 100 characters.
        - `country_code` (string, required)
          The two-letter country code in ISO 3166-1 alpha-2 format.
        - `postcode` (string, conditional)
          Postcode of the address. Maximum of 10 characters.
        - `state` (string, conditional)
          State or province of the address. Maximum of 100 characters.
        - `street` (string, conditional)
          Street of the address. Maximum of 1000 characters.
      - `email` (string, conditional)
        Email address of the seller
      - `phone_number` (string, conditional)
        Phone number of the seller
      - `rating` (number, conditional)
        The latest customer rating (out of 10) for this seller
      - `registration_date` (string, conditional)
        The date on which the seller registered in the merchant's system
    - `identifier` (string, conditional)
      The identifier of the seller in the merchant's system. Maximum length is 64.
    - `name` (string, conditional)
      The name of the seller in the merchant's system. Maximum length is 100.
  - `shipping` (object, conditional)
    Shipping information
    - `address` (object, conditional)
      The billing address as it appears on the credit card issuer's records
      - `city` (string, conditional)
        City of the address. Maximum of 100 characters.
      - `country_code` (string, required)
        The two-letter country code in ISO 3166-1 alpha-2 format.
      - `postcode` (string, conditional)
        Postcode of the address. Maximum of 10 characters.
      - `state` (string, conditional)
        State or province of the address. Maximum of 100 characters.
      - `street` (string, conditional)
        Street of the address. Maximum of 1000 characters.
    - `fee_amount` (number, conditional)
      Shipping fee amount.
    - `first_name` (string, conditional)
      First name of the recipient. Maximum of 128 characters.
    - `last_name` (string, conditional)
      Last name of the recipient. Maximum of 128 characters.
    - `phone_number` (string, conditional)
      Phone number of the recipient. Maximum of 50 characters.
    - `shipping_company` (string, conditional)
      Name of the shipping company. Maximum of 100 characters.
    - `shipping_delayed_at` (string, conditional)
      Use if customer chose to deliver the item at a later time. The timestamp must include an explicit timezone (e.g. `Z` or `-04:00`).
    - `shipping_method` (string, conditional)
      Shipping method for the product. Maximum of 128 characters.
    - `tracking_number` (string, conditional)
      Tracking number of the shipment. Maximum of 100 characters.
    - `tracking_url` (string, conditional)
      URL where the customer can track the shipment. Maximum of 1024 characters.
  - `surcharge` (object, conditional)
    Surcharge Information.
    - `amount` (number, required)
      The surcharge amount. This amount is included in the PaymentIntent's total `amount`.
    - `percent` (number, conditional)
      The surcharge rate in percentage. For example, 5 represents a 5% surcharge.
  - `tip` (object, conditional)
    Tip information
    - `amount` (number, required)
      The tip amount. This amount is included in the total `amount`.
  - `type` (string, conditional)
    Industry category of the order. Maximum of 128 characters.
- `payment_consent` (object, conditional)
  The associated **PaymentConsent** to set up along with the PaymentIntent.
  - `merchant_trigger_reason` (string, conditional)
    Indicate whether the subsequent payments are scheduled. Only applicable when `next_triggered_by` is `merchant`. One of `scheduled`, `unscheduled`, `installments`.
    Default: `unscheduled`
  - `next_triggered_by` (string, required)
    The party to trigger subsequent payments. One of `merchant`, `customer`.
  - `terms_of_use` (object, conditional)
    Terms to specify how this Payment Consent will be used.
    - `billing_cycle_charge_day` (integer (int32), conditional)
      The granularity per billing cycle. Required when payment_schedule.period_unit is WEEK, MONTH, or YEAR. (e.g. charge_day_per_billing_cycle= 5, payment_schedule.period_unit  = MONTH, payment_schedule.period = 1 if collect payment on the 5th of each month).
    - `end_date` (string, conditional)
      End date to expect payment request.
    - `first_payment_amount` (number, conditional)
      The first payment. It could include the costs associated with the first debited amount.Optional if payment agreement type is `VARIABLE`.
    - `fixed_payment_amount` (number, conditional)
      The fixed payment amount that can be charged for a single payment.Required if payment agreement type is `FIXED`.
    - `max_payment_amount` (number, conditional)
      The maximum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `min_payment_amount` (number, conditional)
      The minimum payment amount that can be charged for a single payment.Optional if payment agreement type is `VARIABLE`.
    - `payment_amount_type` (string, required)
      The agreed type of amounts for subsequent payment. Should be one of `FIXED`, `VARIABLE`.
      - **FIXED**: payment amount is fixed. A specific amount is required.
      - **VARIABLE**: payment amount is variable at each collection. A max limit is recommended.
    - `payment_currency` (string, conditional)
      The currency of this payment. Please refer to [supported currencies](/docs/payments/supported-currencies).
    - `payment_schedule` (object, conditional)
      - `period` (integer (int32), conditional)
        The number of period units between billing cycles. For example, the payment cycle is one month if period=1 and period_unit=MONTH. Required when merchant_trigger_reason = scheduled
      - `period_unit` (string, conditional)
        Specifies billing frequency. One of `DAY`, `WEEK`,  `MONTH`, and `YEAR`. Required when merchant_trigger_reason = scheduled
    - `start_date` (string, conditional)
      Start date to expect payment request.
    - `total_billing_cycles` (integer (int32), conditional)
      The total number of billing cycles. For example, the mandate will last for 1 year if `total_billing_cycles`=12, `payment_schedule.period`=1 and `payment_schedule.period_unit`=MONTH if the `merchant_trigger_reason` is `scheduled`. Merchant can bill customers 12 times when `total_billing_cycles`=12 if the `merchant_trigger_reason` is `unscheduled`The mandate will continue indefinitely if total_billing_cycles is null.
- `payment_consent_id` (string, conditional)
  Unique identifier of the PaymentConsent related to this PaymentIntent
- `payment_link_id` (string, conditional)
  Payment Link unique identifier (if this intent was created by Payment Link)
- `payment_method_options` (object, conditional)
  Options for PaymentMethod
  - `card` (object, conditional)
    The PaymentMethod options for card
    - `authorization_type` (string, conditional)
      The authorization type of the card payment. One of `final_auth`, `pre_auth`. Only applicable when `payment_method` is provided. Default to `final_auth`. Currently only available when `brand` is `visa` or `mastercard`.
    - `auto_capture` (boolean, conditional)
      Specifies whether the funds should be requested automatically after the payment is authorized. Only applicable when `payment_method` is provided. Default to `true`.
    - `card_input_via` (string, conditional)
      The channel through which the cardholder inputs the card. One of `ecommerce`, `moto`
    - `merchant_trigger_reason` (string, conditional)
      Types of transactions where the merchant is allowed to initiate payments because it is a customary, legitimate need of the merchant's industry. Only applicable for merchant-initiated transactions. One of `incremental_authorization`, `reauthorization`, `resubmission`, `delayed_charges`, `partial_shipment`, `no_show`.
      Possible enum values:
        - `delayed_charges`
        - `incremental_authorization`
        - `no_show`
        - `partial_shipment`
        - `reauthorization`
        - `resubmission`
    - `three_ds_action` (string, conditional)
      Set it to `FORCE_3DS` if you want to enforce 3DS with our 3DS provider. Set it to EXTERNAL_3DS if you want to use your own 3DS provider, in this case `payment_method_options.card.external_three_ds` should be provided in the confirm request. Set it to SKIP_3DS if you want to skip 3DS regardless of the risk score. `null` by default
  - `wechatpay` (object, conditional)
    The PaymentMethod options for wechatpay
    - `enable_funds_split` (boolean, conditional)
      Indicates whether funds split will be enabled for this WeChatPay order
- `request_id` (string, conditional)
  Unique request identifier specified by the merchant in the last operation
- `return_url` (string, conditional)
  The web page URL or application scheme URI to redirect the customer after payment authentication.
- `risk_control_options` (object, conditional)
  Risk Control Options
  - `skip_risk_processing` (boolean, conditional)
    Set it to `true` if you want to skip fraud processing. Please contact your account manager to enable the feature to take effect. Defaults to `false`.
  - `tra_applicable` (boolean, conditional)
    Set it to 'true' if you want to use TRA exemption when create payment intent, only applicable when you skip risk processing
- `status` (string, conditional)
  Please note that this list of statuses is not exhaustive, you should be prepared to handle intent statuses beyond those explicitly mentioned.
  - **REQUIRES_PAYMENT_METHOD**: The PaymentIntent is waiting for the [confirm](https://www.airwallex.com/docs/api/confirmation_letter/confirmation_letter/create) request.
  - This status is returned right after the PaymentIntent is created or the previous PaymentAttempt has failed or expired.
  - **REQUIRES_CUSTOMER_ACTION**: The PaymentIntent is waiting for further customer action of authentication, e.g. 3DS verification and QR code scan. Please check the `next_action`.
  - **PENDING_REVIEW**: The PaymentIntent was successfully authorized, but it is currently under review for risk compliance.
  - **REQUIRES_CAPTURE**: The PaymentIntent is waiting for your [capture](https://www.airwallex.com/docs/api/payments/payment_intents/capture) to complete the payment.
  - **PENDING**: The PaymentIntent is pending the final result from the provider. No further action is required.
  - **SUCCEEDED**: The PaymentIntent has succeeded. The payment is complete.
  - **CANCELLED**: The PaymentIntent has been canceled by your [request](https://www.airwallex.com/docs/api/billing/subscriptions/cancel). The payment is closed.
- `triggered_by` (string, conditional)
  Indicates who initiated the payment - the `merchant` or the `customer`.
  - `merchant`: The payment is initiated by the merchant to collect a subsequent payment where the customer is not in session.
  - `customer`: The payment is initiated by the customer using stored payment method details.
- `updated_at` (string (date-time), conditional)
  Last time at which this PaymentIntent was updated or operated on

### 400 Bad Request

Bad Request. Possible error codes: `validation_error`, `duplicate_request`, `suspended_from_online_payments`, `currency_not_supported`, `resource_not_found`(invalid `customer_id`).

If `payment_method` is set in the request, the possible error codes also include those documented for **/api/v1/pa/payment_intents/{id}/confirm** API.

### 401 Unauthorized

Unauthorized. Possible error codes: `unauthorized`

### 403 Forbidden

Forbidden

### 404 Not Found

Not Found. Possible error codes: `not_found`(invalid url)

### 500 Internal Server Error

Server Error. Possible error codes: `internal_error`
