> ## 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.

# List payment methods for a Payment

> Client SDK endpoint. Returns a unified response combining merchant-enabled
payment methods and customer saved payment methods, filtered via Euclid
constraint graph and session flow routing.

Supported client auth:
- SDK auth via `Authorization`.
- Publishable-key auth via `api-key: pk_...` and `client_secret` query param.

Merchant secret-key auth is intentionally not supported for this endpoint.



## OpenAPI

````yaml get /payments/{payment_id}/client
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}/client:
    get:
      tags:
        - Payment Methods
      summary: List payment methods for a Payment
      description: >-
        Client SDK endpoint. Returns a unified response combining
        merchant-enabled

        payment methods and customer saved payment methods, filtered via Euclid

        constraint graph and session flow routing.


        Supported client auth:

        - SDK auth via `Authorization`.

        - Publishable-key auth via `api-key: pk_...` and `client_secret` query
        param.


        Merchant secret-key auth is intentionally not supported for this
        endpoint.
      operationId: List Payment Methods for a Payment via Client SDK
      parameters:
        - name: payment_id
          in: path
          description: The identifier for the payment
          required: true
          schema:
            type: string
        - name: client_secret
          in: query
          description: >-
            This is a token which expires after 15 minutes, used from the client
            to authenticate and create sessions from the SDK
          required: false
          schema:
            type: string
            nullable: true
        - name: accepted_countries
          in: query
          description: The two-letter ISO currency code
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CountryAlpha2'
            nullable: true
        - name: accepted_currencies
          in: query
          description: The three-letter ISO currency code
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Currency'
            nullable: true
        - name: amount
          in: query
          description: The amount accepted for processing by the particular payment method.
          required: false
          schema:
            type: integer
            format: int64
            nullable: true
        - name: recurring_enabled
          in: query
          description: >-
            Indicates whether the payment method is eligible for recurring
            payments
          required: false
          schema:
            type: boolean
            nullable: true
        - name: installment_payment_enabled
          in: query
          description: >-
            Indicates whether the payment method is eligible for installment
            payments
          required: false
          schema:
            type: boolean
            nullable: true
        - name: limit
          in: query
          description: Indicates the limit of last used payment methods
          required: false
          schema:
            type: integer
            format: int64
            nullable: true
        - name: card_networks
          in: query
          description: Indicates whether the payment method is eligible for card netwotks
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CardNetwork'
            nullable: true
      responses:
        '200':
          description: Payment Methods retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientPaymentMethodsListResponse'
        '400':
          description: Invalid Data
        '404':
          description: Payment Methods does not exist in records
      security:
        - publishable_key: []
components:
  schemas:
    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
    Currency:
      type: string
      description: >-
        The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the
        payment amount. This field is mandatory for creating a payment.
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLE
        - SLL
        - SOS
        - SRD
        - SSP
        - STD
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
    CardNetwork:
      type: string
      description: Indicates the card network.
      enum:
        - Visa
        - Mastercard
        - AmericanExpress
        - JCB
        - DinersClub
        - Discover
        - CartesBancaires
        - UnionPay
        - Interac
        - RuPay
        - Maestro
        - Star
        - Pulse
        - Accel
        - Nyce
        - Prop
        - PrivateLabel
        - Dinacard
    ClientPaymentMethodsListResponse:
      type: object
      description: >-
        Response for the GET /payments/{payment_id}/payment-methods/client
        endpoint
      required:
        - payment_methods_enabled
        - customer_payment_methods
        - sdk_next_action
        - intent_data
      properties:
        payment_methods_enabled:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePaymentMethodsEnabledForClient'
          description: >-
            Flat list of enabled payment methods — one entry per
            (payment_method_type × payment_method_subtype)
        customer_payment_methods:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPaymentMethodForClient'
          description: The customer's saved payment methods
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
        intent_data:
          $ref: '#/components/schemas/PaymentMethodListIntentData'
    ResponsePaymentMethodsEnabledForClient:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentMethodSubtypeSpecificDataForClient'
          nullable: true
        - type: object
          required:
            - payment_method
            - payment_method_type
          properties:
            payment_method:
              $ref: '#/components/schemas/PaymentMethod'
            payment_method_type:
              $ref: '#/components/schemas/PaymentMethodType'
            payment_experience:
              type: array
              items:
                $ref: '#/components/schemas/PaymentExperience'
              description: >-
                Payment experience options for this method (wallets, pay_later,
                etc.)
              nullable: true
            collect_shipping_details_from_wallets:
              type: boolean
              description: >-
                Whether to collect shipping details from the wallet connector
                (null for non-wallet)
              nullable: true
            collect_billing_details_from_wallets:
              type: boolean
              description: >-
                Whether to collect billing details from the wallet connector
                (null for non-wallet)
              nullable: true
      description: >-
        A single flat entry in the client payment method list — one per
        (payment_method_type × payment_method_subtype)
    CustomerPaymentMethodForClient:
      type: object
      description: >-
        A saved customer payment method as returned in the client-facing PM
        list.


        This is a slimmed-down version of `CustomerPaymentMethod` intended for
        the

        `GET /payments/{payment_id}/payment-methods/client` endpoint.  Fields
        that are

        Only the fields needed by the SDK are included; server-side fields

        (e.g. `surcharge_details`, `metadata`) are omitted.
      required:
        - payment_token
        - payment_method
        - default_payment_method_set
        - requires_cvv
      properties:
        payment_token:
          type: string
          description: >-
            Token for payment method in temporary card locker which gets
            refreshed often.

            The SDK passes this back when submitting the payment.
          example: 7ebf443f-a050-4067-84e5-e6f6d4800aef
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        default_payment_method_set:
          type: boolean
          description: Whether this is the customer's default payment method
          example: true
        requires_cvv:
          type: boolean
          description: Whether CVV collection is required before using this method
          example: true
        created:
          type: string
          format: date-time
          description: When the payment method was saved
          example: '2023-01-18T11:04:09.922Z'
          nullable: true
        last_used_at:
          type: string
          format: date-time
          description: When this payment method was last used for a payment
          example: '2024-02-24T11:04:09.922Z'
          nullable: true
        recurring_enabled:
          type: boolean
          description: >-
            Whether this payment method supports recurring / off-session
            payments
          example: true
          nullable: true
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/CustomerPaymentMethodDataForClient'
          nullable: true
    SdkNextAction:
      type: object
      required:
        - next_action
      properties:
        next_action:
          $ref: '#/components/schemas/NextActionCall'
        should_block_confirm:
          type: boolean
          description: Whether the SDK should block the confirm call for user.
          nullable: true
    PaymentMethodListIntentData:
      type: object
      description: >-
        Intent-only payment details returned as part of the Payment Method List
        response
      required:
        - payment_id
        - status
        - amount
        - attempt_count
      properties:
        payment_id:
          type: string
          description: Unique identifier for the payment
        status:
          $ref: '#/components/schemas/IntentStatus'
        amount:
          $ref: '#/components/schemas/MinorUnit'
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        client_secret:
          type: string
          description: Client secret for client-side payment confirmation
          nullable: true
        description:
          type: string
          description: A description for the payment
          nullable: true
        customer_id:
          type: string
          description: The customer identifier
          nullable: true
        return_url:
          type: string
          description: The URL to redirect to after payment completion
          nullable: true
        setup_future_usage:
          allOf:
            - $ref: '#/components/schemas/FutureUsage'
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        email:
          type: string
          description: The email associated with the payment
          nullable: true
        metadata:
          type: object
          description: Additional metadata
          nullable: true
        order_details:
          type: array
          items:
            type: object
          description: Order details for the payment
          nullable: true
        created:
          type: string
          format: date-time
          description: Timestamp when the payment was created
          nullable: true
        expires_on:
          type: string
          format: date-time
          description: Timestamp when the client secret expires
          nullable: true
        profile_id:
          type: string
          description: The profile identifier
          nullable: true
        merchant_order_reference_id:
          type: string
          description: Merchant-provided reference identifier
          nullable: true
        attempt_count:
          type: integer
          format: int32
          description: Number of payment attempts made
        installment_options:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodListInstallmentOption'
          description: Installment options available for this payment
          nullable: true
        capture_method:
          allOf:
            - $ref: '#/components/schemas/CaptureMethod'
          nullable: true
        merchant_name:
          type: string
          description: The merchant's display name
          nullable: true
        mandate_payment:
          allOf:
            - $ref: '#/components/schemas/MandateData'
          nullable: true
        payment_type:
          allOf:
            - $ref: '#/components/schemas/PaymentType'
          nullable: true
        request_external_three_ds_authentication:
          type: boolean
          description: Whether external 3DS authentication was requested
          nullable: true
        is_tax_calculation_enabled:
          type: boolean
          description: Whether tax calculation is enabled for this payment
          nullable: true
        is_guest_customer:
          type: boolean
          description: Whether the customer is a guest (not saved)
          nullable: true
    PaymentMethodSubtypeSpecificDataForClient:
      oneOf:
        - type: object
          description: Card payment method — contains card network info
          required:
            - card_networks
          properties:
            card_networks:
              type: array
              items:
                $ref: '#/components/schemas/CardNetwork'
        - type: object
          description: Bank payment method (bank_redirect) — contains supported bank names
          required:
            - bank_names
          properties:
            bank_names:
              type: array
              items:
                $ref: '#/components/schemas/BankNames'
      description: |-
        Payment experience entry in the client PM list.
        Subtype-specific data for each payment method entry in the client list
    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_qr
        - 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
    PaymentExperience:
      type: string
      description: >-
        To indicate the type of payment experience that the customer would go
        through
      enum:
        - redirect_to_url
        - invoke_sdk_client
        - display_qr_code
        - one_click
        - link_wallet
        - invoke_payment_app
        - display_wait_screen
        - collect_otp
    CustomerPaymentMethodDataForClient:
      oneOf:
        - type: object
          required:
            - card
          properties:
            card:
              $ref: '#/components/schemas/CardDetailFromLocker'
        - type: object
          required:
            - wallet
          properties:
            wallet:
              $ref: '#/components/schemas/WalletPaymentMethodDataForClient'
        - type: object
          required:
            - bank_debit
          properties:
            bank_debit:
              $ref: '#/components/schemas/BankDebitDataForClient'
    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
                code:
                  allOf:
                    - $ref: '#/components/schemas/BlockReasonCode'
                  nullable: true
        - type: string
          description: The next action is to perform eligibility check
          enum:
            - eligibility_check
    IntentStatus:
      type: string
      description: >-
        Represents the overall status of a payment intent.

        The status transitions through various states depending on the payment
        method, confirmation, capture method, and any subsequent actions (like
        customer authentication or manual capture).
      enum:
        - succeeded
        - failed
        - cancelled
        - cancelled_post_capture
        - processing
        - requires_customer_action
        - requires_merchant_action
        - requires_payment_method
        - requires_confirmation
        - requires_capture
        - partially_captured
        - partially_captured_and_capturable
        - partially_authorized_and_requires_capture
        - partially_captured_and_processing
        - conflicted
        - expired
        - review
    MinorUnit:
      type: integer
      format: int64
      description: This Unit struct represents MinorUnit in which core amount works
    FutureUsage:
      type: string
      description: >-
        Specifies how the payment method can be used for future payments.

        - `off_session`: The payment method can be used for future payments when
        the customer is not present.

        - `on_session`: The payment method is intended for use only when the
        customer is present during checkout.

        If omitted, defaults to `on_session`.
      enum:
        - off_session
        - on_session
    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
    PaymentMethodListInstallmentOption:
      type: object
      description: >-
        Installment options for a payment method, as returned in the payment
        method list response
      required:
        - payment_method
        - available_plans
      properties:
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        available_plans:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodListInstallmentPlan'
          description: Individual installment plans with computed amounts
    CaptureMethod:
      type: string
      description: >-
        Specifies how the payment is captured.

        - `automatic`: Funds are captured immediately after successful
        authorization. This is the default behavior if the field is omitted.

        - `manual`: Funds are authorized but not captured. A separate request to
        the `/payments/{payment_id}/capture` endpoint is required to capture the
        funds.
      enum:
        - automatic
        - manual
        - manual_multiple
        - scheduled
        - sequential_automatic
    MandateData:
      type: object
      description: >-
        Passing this object during payments creates a mandate. The mandate_type
        sub object is passed by the server.
      properties:
        update_mandate_id:
          type: string
          description: A way to update the mandate's payment method details
          nullable: true
        customer_acceptance:
          allOf:
            - $ref: '#/components/schemas/CustomerAcceptance'
          nullable: true
        mandate_type:
          allOf:
            - $ref: '#/components/schemas/MandateType'
          nullable: true
      additionalProperties: false
      deprecated: true
    PaymentType:
      type: string
      description: >-
        The type of the payment that differentiates between normal and various
        types of mandate payments. Use 'setup_mandate' in case of zero auth
        flow.
      enum:
        - normal
        - new_mandate
        - setup_mandate
        - recurring_mandate
        - installment
    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
    CardDetailFromLocker:
      type: object
      required:
        - saved_to_locker
      properties:
        scheme:
          type: string
          nullable: true
        issuer_country:
          type: string
          nullable: true
        issuer_country_code:
          type: string
          nullable: true
        last4_digits:
          type: string
          nullable: true
        expiry_month:
          type: string
          nullable: true
        expiry_year:
          type: string
          nullable: true
        card_token:
          type: string
          nullable: true
        card_holder_name:
          type: string
          nullable: true
        card_fingerprint:
          type: string
          nullable: true
        nick_name:
          type: string
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_isin:
          type: string
          nullable: true
        card_issuer:
          type: string
          nullable: true
        card_type:
          type: string
          nullable: true
        saved_to_locker:
          type: boolean
    WalletPaymentMethodDataForClient:
      oneOf:
        - type: object
          required:
            - apple_pay
          properties:
            apple_pay:
              $ref: '#/components/schemas/PaymentMethodDataWalletInfo'
        - type: object
          required:
            - google_pay
          properties:
            google_pay:
              $ref: '#/components/schemas/PaymentMethodDataWalletInfo'
        - type: object
          required:
            - pay_pal
          properties:
            pay_pal:
              $ref: '#/components/schemas/PaypalRedirection'
      description: >-
        Typed subtype-specific data for a saved customer payment method,
        returned in the

        `GET /payments/{payment_id}/payment-methods/client` response.


        Serializes as an externally-tagged enum, producing e.g.:

        `{ "card": { "last4_digits": "4242", ... } }`


        Only variants for subtypes that actually carry extra data are included;

        for all other subtypes the `payment_method_data` field on

        `CustomerPaymentMethodForClient` is `None`.

        Wallet payment method data returned in the client-facing PM list.
    BankDebitDataForClient:
      oneOf:
        - type: object
          required:
            - ach_bank_debit
          properties:
            ach_bank_debit:
              type: object
              required:
                - account_number_last4_digits
                - routing_number_last4_digits
                - bank_name
                - bank_type
                - bank_holder_type
              properties:
                account_number_last4_digits:
                  type: string
                routing_number_last4_digits:
                  type: string
                bank_account_holder_name:
                  type: string
                  nullable: true
                bank_name:
                  type: string
                  example: ach
                bank_type:
                  type: string
                  example: checking
                bank_holder_type:
                  type: string
                  example: personal
      description: |-
        Bank debit payment method data returned in the client-facing PM list.
        Field names use `_last4_digits` to match the modular service response.
    BlockReasonCode:
      type: string
      description: >-
        A stable, machine-readable identifier for the reason a payment was
        blocked.
      enum:
        - blocked_bin
        - blocked_card_info_unavailable
        - blocked_card_type
        - blocked_card_network
        - blocked_funding_source
        - blocked_card_subtype
        - blocked_card_segment_type
        - blocked_virtual_card
        - blocked_non_reloadable_prepaid_card
        - blocked_gambling_card
        - blocked_issuer_country
        - blocked_issuer
    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
    PaymentMethodListInstallmentPlan:
      type: object
      description: A single installment plan with pre-computed amount breakdown
      required:
        - number_of_installments
        - billing_frequency
        - interest_rate
        - amount_details
      properties:
        number_of_installments:
          type: integer
          format: int32
          description: Number of installments for this plan
          minimum: 0
        billing_frequency:
          $ref: '#/components/schemas/BillingFrequency'
        interest_rate:
          type: number
          format: double
          description: Interest rate as a percentage
        amount_details:
          $ref: '#/components/schemas/PaymentMethodListInstallmentAmountDetails'
    CustomerAcceptance:
      type: object
      description: >-
        This "CustomerAcceptance" object is passed during Payments-Confirm
        request, it enlists the type, time, and mode of acceptance properties
        related to an acceptance done by the customer. The customer_acceptance
        sub object is usually passed by the SDK or client.
      required:
        - acceptance_type
      properties:
        acceptance_type:
          $ref: '#/components/schemas/AcceptanceType'
        accepted_at:
          type: string
          format: date-time
          description: Specifying when the customer acceptance was provided
          example: '2022-09-10T10:11:12Z'
          nullable: true
        online:
          allOf:
            - $ref: '#/components/schemas/OnlineMandate'
          nullable: true
      additionalProperties: false
    MandateType:
      oneOf:
        - type: object
          required:
            - single_use
          properties:
            single_use:
              $ref: '#/components/schemas/MandateAmountData'
        - type: object
          required:
            - multi_use
          properties:
            multi_use:
              allOf:
                - $ref: '#/components/schemas/MandateAmountData'
              nullable: true
    PaymentMethodDataWalletInfo:
      type: object
      properties:
        last4:
          type: string
          description: Last 4 digits of the card number
          nullable: true
        card_network:
          type: string
          description: The information of the payment method
          nullable: true
        type:
          type: string
          description: The type of payment method
          nullable: true
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '10'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '25'
          nullable: true
        auth_code:
          type: string
          description: Unique authorisation code for the payment
          example: '003225'
          nullable: true
        email:
          type: string
          description: Email address associated with the wallet (e.g. PayPal email)
          example: johntest@test.com
          nullable: true
    PaypalRedirection:
      type: object
      properties:
        email:
          type: string
          description: paypal's email address
          example: johntest@test.com
          nullable: true
          maxLength: 255
    BillingFrequency:
      type: string
      description: Billing frequency for a card installment plan
      enum:
        - month
    PaymentMethodListInstallmentAmountDetails:
      type: object
      description: Amount breakdown for a single installment plan
      required:
        - amount_per_installment
        - total_amount
      properties:
        amount_per_installment:
          type: number
          format: double
          description: Amount charged per installment in major units
        total_amount:
          type: number
          format: double
          description: >-
            Total amount across all installments in major units (may differ
            slightly from order amount due to ceiling)
    AcceptanceType:
      type: string
      description: This is used to indicate if the mandate was accepted online or offline
      enum:
        - online
        - offline
    OnlineMandate:
      type: object
      description: Details of online mandate
      required:
        - ip_address
        - user_agent
      properties:
        ip_address:
          type: string
          description: >-
            Ip address of the customer machine from which the mandate was
            created
          example: 123.32.25.123
        user_agent:
          type: string
          description: The user-agent of the customer's browser
      additionalProperties: false
    MandateAmountData:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          type: integer
          format: int64
          description: The maximum amount to be debited for the mandate transaction
          example: 6540
        currency:
          $ref: '#/components/schemas/Currency'
        start_date:
          type: string
          format: date-time
          description: Specifying start date of the mandate
          example: '2022-09-10T00:00:00Z'
          nullable: true
        end_date:
          type: string
          format: date-time
          description: Specifying end date of the mandate
          example: '2023-09-10T23:59:59Z'
          nullable: true
        metadata:
          type: object
          description: Additional details required by mandate
          nullable: true
  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.

````