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

# Payment Method Session - List Payment Methods

> List payment methods for the given payment method session.
This endpoint lists the enabled payment methods for the profile and the saved payment methods of the customer.



## OpenAPI

````yaml get /v1/payment-method-sessions/{id}/list-payment-methods
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
paths:
  /v1/payment-method-sessions/{id}/list-payment-methods:
    get:
      tags:
        - Payment Method Session
      summary: Payment Method Session - List Payment Methods
      description: >-
        List payment methods for the given payment method session.

        This endpoint lists the enabled payment methods for the profile and the
        saved payment methods of the customer.
      operationId: List Payment methods for a Payment Method Session
      parameters:
        - name: id
          in: path
          description: The unique identifier for the Payment Method Session
          required: true
          schema:
            type: string
        - name: X-Profile-Id
          in: header
          description: Profile ID associated to the payment method session
          required: true
          schema:
            type: string
          example: pro_abcdefghijklmnop
      responses:
        '200':
          description: The payment method session is retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodListResponseForSession'
        '404':
          description: The request is invalid
      security:
        - publishable_key__client_secret: []
components:
  schemas:
    PaymentMethodListResponseForSession:
      type: object
      required:
        - payment_methods_enabled
        - customer_payment_methods
      properties:
        payment_methods_enabled:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePaymentMethodTypes'
          description: >-
            The list of payment methods that are enabled for the business
            profile
        customer_payment_methods:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPaymentMethodResponseItem'
          description: The list of saved payment methods of the customer
    ResponsePaymentMethodTypes:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentMethodSubtypeSpecificData'
          nullable: true
        - type: object
          required:
            - payment_method_type
            - payment_method_subtype
            - required_fields
          properties:
            payment_method_type:
              $ref: '#/components/schemas/PaymentMethod'
            payment_method_subtype:
              $ref: '#/components/schemas/PaymentMethodType'
            required_fields:
              type: array
              items:
                $ref: '#/components/schemas/RequiredFieldInfo'
              description: >-
                Required fields for the payment_method_type.

                This is the union of all the required fields for the payment
                method type enabled in all the connectors.
    CustomerPaymentMethodResponseItem:
      type: object
      required:
        - payment_method_token
        - customer_id
        - payment_method_type
        - payment_method_subtype
        - recurring_enabled
        - created
        - requires_cvv
        - last_used_at
        - is_default
      properties:
        payment_method_token:
          type: string
          description: >-
            Temporary Token for payment method in vault which gets refreshed for
            every payment
          example: 7ebf443f-a050-4067-84e5-e6f6d4800aef
        customer_id:
          type: string
          description: The unique identifier of the customer.
          example: 12345_cus_01926c58bc6e77c09e809964e72af8c8
          maxLength: 64
          minLength: 32
        payment_method_type:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_subtype:
          $ref: '#/components/schemas/PaymentMethodType'
        recurring_enabled:
          type: boolean
          description: >-
            Indicates whether the payment method is eligible for recurring
            payments
          example: true
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodListData'
          nullable: true
        bank:
          allOf:
            - $ref: '#/components/schemas/MaskedBankDetails'
          nullable: true
        created:
          type: string
          format: date-time
          description: >-
            A timestamp (ISO 8601 code) that determines when the payment method
            was created
          example: '2023-01-18T11:04:09.922Z'
        requires_cvv:
          type: boolean
          description: Whether this payment method requires CVV to be collected
          example: true
        last_used_at:
          type: string
          format: date-time
          description: >-
            A timestamp (ISO 8601 code) that determines when the payment method
            was last used
          example: '2024-02-24T11:04:09.922Z'
        is_default:
          type: boolean
          description: Indicates if the payment method has been set to default or not
          example: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
    PaymentMethodSubtypeSpecificData:
      oneOf:
        - type: object
          title: card
          required:
            - card_networks
          properties:
            card_networks:
              type: array
              items:
                $ref: '#/components/schemas/CardNetworkTypes'
        - type: object
          title: bank
          required:
            - bank_names
          properties:
            bank_names:
              $ref: '#/components/schemas/BankNames'
    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
    RequiredFieldInfo:
      type: object
      description: Required fields info used while listing the payment_method_data
      required:
        - required_field
        - display_name
        - field_type
      properties:
        required_field:
          type: string
          description: Required field for a payment_method through a payment_method_type
        display_name:
          type: string
          description: Display name of the required field in the front-end
        field_type:
          $ref: '#/components/schemas/FieldType'
        value:
          type: string
          nullable: true
    PaymentMethodListData:
      oneOf:
        - type: object
          required:
            - card
          properties:
            card:
              $ref: '#/components/schemas/CardDetailFromLocker'
        - type: object
          required:
            - bank_debit
          properties:
            bank_debit:
              $ref: '#/components/schemas/BankDebitDetailsPaymentMethod'
        - type: object
          required:
            - bank
          properties:
            bank:
              $ref: '#/components/schemas/Bank'
        - type: object
          required:
            - wallet
          properties:
            wallet:
              $ref: '#/components/schemas/WalletPaymentMethodData'
    MaskedBankDetails:
      type: object
      required:
        - mask
      properties:
        mask:
          type: string
    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
    CardNetworkTypes:
      type: object
      required:
        - eligible_connectors
      properties:
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        surcharge_details:
          allOf:
            - $ref: '#/components/schemas/SurchargeDetailsResponse'
          nullable: true
        eligible_connectors:
          type: array
          items:
            type: string
          description: The list of eligible connectors for a given card network
          example:
            - stripe
            - adyen
    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
    FieldType:
      oneOf:
        - type: string
          enum:
            - user_card_number
        - type: string
          enum:
            - user_gift_card_number
        - type: string
          enum:
            - user_card_expiry_month
        - type: string
          enum:
            - user_card_expiry_year
        - type: string
          enum:
            - user_card_cvc
        - type: string
          enum:
            - user_gift_card_pin
        - type: string
          enum:
            - user_card_network
        - type: string
          enum:
            - user_full_name
        - type: string
          enum:
            - user_email_address
        - type: string
          enum:
            - user_phone_number
        - type: string
          enum:
            - user_phone_number_country_code
        - type: object
          required:
            - user_country
          properties:
            user_country:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: object
          required:
            - user_currency
          properties:
            user_currency:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_crypto_currency_network
        - type: string
          enum:
            - user_billing_name
        - type: string
          enum:
            - user_address_line1
        - type: string
          enum:
            - user_address_line2
        - type: string
          enum:
            - user_address_city
        - type: string
          enum:
            - user_address_pincode
        - type: string
          enum:
            - user_address_state
        - type: object
          required:
            - user_address_country
          properties:
            user_address_country:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_shipping_name
        - type: string
          enum:
            - user_shipping_address_line1
        - type: string
          enum:
            - user_shipping_address_line2
        - type: string
          enum:
            - user_shipping_address_city
        - type: string
          enum:
            - user_shipping_address_pincode
        - type: string
          enum:
            - user_shipping_address_state
        - type: object
          required:
            - user_shipping_address_country
          properties:
            user_shipping_address_country:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: object
          required:
            - user_document_type
          properties:
            user_document_type:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_social_security_number
        - type: string
          enum:
            - user_blik_code
        - type: string
          enum:
            - user_bank
        - type: object
          required:
            - user_bank_options
          properties:
            user_bank_options:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_bank_account_number
        - type: string
          enum:
            - user_source_bank_account_id
        - type: string
          enum:
            - user_destination_bank_account_id
        - type: string
          enum:
            - text
        - type: object
          required:
            - drop_down
          properties:
            drop_down:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_date_of_birth
        - type: string
          enum:
            - user_vpa_id
        - type: object
          required:
            - language_preference
          properties:
            language_preference:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_pix_key
        - type: string
          enum:
            - user_cpf
        - type: string
          enum:
            - user_cnpj
        - type: string
          enum:
            - user_iban
        - type: string
          enum:
            - user_bsb_number
        - type: string
          enum:
            - user_bank_sort_code
        - type: string
          enum:
            - user_bank_routing_number
        - type: object
          required:
            - user_bank_type
          properties:
            user_bank_type:
              type: object
              required:
                - options
              properties:
                options:
                  type: array
                  items:
                    type: string
        - type: string
          enum:
            - user_bank_account_holder_name
        - type: string
          enum:
            - user_msisdn
        - type: string
          enum:
            - user_client_identifier
        - type: string
          enum:
            - order_details_product_name
        - type: string
          enum:
            - user_branch_code
        - type: string
          enum:
            - user_bank_identifier
        - type: string
          enum:
            - user_pix_account_number
      description: Possible field type of required fields in payment_method_data
    CardDetailFromLocker:
      type: object
      required:
        - saved_to_locker
      properties:
        issuer_country:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        last4_digits:
          type: string
          example: '4242'
          nullable: true
        expiry_month:
          type: string
          example: '10'
          nullable: true
        expiry_year:
          type: string
          example: '25'
          nullable: true
        card_holder_name:
          type: string
          example: John Doe
          nullable: true
        card_fingerprint:
          type: string
          example: fingerprint_12345
          nullable: true
        nick_name:
          type: string
          example: Card
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_isin:
          type: string
          example: '4567890'
          nullable: true
        card_issuer:
          type: string
          example: Issuer Bank
          nullable: true
        card_type:
          type: string
          example: Credit
          nullable: true
        saved_to_locker:
          type: boolean
          example: true
    BankDebitDetailsPaymentMethod:
      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
    Bank:
      oneOf:
        - $ref: '#/components/schemas/AchBankTransfer'
        - $ref: '#/components/schemas/BacsBankTransfer'
        - $ref: '#/components/schemas/TrustlyBankTransfer'
        - $ref: '#/components/schemas/SepaBankTransfer'
        - $ref: '#/components/schemas/PixBankTransfer'
        - $ref: '#/components/schemas/OpenBanking'
      description: Deprecated - Use `BankTransfer` instead
    WalletPaymentMethodData:
      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'
    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
    SurchargeDetailsResponse:
      type: object
      required:
        - surcharge
        - display_surcharge_amount
        - display_tax_on_surcharge_amount
        - display_total_surcharge_amount
      properties:
        surcharge:
          $ref: '#/components/schemas/SurchargeResponse'
        tax_on_surcharge:
          allOf:
            - $ref: '#/components/schemas/SurchargePercentage'
          nullable: true
        display_surcharge_amount:
          type: number
          format: double
          description: surcharge amount for this payment
        display_tax_on_surcharge_amount:
          type: number
          format: double
          description: tax on surcharge amount for this payment
        display_total_surcharge_amount:
          type: number
          format: double
          description: sum of display_surcharge_amount and display_tax_on_surcharge_amount
    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
    AchBankTransfer:
      type: object
      required:
        - bank_account_number
        - bank_routing_number
      properties:
        bank_name:
          type: string
          description: Bank name
          example: Deutsche Bank
          nullable: true
        bank_country_code:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        bank_city:
          type: string
          description: Bank city
          example: California
          nullable: true
        bank_account_number:
          type: string
          description: >-
            Bank account number is an unique identifier assigned by a bank to a
            customer.
          example: '000123456'
        bank_routing_number:
          type: string
          description: >-
            [9 digits] Routing number - used in USA for identifying a specific
            bank.
          example: '110000000'
    BacsBankTransfer:
      type: object
      required:
        - bank_account_number
        - bank_sort_code
      properties:
        bank_name:
          type: string
          description: Bank name
          example: Deutsche Bank
          nullable: true
        bank_country_code:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        bank_city:
          type: string
          description: Bank city
          example: California
          nullable: true
        bank_account_number:
          type: string
          description: >-
            Bank account number is an unique identifier assigned by a bank to a
            customer.
          example: '000123456'
        bank_sort_code:
          type: string
          description: >-
            [6 digits] Sort Code - used in UK and Ireland for identifying a bank
            and it's branches.
          example: 98-76-54
    TrustlyBankTransfer:
      type: object
      required:
        - iban
        - country_code
        - account_number
        - bank_number
      properties:
        iban:
          type: string
          description: >-
            International Bank Account Number (iban) - used in many countries
            for identifying a bank along with it's customer.
          example: token_12345
        country_code:
          $ref: '#/components/schemas/CountryAlpha2'
        account_number:
          type: string
          description: The account number, identifying the end-user's account in the bank.
          example: '69706212'
        bank_number:
          type: string
          description: >-
            The bank number identifying the end-user's bank in the given
            clearing house.
          example: '6112'
    SepaBankTransfer:
      type: object
      required:
        - iban
        - bic
      properties:
        bank_name:
          type: string
          description: Bank name
          example: Deutsche Bank
          nullable: true
        bank_country_code:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        bank_city:
          type: string
          description: Bank city
          example: California
          nullable: true
        iban:
          type: string
          description: >-
            International Bank Account Number (iban) - used in many countries
            for identifying a bank along with it's customer.
          example: DE89370400440532013000
        bic:
          type: string
          description: >-
            [8 / 11 digits] Bank Identifier Code (bic) / Swift Code - used in
            many countries for identifying a bank and it's branches
          example: HSBCGB2LXXX
    PixBankTransfer:
      type: object
      required:
        - bank_account_number
        - pix_key
        - emv
      properties:
        bank_name:
          type: string
          description: Bank name
          example: Deutsche Bank
          nullable: true
        bank_branch:
          type: string
          description: Bank branch
          example: '3707'
          nullable: true
        bank_account_number:
          type: string
          description: >-
            Bank account number is an unique identifier assigned by a bank to a
            customer.
          example: '000123456'
        pix_key:
          type: string
          description: Unique key for pix customer
          example: '000123456'
        tax_id:
          type: string
          description: Individual taxpayer identification number
          example: '000123456'
          nullable: true
        emv:
          type: string
          description: String formatted QR code for pix payout
          example: >-
            00020126580014br.gov.bcb.pix0114000123456785204000053039865802BR5925John
            Doe6009Sao Paulo61080540900062070503***63041D3D
    OpenBanking:
      type: object
      required:
        - account_holder_name
        - iban
      properties:
        account_holder_name:
          type: string
          description: Account holder name
          example: John Doe
        iban:
          type: string
          description: >-
            International Bank Account Number (iban) - used in many countries
            for identifying a bank along with it's customer.
          example: DE89370400440532013000
    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
    SurchargeResponse:
      oneOf:
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - fixed
            value:
              $ref: '#/components/schemas/MinorUnit'
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - rate
            value:
              $ref: '#/components/schemas/SurchargePercentage'
      discriminator:
        propertyName: type
    SurchargePercentage:
      type: object
      required:
        - percentage
      properties:
        percentage:
          type: number
          format: float
    MinorUnit:
      type: integer
      format: int64
      description: This Unit struct represents MinorUnit in which core amount works
  securitySchemes:
    publishable_key__client_secret:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Format:
        `publishable-key=<publishable-key>,client-secret=<client-secret>`


        Publishable keys are a type of keys that can be public and have limited
        scope of usage. Client Secret provide temporary access to singular data,
        such as access to a single customer object for a short period of time.
        This authentication scheme is used by the SDK.

````