> ## Documentation Index
> Fetch the complete documentation index at: https://api-reference.hyperswitch.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Payments - Submit Eligibility Data



## OpenAPI

````yaml post /payments/{payment_id}/eligibility
openapi: 3.0.3
info:
  title: Hyperswitch - API Documentation
  description: >

    ## Get started


    Hyperswitch provides a collection of APIs that enable you to process and
    manage payments.

    Our APIs accept and return JSON in the HTTP body, and return standard HTTP
    response codes.


    You can consume the APIs directly using your favorite HTTP/REST library.


    We have a testing environment referred to "sandbox", which you can setup to
    test API calls without

    affecting production data.

    Currently, our sandbox environment is live while our production environment
    is under development

    and will be available soon.

    You can sign up on our Dashboard to get API keys to access Hyperswitch API.


    ### Environment


    Use the following base URLs when making requests to the APIs:


    | Environment   |  Base URL                          |

    |---------------|------------------------------------|

    | Sandbox       | <https://sandbox.hyperswitch.io>   |

    | Production    | <https://api.hyperswitch.io>       |


    ## Authentication


    When you sign up on our [dashboard](https://app.hyperswitch.io) and create a
    merchant

    account, you are given a secret key (also referred as api-key) and a
    publishable key.

    You may authenticate all API requests with Hyperswitch server by providing
    the appropriate key in

    the request Authorization header.


    | Key             | 
    Description                                                                                 
    |

    |-----------------|-----------------------------------------------------------------------------------------------|

    | api-key         | Private key. Used to authenticate all API requests from
    your merchant server                  |

    | publishable key | Unique identifier for your account. Used to authenticate
    API requests from your app's client  |


    Never share your secret api keys. Keep them guarded and secure.
  contact:
    name: Hyperswitch Support
    url: https://hyperswitch.io
    email: support.global@juspay.io
  license:
    name: Apache-2.0
  version: 0.1.0
servers:
  - url: https://sandbox.hyperswitch.io
    description: Sandbox Environment
security: []
tags:
  - name: Merchant Account
    description: Create and manage merchant accounts
  - name: Profile
    description: Create and manage profiles
  - name: Merchant Connector Account
    description: Create and manage merchant connector accounts
  - name: Payments
    description: Create and manage one-time payments, recurring payments and mandates
  - name: Refunds
    description: Create and manage refunds for successful payments
  - name: Mandates
    description: Manage mandates
  - name: Customers
    description: Create and manage customers
  - name: Payment Methods
    description: Create and manage payment methods of customers
  - name: Disputes
    description: Manage disputes
  - name: API Key
    description: Create and manage API Keys
  - name: Payouts
    description: Create and manage payouts
  - name: payment link
    description: Create payment link
  - name: Routing
    description: Create and manage routing configurations
  - name: Event
    description: Manage events
  - name: Authentication
    description: Create and manage authentication
  - name: Subscriptions
    description: Subscription management and billing endpoints
  - name: Card Issuer
    description: Create and manage card issuers
paths:
  /payments/{payment_id}/eligibility:
    post:
      tags:
        - Payments
      summary: Payments - Submit Eligibility Data
      operationId: Submit Eligibility data for a Payment
      parameters:
        - name: payment_id
          in: path
          description: The identifier for payment
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentsEligibilityRequest'
        required: true
      responses:
        '200':
          description: Eligibility submit is successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsEligibilityResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponseOpenApi'
      security:
        - publishable_key: []
components:
  schemas:
    PaymentsEligibilityRequest:
      type: object
      required:
        - client_secret
        - payment_method_type
        - payment_token
      properties:
        client_secret:
          type: string
          description: Token used for client side verification
          example: pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo
        payment_method_type:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_subtype:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/EligibilityPaymentMethodDataRequest'
          nullable: true
        browser_info:
          allOf:
            - $ref: '#/components/schemas/BrowserInformation'
          nullable: true
        payment_token:
          type: string
          description: >-
            The payment token to look up the saved payment method

            When provided, the system will fetch the payment method data from
            the locker/vault
          example: token_abc123xyz
    PaymentsEligibilityResponse:
      type: object
      required:
        - payment_id
        - sdk_next_action
      properties:
        payment_id:
          type: string
          description: The identifier for the payment
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
    GenericErrorResponseOpenApi:
      type: object
      required:
        - error_type
        - message
        - code
      properties:
        error_type:
          type: string
          example: invalid_request
        message:
          type: string
          example: 'Missing required param: {param}'
        code:
          type: string
          example: IR_04
    PaymentMethod:
      type: string
      description: 'Indicates the type of payment method. Eg: ''card'', ''wallet'', etc.'
      enum:
        - card
        - card_redirect
        - pay_later
        - wallet
        - bank_redirect
        - bank_transfer
        - crypto
        - bank_debit
        - reward
        - real_time_payment
        - upi
        - voucher
        - gift_card
        - open_banking
        - mobile_payment
        - network_token
    PaymentMethodType:
      type: string
      description: >-
        Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay'
        for wallets.
      enum:
        - ach
        - affirm
        - afterpay_clearpay
        - alfamart
        - ali_pay
        - ali_pay_hk
        - alma
        - amazon_pay
        - paysera
        - apple_pay
        - atome
        - bacs
        - bancontact_card
        - becs
        - benefit
        - bizum
        - blik
        - bluecode
        - boleto
        - bca_bank_transfer
        - bni_va
        - breadpay
        - bri_va
        - bhn_card_network
        - card_redirect
        - cimb_va
        - classic
        - credit
        - crypto_currency
        - cashapp
        - dana
        - danamon_va
        - debit
        - duit_now
        - efecty
        - eft
        - eft_debit_order
        - eps
        - flexiti
        - fps
        - evoucher
        - giropay
        - givex
        - google_pay
        - go_pay
        - gcash
        - ideal
        - interac
        - indomaret
        - klarna
        - kakao_pay
        - local_bank_redirect
        - mandiri_va
        - knet
        - mb_way
        - mobile_pay
        - momo
        - momo_atm
        - multibanco
        - online_banking_thailand
        - online_banking_czech_republic
        - online_banking_finland
        - online_banking_fpx
        - online_banking_poland
        - online_banking_slovakia
        - oxxo
        - pago_efectivo
        - permata_bank_transfer
        - open_banking_uk
        - pay_bright
        - payjustnow
        - paypal
        - paze
        - pix
        - pix_key
        - pix_emv
        - pix_automatico_qr
        - pix_automatico_push
        - pay_safe_card
        - przelewy24
        - prompt_pay
        - pse
        - qris
        - red_compra
        - red_pagos
        - samsung_pay
        - sepa
        - sepa_bank_transfer
        - sepa_guarenteed_debit
        - skrill
        - sofort
        - swish
        - touch_n_go
        - trustly
        - twint
        - upi_collect
        - upi_intent
        - upi_qr
        - vipps
        - viet_qr
        - venmo
        - walley
        - we_chat_pay
        - seven_eleven
        - lawson
        - mini_stop
        - family_mart
        - seicomart
        - pay_easy
        - local_bank_transfer
        - mifinity
        - open_banking_pis
        - direct_carrier_billing
        - instant_bank_transfer
        - instant_bank_transfer_finland
        - instant_bank_transfer_poland
        - revolut_pay
        - indonesian_bank_transfer
        - open_banking
        - network_token
    EligibilityPaymentMethodDataRequest:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/EligibilityPaymentMethodData'
          nullable: true
        - type: object
          properties:
            billing:
              allOf:
                - $ref: '#/components/schemas/Address'
              nullable: true
      description: Payment method data request for eligibility check
    BrowserInformation:
      type: object
      description: Browser information to be used for 3DS 2.0
      properties:
        color_depth:
          type: integer
          format: int32
          description: Color depth supported by the browser
          nullable: true
          minimum: 0
        java_enabled:
          type: boolean
          description: Whether java is enabled in the browser
          nullable: true
        java_script_enabled:
          type: boolean
          description: Whether javascript is enabled in the browser
          nullable: true
        language:
          type: string
          description: Language supported
          nullable: true
        screen_height:
          type: integer
          format: int32
          description: The screen height in pixels
          nullable: true
          minimum: 0
        screen_width:
          type: integer
          format: int32
          description: The screen width in pixels
          nullable: true
          minimum: 0
        time_zone:
          type: integer
          format: int32
          description: Time zone of the client
          nullable: true
        ip_address:
          type: string
          description: Ip address of the client
          nullable: true
        accept_header:
          type: string
          description: List of headers that are accepted
          example: >-
            text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
          nullable: true
        user_agent:
          type: string
          description: User-agent of the browser
          nullable: true
        os_type:
          type: string
          description: The os type of the client device
          nullable: true
        os_version:
          type: string
          description: The os version of the client device
          nullable: true
        device_model:
          type: string
          description: The device model of the client
          nullable: true
        accept_language:
          type: string
          description: Accept-language of the browser
          nullable: true
        referer:
          type: string
          description: Identifier of the source that initiated the request.
          nullable: true
    SdkNextAction:
      type: object
      required:
        - next_action
      properties:
        next_action:
          $ref: '#/components/schemas/NextActionCall'
    EligibilityPaymentMethodData:
      oneOf:
        - type: object
          title: EligibilityCard
          required:
            - card
          properties:
            card:
              $ref: '#/components/schemas/EligibilityCard'
        - type: object
          title: CardRedirect
          required:
            - card_redirect
          properties:
            card_redirect:
              $ref: '#/components/schemas/CardRedirectData'
        - type: object
          title: Wallet
          required:
            - wallet
          properties:
            wallet:
              $ref: '#/components/schemas/WalletData'
        - type: object
          title: PayLater
          required:
            - pay_later
          properties:
            pay_later:
              $ref: '#/components/schemas/PayLaterData'
        - type: object
          title: BankRedirect
          required:
            - bank_redirect
          properties:
            bank_redirect:
              $ref: '#/components/schemas/BankRedirectData'
        - type: object
          title: BankDebit
          required:
            - bank_debit
          properties:
            bank_debit:
              $ref: '#/components/schemas/BankDebitData'
        - type: object
          title: BankTransfer
          required:
            - bank_transfer
          properties:
            bank_transfer:
              $ref: '#/components/schemas/BankTransferData'
        - type: object
          title: RealTimePayment
          required:
            - real_time_payment
          properties:
            real_time_payment:
              $ref: '#/components/schemas/RealTimePaymentData'
        - type: object
          title: Crypto
          required:
            - crypto
          properties:
            crypto:
              $ref: '#/components/schemas/CryptoData'
        - type: string
          title: MandatePayment
          enum:
            - mandate_payment
        - type: string
          title: Reward
          enum:
            - reward
        - type: object
          title: Upi
          required:
            - upi
          properties:
            upi:
              $ref: '#/components/schemas/UpiData'
        - type: object
          title: Voucher
          required:
            - voucher
          properties:
            voucher:
              $ref: '#/components/schemas/VoucherData'
        - type: object
          title: GiftCard
          required:
            - gift_card
          properties:
            gift_card:
              $ref: '#/components/schemas/GiftCardData'
        - type: object
          title: CardToken
          required:
            - card_token
          properties:
            card_token:
              $ref: '#/components/schemas/CardToken'
        - type: object
          title: OpenBanking
          required:
            - open_banking
          properties:
            open_banking:
              $ref: '#/components/schemas/OpenBankingData'
        - type: object
          title: MobilePayment
          required:
            - mobile_payment
          properties:
            mobile_payment:
              $ref: '#/components/schemas/MobilePaymentData'
        - type: object
          title: NetworkToken
          required:
            - network_token
          properties:
            network_token:
              $ref: '#/components/schemas/NetworkTokenData'
      description: Payment method data for eligibility check
    Address:
      type: object
      properties:
        address:
          allOf:
            - $ref: '#/components/schemas/AddressDetails'
          nullable: true
        phone:
          allOf:
            - $ref: '#/components/schemas/PhoneDetails'
          nullable: true
        email:
          type: string
          nullable: true
    NextActionCall:
      oneOf:
        - type: string
          description: The next action call is Post Session Tokens
          enum:
            - post_session_tokens
        - type: string
          description: The next action call is confirm
          enum:
            - confirm
        - type: string
          description: The next action call is sync
          enum:
            - sync
        - type: string
          description: The next action call is Complete Authorize
          enum:
            - complete_authorize
        - type: string
          description: The next action is to await for a merchant callback
          enum:
            - await_merchant_callback
        - type: object
          required:
            - deny
          properties:
            deny:
              type: object
              description: The next action is to deny the payment with an error message
              required:
                - message
              properties:
                message:
                  type: string
        - type: string
          description: The next action is to perform eligibility check
          enum:
            - eligibility_check
    EligibilityCard:
      type: object
      description: >-
        Card data for eligibility check — only card_number is required, no CVV
        needed
      required:
        - card_number
      properties:
        card_number:
          type: string
          description: The card number
          example: '4242424242424242'
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '24'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '24'
          nullable: true
        card_cvc:
          type: string
          description: The card's CVC/CVV
          example: '123'
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
          nullable: true
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          example: INDIA
          nullable: true
        card_issuing_country_code:
          type: string
          example: IN
          nullable: true
        bank_code:
          type: string
          example: JP_AMEX
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
    CardRedirectData:
      oneOf:
        - type: object
          required:
            - knet
          properties:
            knet:
              type: object
        - type: object
          required:
            - benefit
          properties:
            benefit:
              type: object
        - type: object
          required:
            - momo_atm
          properties:
            momo_atm:
              type: object
        - type: object
          required:
            - card_redirect
          properties:
            card_redirect:
              type: object
    WalletData:
      oneOf:
        - type: object
          title: AliPayHkRedirect
          required:
            - ali_pay_hk_redirect
          properties:
            ali_pay_hk_redirect:
              $ref: '#/components/schemas/AliPayHkRedirection'
        - type: object
          title: AliPayQr
          required:
            - ali_pay_qr
          properties:
            ali_pay_qr:
              $ref: '#/components/schemas/AliPayQr'
        - type: object
          title: AliPayRedirect
          required:
            - ali_pay_redirect
          properties:
            ali_pay_redirect:
              $ref: '#/components/schemas/AliPayRedirection'
        - type: object
          title: AmazonPay
          required:
            - amazon_pay
          properties:
            amazon_pay:
              $ref: '#/components/schemas/AmazonPayWalletData'
        - type: object
          title: AmazonPayRedirect
          required:
            - amazon_pay_redirect
          properties:
            amazon_pay_redirect:
              $ref: '#/components/schemas/AmazonPayRedirectData'
        - type: object
          title: ApplePay
          required:
            - apple_pay
          properties:
            apple_pay:
              $ref: '#/components/schemas/ApplePayWalletData'
        - type: object
          title: ApplePayRedirect
          required:
            - apple_pay_redirect
          properties:
            apple_pay_redirect:
              $ref: '#/components/schemas/ApplePayRedirectData'
        - type: object
          title: ApplePayThirdPartySdk
          required:
            - apple_pay_third_party_sdk
          properties:
            apple_pay_third_party_sdk:
              $ref: '#/components/schemas/ApplePayThirdPartySdkData'
        - type: object
          title: BluecodeRedirect
          required:
            - bluecode_redirect
          properties:
            bluecode_redirect:
              type: object
              description: The wallet data for Bluecode QR Code Redirect
        - type: object
          title: CashappQr
          required:
            - cashapp_qr
          properties:
            cashapp_qr:
              $ref: '#/components/schemas/CashappQr'
        - type: object
          title: DanaRedirect
          required:
            - dana_redirect
          properties:
            dana_redirect:
              type: object
              description: Wallet data for DANA redirect flow
        - type: object
          title: GcashRedirect
          required:
            - gcash_redirect
          properties:
            gcash_redirect:
              $ref: '#/components/schemas/GcashRedirection'
        - type: object
          title: GoPayRedirect
          required:
            - go_pay_redirect
          properties:
            go_pay_redirect:
              $ref: '#/components/schemas/GoPayRedirection'
        - type: object
          title: GooglePay
          required:
            - google_pay
          properties:
            google_pay:
              $ref: '#/components/schemas/GooglePayWalletData'
        - type: object
          title: GooglePayRedirect
          required:
            - google_pay_redirect
          properties:
            google_pay_redirect:
              $ref: '#/components/schemas/GooglePayRedirectData'
        - type: object
          title: GooglePayThirdPartySdk
          required:
            - google_pay_third_party_sdk
          properties:
            google_pay_third_party_sdk:
              $ref: '#/components/schemas/GooglePayThirdPartySdkData'
        - type: object
          title: KakaoPayRedirect
          required:
            - kakao_pay_redirect
          properties:
            kakao_pay_redirect:
              $ref: '#/components/schemas/KakaoPayRedirection'
        - type: object
          title: MbWayRedirect
          required:
            - mb_way_redirect
          properties:
            mb_way_redirect:
              $ref: '#/components/schemas/MbWayRedirection'
        - type: object
          title: Mifinity
          required:
            - mifinity
          properties:
            mifinity:
              $ref: '#/components/schemas/MifinityData'
        - type: object
          title: MobilePayRedirect
          required:
            - mobile_pay_redirect
          properties:
            mobile_pay_redirect:
              $ref: '#/components/schemas/MobilePayRedirection'
        - type: object
          title: MomoRedirect
          required:
            - momo_redirect
          properties:
            momo_redirect:
              $ref: '#/components/schemas/MomoRedirection'
        - type: object
          title: PaypalRedirect
          required:
            - paypal_redirect
          properties:
            paypal_redirect:
              $ref: '#/components/schemas/PaypalRedirection'
        - type: object
          title: PaypalSdk
          required:
            - paypal_sdk
          properties:
            paypal_sdk:
              $ref: '#/components/schemas/PayPalWalletData'
        - type: object
          title: Paysera
          required:
            - paysera
          properties:
            paysera:
              $ref: '#/components/schemas/PayseraData'
        - type: object
          title: Paze
          required:
            - paze
          properties:
            paze:
              $ref: '#/components/schemas/PazeWalletData'
        - type: object
          title: RevolutPay
          required:
            - revolut_pay
          properties:
            revolut_pay:
              $ref: '#/components/schemas/RevolutPayData'
        - type: object
          title: SamsungPay
          required:
            - samsung_pay
          properties:
            samsung_pay:
              $ref: '#/components/schemas/SamsungPayWalletData'
        - type: object
          title: Skrill
          required:
            - skrill
          properties:
            skrill:
              $ref: '#/components/schemas/SkrillData'
        - type: object
          title: SwishQr
          required:
            - swish_qr
          properties:
            swish_qr:
              $ref: '#/components/schemas/SwishQrData'
        - type: object
          title: TouchNGoRedirect
          required:
            - touch_n_go_redirect
          properties:
            touch_n_go_redirect:
              $ref: '#/components/schemas/TouchNGoRedirection'
        - type: object
          title: TwintRedirect
          required:
            - twint_redirect
          properties:
            twint_redirect:
              type: object
              description: Wallet data for Twint Redirection
        - type: object
          title: VippsRedirect
          required:
            - vipps_redirect
          properties:
            vipps_redirect:
              type: object
              description: Wallet data for Vipps Redirection
        - type: object
          title: WeChatPayQr
          required:
            - we_chat_pay_qr
          properties:
            we_chat_pay_qr:
              $ref: '#/components/schemas/WeChatPayQr'
        - type: object
          title: WeChatPayRedirect
          required:
            - we_chat_pay_redirect
          properties:
            we_chat_pay_redirect:
              $ref: '#/components/schemas/WeChatPayRedirection'
    PayLaterData:
      oneOf:
        - type: object
          required:
            - klarna_redirect
          properties:
            klarna_redirect:
              type: object
              description: For KlarnaRedirect as PayLater Option
              properties:
                billing_email:
                  type: string
                  description: The billing email
                  nullable: true
                billing_country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
        - type: object
          required:
            - klarna_sdk
          properties:
            klarna_sdk:
              type: object
              description: For Klarna Sdk as PayLater Option
              required:
                - token
              properties:
                token:
                  type: string
                  description: The token for the sdk workflow
        - type: object
          required:
            - affirm_redirect
          properties:
            affirm_redirect:
              type: object
              description: For Affirm redirect as PayLater Option
        - type: object
          required:
            - afterpay_clearpay_redirect
          properties:
            afterpay_clearpay_redirect:
              type: object
              description: For AfterpayClearpay redirect as PayLater Option
              properties:
                billing_email:
                  type: string
                  description: The billing email
                  nullable: true
                billing_name:
                  type: string
                  description: The billing name
                  nullable: true
        - type: object
          required:
            - pay_bright_redirect
          properties:
            pay_bright_redirect:
              type: object
              description: For PayBright Redirect as PayLater Option
        - type: object
          required:
            - flexiti_redirect
          properties:
            flexiti_redirect:
              type: object
              description: For Flexiti Redirect as PayLater long term finance Option
        - type: object
          required:
            - walley_redirect
          properties:
            walley_redirect:
              type: object
              description: For WalleyRedirect as PayLater Option
        - type: object
          required:
            - alma_redirect
          properties:
            alma_redirect:
              type: object
              description: For Alma Redirection as PayLater Option
        - type: object
          required:
            - atome_redirect
          properties:
            atome_redirect:
              type: object
        - type: object
          required:
            - breadpay_redirect
          properties:
            breadpay_redirect:
              type: object
        - type: object
          required:
            - payjustnow_redirect
          properties:
            payjustnow_redirect:
              type: object
    BankRedirectData:
      oneOf:
        - type: object
          required:
            - bancontact_card
          properties:
            bancontact_card:
              type: object
              required:
                - card_number
                - card_exp_month
                - card_exp_year
                - card_holder_name
              properties:
                card_number:
                  type: string
                  description: The card number
                  example: '4242424242424242'
                card_exp_month:
                  type: string
                  description: The card's expiry month
                  example: '24'
                card_exp_year:
                  type: string
                  description: The card's expiry year
                  example: '24'
                card_holder_name:
                  type: string
                  description: The card holder's name
                  example: John Test
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
        - type: object
          required:
            - bizum
          properties:
            bizum:
              type: object
        - type: object
          required:
            - blik
          properties:
            blik:
              type: object
              properties:
                blik_code:
                  type: string
                  nullable: true
        - type: object
          required:
            - eps
          properties:
            eps:
              type: object
              required:
                - bank_name
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_name:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - giropay
          properties:
            giropay:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_account_bic:
                  type: string
                  description: Bank account bic code
                  nullable: true
                bank_account_iban:
                  type: string
                  description: Bank account iban
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - ideal
          properties:
            ideal:
              type: object
              required:
                - bank_name
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_name:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - interac
          properties:
            interac:
              type: object
              properties:
                country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
                email:
                  type: string
                  example: john.doe@example.com
                  nullable: true
        - type: object
          required:
            - online_banking_czech_republic
          properties:
            online_banking_czech_republic:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_finland
          properties:
            online_banking_finland:
              type: object
              properties:
                email:
                  type: string
                  nullable: true
        - type: object
          required:
            - online_banking_poland
          properties:
            online_banking_poland:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_slovakia
          properties:
            online_banking_slovakia:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - open_banking_uk
          properties:
            open_banking_uk:
              type: object
              required:
                - issuer
                - country
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - przelewy24
          properties:
            przelewy24:
              type: object
              properties:
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
        - type: object
          required:
            - sofort
          properties:
            sofort:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
                preferred_language:
                  type: string
                  description: The preferred language
                  example: en
                  nullable: true
        - type: object
          required:
            - trustly
          properties:
            trustly:
              type: object
              properties:
                country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
        - type: object
          required:
            - online_banking_fpx
          properties:
            online_banking_fpx:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_thailand
          properties:
            online_banking_thailand:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - local_bank_redirect
          properties:
            local_bank_redirect:
              type: object
        - type: object
          required:
            - eft
          properties:
            eft:
              type: object
              required:
                - provider
              properties:
                provider:
                  type: string
                  description: The preferred eft provider
                  example: ozow
        - type: object
          required:
            - open_banking
          properties:
            open_banking:
              type: object
    BankDebitData:
      oneOf:
        - type: object
          required:
            - ach_bank_debit
          properties:
            ach_bank_debit:
              type: object
              description: Payment Method data for Ach bank debit
              required:
                - account_number
                - routing_number
                - bank_account_holder_name
                - bank_name
                - bank_type
                - bank_holder_type
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for ach bank debit payment
                  example: '000123456789'
                routing_number:
                  type: string
                  description: Routing number for ach bank debit payment
                  example: '110000000'
                bank_account_holder_name:
                  type: string
                  example: John Doe
                bank_name:
                  type: string
                  example: ACH
                bank_type:
                  type: string
                  example: Checking
                bank_holder_type:
                  type: string
                  example: Personal
        - type: object
          required:
            - sepa_bank_debit
          properties:
            sepa_bank_debit:
              type: object
              required:
                - iban
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                iban:
                  type: string
                  description: International bank account number (iban) for SEPA
                  example: DE89370400440532013000
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - sepa_guarenteed_bank_debit
          properties:
            sepa_guarenteed_bank_debit:
              type: object
              required:
                - iban
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                iban:
                  type: string
                  description: International bank account number (iban) for SEPA
                  example: DE89370400440532013000
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - becs_bank_debit
          properties:
            becs_bank_debit:
              type: object
              required:
                - account_number
                - bsb_number
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for Becs payment method
                  example: '000123456'
                bsb_number:
                  type: string
                  description: Bank-State-Branch (bsb) number
                  example: '000000'
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
                  nullable: true
        - type: object
          required:
            - bacs_bank_debit
          properties:
            bacs_bank_debit:
              type: object
              required:
                - account_number
                - sort_code
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for Bacs payment method
                  example: '00012345'
                sort_code:
                  type: string
                  description: Sort code for Bacs payment method
                  example: '108800'
                bank_account_holder_name:
                  type: string
                  description: holder name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - eft_debit_order
          properties:
            eft_debit_order:
              type: object
              required:
                - account_number
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for eft bank debit payment
                  example: '000123456789'
                branch_code:
                  type: string
                  description: Branch code for eft bank debit payment
                  example: '110000000'
                  nullable: true
                bank_account_holder_name:
                  type: string
                  example: John Doe
                  nullable: true
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
                bank_type:
                  allOf:
                    - $ref: '#/components/schemas/BankType'
                  nullable: true
    BankTransferData:
      oneOf:
        - type: object
          required:
            - ach_bank_transfer
          properties:
            ach_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/AchBillingDetails'
                  nullable: true
        - type: object
          required:
            - sepa_bank_transfer
          properties:
            sepa_bank_transfer:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/SepaAndBacsBillingDetails'
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - bacs_bank_transfer
          properties:
            bacs_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/SepaAndBacsBillingDetails'
                  nullable: true
        - type: object
          required:
            - multibanco_bank_transfer
          properties:
            multibanco_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/MultibancoBillingDetails'
                  nullable: true
        - type: object
          required:
            - permata_bank_transfer
          properties:
            permata_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bca_bank_transfer
          properties:
            bca_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bni_va_bank_transfer
          properties:
            bni_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bri_va_bank_transfer
          properties:
            bri_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - cimb_va_bank_transfer
          properties:
            cimb_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - danamon_va_bank_transfer
          properties:
            danamon_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - mandiri_va_bank_transfer
          properties:
            mandiri_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - pix
          properties:
            pix:
              type: object
              properties:
                pix_key:
                  type: string
                  description: Unique key for pix transfer
                  example: a1f4102e-a446-4a57-bcce-6fa48899c1d1
                  nullable: true
                cpf:
                  type: string
                  description: CPF is a Brazilian tax identification number
                  example: '10599054689'
                  nullable: true
                cnpj:
                  type: string
                  description: CNPJ is a Brazilian company tax identification number
                  example: '74469027417312'
                  nullable: true
                source_bank_account_id:
                  type: string
                  description: Source bank account number
                  example: 8b******-****-****-****-*******08bc5
                  nullable: true
                destination_bank_account_id:
                  type: string
                  description: >-
                    Partially masked destination bank account number
                    _Deprecated: Will be removed in next stable release._
                  deprecated: true
                  example: '********-****-460b-****-f23b4e71c97b'
                  nullable: true
                expiry_date:
                  type: string
                  description: >-
                    The expiration date and time for the Pix QR code in ISO 8601
                    format
                  example: '2025-09-10T10:11:12Z'
                  nullable: true
        - type: object
          required:
            - pix_automatico_qr
          properties:
            pix_automatico_qr:
              type: object
        - type: object
          required:
            - pix_automatico_push
          properties:
            pix_automatico_push:
              type: object
              properties:
                account_number:
                  type: string
                  description: Account number for Pix Automatico Push payment method
                  example: '550689'
                  nullable: true
                branch_code:
                  type: string
                  description: Branch code for Pix Automatico Push payment method
                  example: '2569'
                  nullable: true
                bank_identifier:
                  type: string
                  description: Bank identifier for Pix Automatico Push payment method
                  example: '91193552'
                  nullable: true
        - type: object
          required:
            - pse
          properties:
            pse:
              type: object
        - type: object
          required:
            - local_bank_transfer
          properties:
            local_bank_transfer:
              type: object
              properties:
                bank_code:
                  type: string
                  nullable: true
        - type: object
          required:
            - instant_bank_transfer
          properties:
            instant_bank_transfer:
              type: object
        - type: object
          required:
            - instant_bank_transfer_finland
          properties:
            instant_bank_transfer_finland:
              type: object
        - type: object
          required:
            - instant_bank_transfer_poland
          properties:
            instant_bank_transfer_poland:
              type: object
        - type: object
          required:
            - indonesian_bank_transfer
          properties:
            indonesian_bank_transfer:
              type: object
              properties:
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
    RealTimePaymentData:
      oneOf:
        - type: object
          required:
            - fps
          properties:
            fps:
              type: object
        - type: object
          required:
            - duit_now
          properties:
            duit_now:
              type: object
        - type: object
          required:
            - prompt_pay
          properties:
            prompt_pay:
              type: object
        - type: object
          required:
            - viet_qr
          properties:
            viet_qr:
              type: object
        - type: object
          required:
            - qris
          properties:
            qris:
              type: object
    CryptoData:
      type: object
      properties:
        pay_currency:
          type: string
          nullable: true
        network:
          type: string
          nullable: true
    UpiData:
      oneOf:
        - type: object
          required:
            - upi_collect
          properties:
            upi_collect:
              $ref: '#/components/schemas/UpiCollectData'
        - type: object
          required:
            - upi_intent
          properties:
            upi_intent:
              $ref: '#/components/schemas/UpiIntentData'
        - type: object
          required:
            - upi_qr
          properties:
            upi_qr:
              $ref: '#/components/schemas/UpiQrData'
    VoucherData:
      oneOf:
        - type: object
          required:
            - boleto
          properties:
            boleto:
              $ref: '#/components/schemas/BoletoVoucherData'
        - type: string
          enum:
            - efecty
        - type: string
          enum:
            - pago_efectivo
        - type: string
          enum:
            - red_compra
        - type: string
          enum:
            - red_pagos
        - type: object
          required:
            - alfamart
          properties:
            alfamart:
              $ref: '#/components/schemas/AlfamartVoucherData'
        - type: object
          required:
            - indomaret
          properties:
            indomaret:
              $ref: '#/components/schemas/IndomaretVoucherData'
        - type: string
          enum:
            - oxxo
        - type: object
          required:
            - seven_eleven
          properties:
            seven_eleven:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - lawson
          properties:
            lawson:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - mini_stop
          properties:
            mini_stop:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - family_mart
          properties:
            family_mart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - seicomart
          properties:
            seicomart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - pay_easy
          properties:
            pay_easy:
              $ref: '#/components/schemas/JCSVoucherData'
    GiftCardData:
      oneOf:
        - type: object
          required:
            - givex
          properties:
            givex:
              $ref: '#/components/schemas/GiftCardDetails'
        - type: object
          required:
            - pay_safe_card
          properties:
            pay_safe_card:
              type: object
        - type: object
          required:
            - bhn_card_network
          properties:
            bhn_card_network:
              $ref: '#/components/schemas/BHNGiftCardDetails'
    CardToken:
      type: object
      required:
        - card_holder_name
      properties:
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_cvc:
          type: string
          description: The CVC number for the card
          nullable: true
    OpenBankingData:
      oneOf:
        - type: object
          required:
            - open_banking_pis
          properties:
            open_banking_pis:
              type: object
    MobilePaymentData:
      oneOf:
        - type: object
          required:
            - direct_carrier_billing
          properties:
            direct_carrier_billing:
              type: object
              required:
                - msisdn
              properties:
                msisdn:
                  type: string
                  description: The phone number of the user
                  example: '1234567890'
                client_uid:
                  type: string
                  description: Unique user id
                  example: 02iacdYXGI9CnyJdoN8c7
                  nullable: true
    NetworkTokenData:
      type: object
      required:
        - network_token
        - token_exp_month
        - token_exp_year
        - token_cryptogram
        - card_holder_name
      properties:
        network_token:
          type: string
          description: The network token
          example: '4604000460040787'
        token_exp_month:
          type: string
          description: The token's expiry month
          example: '05'
        token_exp_year:
          type: string
          description: The token's expiry year
          example: '24'
        token_cryptogram:
          type: string
          description: The token cryptogram
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          description: The type of the card such as Credit, Debit
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          description: The country in which the card was issued
          example: INDIA
          nullable: true
        bank_code:
          type: string
          description: The bank code of the bank that issued the card
          example: JP_AMEX
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
        eci:
          type: string
          description: >-
            The ECI(Electronic Commerce Indicator) value for this
            authentication.
          nullable: true
        par:
          type: string
          description: The Payment Account Reference (PAR) for this card.
          nullable: true
    AddressDetails:
      type: object
      description: Address details
      properties:
        city:
          type: string
          description: The city, district, suburb, town, or village of the address.
          example: New York
          nullable: true
          maxLength: 50
        country:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        line1:
          type: string
          description: The first line of the street address or P.O. Box.
          example: 123, King Street
          nullable: true
          maxLength: 200
        line2:
          type: string
          description: >-
            The second line of the street address or P.O. Box (e.g., apartment,
            suite, unit, or building).
          example: Powelson Avenue
          nullable: true
          maxLength: 50
        line3:
          type: string
          description: The third line of the street address, if applicable.
          example: Bridgewater
          nullable: true
          maxLength: 50
        zip:
          type: string
          description: The zip/postal code for the address
          example: '08807'
          nullable: true
          maxLength: 50
        state:
          type: string
          description: The address state
          example: New York
          nullable: true
        first_name:
          type: string
          description: The first name for the address
          example: John
          nullable: true
          maxLength: 255
        last_name:
          type: string
          description: The last name for the address
          example: Doe
          nullable: true
          maxLength: 255
        origin_zip:
          type: string
          description: The zip/postal code of the origin
          example: '08807'
          nullable: true
          maxLength: 50
    PhoneDetails:
      type: object
      properties:
        number:
          type: string
          description: The contact number
          example: '9123456789'
          nullable: true
        country_code:
          type: string
          description: The country code attached to the number
          example: '+1'
          nullable: true
    CardNetwork:
      type: string
      description: Indicates the card network.
      enum:
        - Visa
        - Mastercard
        - AmericanExpress
        - JCB
        - DinersClub
        - Discover
        - CartesBancaires
        - UnionPay
        - Interac
        - RuPay
        - Maestro
        - Star
        - Pulse
        - Accel
        - Nyce
    AliPayHkRedirection:
      type: object
    AliPayQr:
      type: object
    AliPayRedirection:
      type: object
    AmazonPayWalletData:
      type: object
      required:
        - checkout_session_id
      properties:
        checkout_session_id:
          type: string
          description: Checkout Session identifier
    AmazonPayRedirectData:
      type: object
    ApplePayWalletData:
      type: object
      required:
        - payment_data
        - payment_method
        - transaction_identifier
      properties:
        payment_data:
          $ref: '#/components/schemas/ApplePayPaymentData'
        payment_method:
          $ref: '#/components/schemas/ApplepayPaymentMethod'
        transaction_identifier:
          type: string
          description: The unique identifier for the transaction
    ApplePayRedirectData:
      type: object
    ApplePayThirdPartySdkData:
      type: object
      properties:
        token:
          type: string
          nullable: true
    CashappQr:
      type: object
    GcashRedirection:
      type: object
    GoPayRedirection:
      type: object
    GooglePayWalletData:
      type: object
      required:
        - type
        - description
        - info
        - tokenization_data
      properties:
        type:
          type: string
          description: The type of payment method
        description:
          type: string
          description: >-
            User-facing message to describe the payment method that funds this
            transaction.
        info:
          $ref: '#/components/schemas/GooglePayPaymentMethodInfo'
        tokenization_data:
          $ref: '#/components/schemas/GpayTokenizationData'
    GooglePayRedirectData:
      type: object
    GooglePayThirdPartySdkData:
      type: object
      properties:
        token:
          type: string
          nullable: true
    KakaoPayRedirection:
      type: object
    MbWayRedirection:
      type: object
      required:
        - telephone_number
      properties:
        telephone_number:
          type: string
          description: Telephone number of the shopper. Should be Portuguese phone number.
    MifinityData:
      type: object
      required:
        - date_of_birth
      properties:
        date_of_birth:
          type: string
          format: date
        language_preference:
          type: string
          nullable: true
    MobilePayRedirection:
      type: object
    MomoRedirection:
      type: object
    PaypalRedirection:
      type: object
      properties:
        email:
          type: string
          description: paypal's email address
          example: johntest@test.com
          nullable: true
          maxLength: 255
    PayPalWalletData:
      type: object
      required:
        - token
      properties:
        token:
          type: string
          description: Token generated for the Apple pay
    PayseraData:
      type: object
    PazeWalletData:
      type: object
      required:
        - complete_response
      properties:
        complete_response:
          type: string
    RevolutPayData:
      type: object
    SamsungPayWalletData:
      type: object
      required:
        - payment_credential
      properties:
        payment_credential:
          $ref: '#/components/schemas/SamsungPayWalletCredentials'
    SkrillData:
      type: object
    SwishQrData:
      type: object
    TouchNGoRedirection:
      type: object
    WeChatPayQr:
      type: object
    WeChatPayRedirection:
      type: object
    CountryAlpha2:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CW
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
        - US
    BankRedirectBilling:
      type: object
      required:
        - billing_name
        - email
      properties:
        billing_name:
          type: string
          description: The name for which billing is issued
          example: John Doe
        email:
          type: string
          description: The billing email for bank redirect
          example: example@example.com
    BankNames:
      type: string
      description: Name of banks supported by Hyperswitch
      enum:
        - absa
        - american_express
        - affin_bank
        - agro_bank
        - alliance_bank
        - am_bank
        - bank_of_america
        - bank_of_china
        - bank_islam
        - bank_muamalat
        - bank_rakyat
        - bank_simpanan_nasional
        - barclays
        - blik_p_s_p
        - capital_one
        - chase
        - citi
        - cimb_bank
        - discover
        - navy_federal_credit_union
        - pentagon_federal_credit_union
        - synchrony_bank
        - wells_fargo
        - abn_amro
        - asn_bank
        - bunq
        - handelsbanken
        - hong_leong_bank
        - hsbc_bank
        - ing
        - knab
        - kuwait_finance_house
        - moneyou
        - rabobank
        - regiobank
        - revolut
        - sns_bank
        - triodos_bank
        - van_lanschot
        - arzte_und_apotheker_bank
        - austrian_anadi_bank_ag
        - bank_austria
        - bank99_ag
        - bankhaus_carl_spangler
        - bankhaus_schelhammer_und_schattera_ag
        - bank_millennium
        - bank_p_e_k_a_o_s_a
        - bawag_psk_ag
        - bks_bank_ag
        - brull_kallmus_bank_ag
        - btv_vier_lander_bank
        - capital_bank_grawe_gruppe_ag
        - ceska_sporitelna
        - dolomitenbank
        - easybank_ag
        - e_platby_v_u_b
        - erste_bank_und_sparkassen
        - friesland_bank
        - hypo_alpeadriabank_international_ag
        - hypo_noe_lb_fur_niederosterreich_u_wien
        - hypo_oberosterreich_salzburg_steiermark
        - hypo_tirol_bank_ag
        - hypo_vorarlberg_bank_ag
        - hypo_bank_burgenland_aktiengesellschaft
        - komercni_banka
        - m_bank
        - marchfelder_bank
        - maybank
        - oberbank_ag
        - osterreichische_arzte_und_apothekerbank
        - ocbc_bank
        - pay_with_i_n_g
        - place_z_i_p_k_o
        - platnosc_online_karta_platnicza
        - posojilnica_bank_e_gen
        - postova_banka
        - public_bank
        - raiffeisen_bankengruppe_osterreich
        - rhb_bank
        - schelhammer_capital_bank_ag
        - standard_chartered_bank
        - schoellerbank_ag
        - sparda_bank_wien
        - sporo_pay
        - santander_przelew24
        - tatra_pay
        - viamo
        - volksbank_gruppe
        - volkskreditbank_ag
        - vr_bank_braunau
        - uob_bank
        - pay_with_alior_bank
        - banki_spoldzielcze
        - pay_with_inteligo
        - b_n_p_paribas_poland
        - bank_nowy_s_a
        - credit_agricole
        - pay_with_b_o_s
        - pay_with_citi_handlowy
        - pay_with_plus_bank
        - toyota_bank
        - velo_bank
        - e_transfer_pocztowy24
        - plus_bank
        - etransfer_pocztowy24
        - banki_spbdzielcze
        - bank_nowy_bfg_sa
        - getin_bank
        - blik
        - noble_pay
        - idea_bank
        - envelo_bank
        - nest_przelew
        - mbank_mtransfer
        - inteligo
        - pbac_z_ipko
        - bnp_paribas
        - bank_pekao_sa
        - volkswagen_bank
        - alior_bank
        - boz
        - bangkok_bank
        - krungsri_bank
        - krung_thai_bank
        - the_siam_commercial_bank
        - kasikorn_bank
        - open_bank_success
        - open_bank_failure
        - open_bank_cancelled
        - aib
        - bank_of_scotland
        - danske_bank
        - first_direct
        - first_trust
        - halifax
        - lloyds
        - monzo
        - nat_west
        - nationwide_bank
        - royal_bank_of_scotland
        - starling
        - tsb_bank
        - tesco_bank
        - ulster_bank
        - yoursafe
        - n26
        - nationale_nederlanden
    BankDebitBilling:
      type: object
      properties:
        name:
          type: string
          description: The billing name for bank debits
          example: John Doe
          nullable: true
        email:
          type: string
          description: The billing email for bank debits
          example: example@example.com
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressDetails'
          nullable: true
    BankType:
      type: string
      enum:
        - checking
        - savings
    AchBillingDetails:
      type: object
      properties:
        email:
          type: string
          description: The Email ID for ACH billing
          example: example@me.com
          nullable: true
    SepaAndBacsBillingDetails:
      type: object
      properties:
        email:
          type: string
          description: The Email ID for SEPA and BACS billing
          example: example@me.com
          nullable: true
        name:
          type: string
          description: The billing name for SEPA and BACS billing
          example: Jane Doe
          nullable: true
    MultibancoBillingDetails:
      type: object
      properties:
        email:
          type: string
          example: example@me.com
          nullable: true
    DokuBillingDetails:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Doku
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Doku
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Doku billing
          example: example@me.com
          nullable: true
    UpiCollectData:
      type: object
      properties:
        vpa_id:
          type: string
          description: The Virtual Payment Address (VPA) for UPI collect payment
          example: successtest@iata
          nullable: true
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    UpiIntentData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
        app_name:
          type: string
          description: App name for UPI intent payment
          nullable: true
    UpiQrData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    BoletoVoucherData:
      type: object
      properties:
        social_security_number:
          type: string
          description: The shopper's social security number (CPF or CNPJ)
          nullable: true
        bank_number:
          type: string
          description: The shopper's bank account number associated with the boleto
          nullable: true
        document_type:
          allOf:
            - $ref: '#/components/schemas/DocumentKind'
          nullable: true
        fine_percentage:
          type: string
          description: The fine percentage charged if payment is overdue
          nullable: true
        fine_quantity_days:
          type: string
          description: The number of days after the due date when the fine is applied
          nullable: true
        interest_percentage:
          type: string
          description: The interest percentage charged on late payments
          nullable: true
        write_off_quantity_days:
          type: string
          description: The number of days after which the boleto is written off (canceled)
          nullable: true
        messages:
          type: array
          items:
            type: string
          description: Custom messages or instructions to display on the boleto
          nullable: true
        due_date:
          type: string
          format: date
          example: '2025-08-22'
          nullable: true
    AlfamartVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    IndomaretVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    JCSVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Japanese convenience stores
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name Japanese convenience stores
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Japanese convenience stores
          example: example@me.com
          nullable: true
        phone_number:
          type: string
          description: The telephone number for Japanese convenience stores
          example: '9123456789'
          nullable: true
    GiftCardDetails:
      type: object
      required:
        - number
        - cvc
      properties:
        number:
          type: string
          description: The gift card number
        cvc:
          type: string
          description: The card verification code.
    BHNGiftCardDetails:
      type: object
      required:
        - account_number
        - pin
        - cvv2
        - expiration_date
      properties:
        account_number:
          type: string
          description: The gift card or account number
        pin:
          type: string
          description: The security PIN for gift cards requiring it
        cvv2:
          type: string
          description: The CVV2 code for Open Loop/VPLN products
        expiration_date:
          type: string
          description: The expiration date in MMYYYY format for Open Loop/VPLN products
    ApplePayPaymentData:
      oneOf:
        - $ref: '#/components/schemas/ApplePayPredecryptData'
        - type: string
          description: >-
            This variant contains the encrypted Apple Pay payment data as a
            string.
      description: >-
        This enum is used to represent the Apple Pay payment data, which can
        either be encrypted or decrypted.
    ApplepayPaymentMethod:
      type: object
      required:
        - display_name
        - network
        - type
      properties:
        display_name:
          type: string
          description: The name to be displayed on Apple Pay button
        network:
          type: string
          description: The network of the Apple pay payment method
        type:
          type: string
          description: The type of the payment method
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '12'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '003925'
          nullable: true
        auth_code:
          type: string
          description: Unique authorisation code generated for the payment
          nullable: true
    GooglePayPaymentMethodInfo:
      type: object
      required:
        - card_network
        - card_details
      properties:
        card_network:
          type: string
          description: The name of the card network
        card_details:
          type: string
          description: The details of the card
        assurance_details:
          allOf:
            - $ref: '#/components/schemas/GooglePayAssuranceDetails'
          nullable: true
        card_funding_source:
          allOf:
            - $ref: '#/components/schemas/GooglePayCardFundingSource'
          nullable: true
    GpayTokenizationData:
      oneOf:
        - $ref: '#/components/schemas/GPayPredecryptData'
        - $ref: '#/components/schemas/GpayEcryptedTokenizationData'
      description: >-
        This enum is used to represent the Gpay payment data, which can either
        be encrypted or decrypted.
    SamsungPayWalletCredentials:
      oneOf:
        - $ref: '#/components/schemas/SamsungPayWebWalletData'
        - $ref: '#/components/schemas/SamsungPayAppWalletData'
    UpiSource:
      type: string
      description: >-
        The source type for UPI payments. This indicates what payment source is
        being used for the UPI transaction.
      enum:
        - UPI_CC
        - UPI_CL
        - UPI_ACCOUNT
        - UPI_CC_CL
        - UPI_PPI
        - UPI_VOUCHER
    DocumentKind:
      type: string
      description: Represents the type of identification document used for validation.
      enum:
        - cpf
        - cnpj
    ApplePayPredecryptData:
      type: object
      description: This struct represents the decrypted Apple Pay payment data
      required:
        - application_primary_account_number
        - application_expiration_month
        - application_expiration_year
        - payment_data
      properties:
        application_primary_account_number:
          type: string
          description: The primary account number
          example: '4242424242424242'
        application_expiration_month:
          type: string
          description: The application expiration date (PAN expiry month)
          example: '12'
        application_expiration_year:
          type: string
          description: The application expiration date (PAN expiry year)
          example: '24'
        payment_data:
          $ref: '#/components/schemas/ApplePayCryptogramData'
    GooglePayAssuranceDetails:
      type: object
      required:
        - card_holder_authenticated
        - account_verified
      properties:
        card_holder_authenticated:
          type: boolean
          description: indicates that Cardholder possession validation has been performed
        account_verified:
          type: boolean
          description: indicates that identification and verifications (ID&V) was performed
    GooglePayCardFundingSource:
      type: string
      enum:
        - CREDIT
        - DEBIT
        - PREPAID
        - UNKNOWN
    GPayPredecryptData:
      type: object
      description: This struct represents the decrypted Google Pay payment data
      required:
        - card_exp_month
        - card_exp_year
        - application_primary_account_number
        - cryptogram
        - eci_indicator
      properties:
        card_exp_month:
          type: string
          description: The card's expiry month
        card_exp_year:
          type: string
          description: The card's expiry year
        application_primary_account_number:
          type: string
          description: The Primary Account Number (PAN) of the card
          example: '4242424242424242'
        cryptogram:
          type: string
          description: Cryptogram generated by the Network
          example: AgAAAAAAAIR8CQrXcIhbQAAAAAA
        eci_indicator:
          type: string
          description: Electronic Commerce Indicator
          example: '07'
    GpayEcryptedTokenizationData:
      type: object
      description: This struct represents the encrypted Gpay payment data
      required:
        - type
        - token
      properties:
        type:
          type: string
          description: The type of the token
        token:
          type: string
          description: Token generated for the wallet
    SamsungPayWebWalletData:
      type: object
      required:
        - card_brand
        - card_last4digits
        - 3_d_s
      properties:
        method:
          type: string
          description: Specifies authentication method used
          nullable: true
        recurring_payment:
          type: boolean
          description: Value if credential is enabled for recurring payment
          nullable: true
        card_brand:
          $ref: '#/components/schemas/SamsungPayCardBrand'
        card_last4digits:
          type: string
          description: Last 4 digits of the card number
        3_d_s:
          $ref: '#/components/schemas/SamsungPayTokenData'
    SamsungPayAppWalletData:
      type: object
      required:
        - 3_d_s
        - payment_card_brand
        - payment_currency_type
        - payment_last4_fpan
      properties:
        3_d_s:
          $ref: '#/components/schemas/SamsungPayTokenData'
        payment_card_brand:
          $ref: '#/components/schemas/SamsungPayCardBrand'
        payment_currency_type:
          type: string
          description: Currency type of the payment
        payment_last4_dpan:
          type: string
          description: Last 4 digits of the device specific card number
          nullable: true
        payment_last4_fpan:
          type: string
          description: Last 4 digits of the card number
        merchant_ref:
          type: string
          description: Merchant reference id that was passed in the session call request
          nullable: true
        method:
          type: string
          description: Specifies authentication method used
          nullable: true
        recurring_payment:
          type: boolean
          description: Value if credential is enabled for recurring payment
          nullable: true
    ApplePayCryptogramData:
      type: object
      description: This struct represents the cryptogram data for Apple Pay transactions
      required:
        - online_payment_cryptogram
        - eci_indicator
      properties:
        online_payment_cryptogram:
          type: string
          description: The online payment cryptogram
          example: A1B2C3D4E5F6G7H8
        eci_indicator:
          type: string
          description: The ECI (Electronic Commerce Indicator) value
          example: '05'
    SamsungPayCardBrand:
      type: string
      enum:
        - visa
        - mastercard
        - amex
        - discover
        - unknown
    SamsungPayTokenData:
      type: object
      required:
        - version
        - data
      properties:
        type:
          type: string
          description: 3DS type used by Samsung Pay
          nullable: true
        version:
          type: string
          description: 3DS version used by Samsung Pay
        data:
          type: string
          description: Samsung Pay encrypted payment credential data
  securitySchemes:
    publishable_key:
      type: apiKey
      in: header
      name: api-key
      description: >-
        Publishable keys are a type of keys that can be public and have limited
        scope of usage.

````