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

# Payments - Get

> Retrieves a Payment. This API can also be used to get the status of a previously initiated payment or next action for an ongoing payment



## OpenAPI

````yaml get /v2/payments/{id}
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:
  /v2/payments/{id}:
    get:
      tags:
        - Payments
      summary: Payments - Get
      description: >-
        Retrieves a Payment. This API can also be used to get the status of a
        previously initiated payment or next action for an ongoing payment
      operationId: Retrieve a Payment
      parameters:
        - name: id
          in: path
          description: The global payment id
          required: true
          schema:
            type: string
        - name: force_sync
          in: query
          description: >-
            A boolean to indicate whether to force sync the payment status.
            Value can be true or false
          required: true
          schema:
            $ref: '#/components/schemas/ForceSync'
      responses:
        '200':
          description: Gets the payment with final status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsResponse'
        '404':
          description: No payment found with the given id
      security:
        - api_key: []
components:
  schemas:
    ForceSync:
      type: string
      enum:
        - 'true'
        - 'false'
    PaymentsResponse:
      type: object
      description: >-
        Response for Payment Intent Confirm

        Few fields should be expandable, we need not return these in the normal
        response

        But when explicitly requested for expanded objects, these can be
        returned

        For example

        shipping, billing, customer, payment_method
      required:
        - id
        - status
        - amount
        - customer_id
        - processor_merchant_id
        - created
        - modified_at
      properties:
        id:
          type: string
          description: >-
            Unique identifier for the payment. This ensures idempotency for
            multiple payments

            that have been done by a single merchant.
          example: 0a_pay_01926c58bc6e77c09e809964e72af8c8
          maxLength: 64
          minLength: 32
        status:
          $ref: '#/components/schemas/IntentStatus'
        amount:
          $ref: '#/components/schemas/PaymentAmountDetailsResponse'
        customer_id:
          type: string
          description: The identifier for the customer
          example: 0a_cus_01926c58bc6e77c09e809964e72af8c8
          maxLength: 64
          minLength: 32
        processor_merchant_id:
          type: string
          description: >-
            The identifier for the processor merchant account. In
            platform-connected setups,

            this is the connected merchant ID. For standard merchants, this is
            same as merchant_id.
          example: merchant_1689512302
          maxLength: 255
        initiator:
          allOf:
            - $ref: '#/components/schemas/Initiator'
          nullable: true
        connector:
          type: string
          description: The connector used for the payment
          example: stripe
          nullable: true
        created:
          type: string
          format: date-time
          description: Time when the payment was created
          example: '2022-09-10T10:11:12Z'
        modified_at:
          type: string
          format: date-time
          description: Time when the payment was last modified
          example: '2022-09-10T10:11:12Z'
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodDataResponseWithBilling'
          nullable: true
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
          nullable: true
        payment_method_subtype:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        connector_transaction_id:
          type: string
          description: A unique identifier for a payment provided by the connector
          example: 993672945374576J
          nullable: true
        connector_reference_id:
          type: string
          description: reference(Identifier) to the payment at connector side
          example: 993672945374576J
          nullable: true
        merchant_connector_id:
          type: string
          description: >-
            Identifier of the connector ( merchant connector account ) which was
            chosen to make the payment
          nullable: true
        browser_info:
          allOf:
            - $ref: '#/components/schemas/BrowserInformation'
          nullable: true
        error:
          allOf:
            - $ref: '#/components/schemas/ErrorDetails'
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/PaymentAttemptResponse'
          description: List of payment attempts associated with payment intent
          nullable: true
        connector_token_details:
          allOf:
            - $ref: '#/components/schemas/ConnectorTokenDetails'
          nullable: true
        payment_method_id:
          type: string
          description: The payment_method_id associated with the payment
          nullable: true
        next_action:
          allOf:
            - $ref: '#/components/schemas/NextActionData'
          nullable: true
        return_url:
          type: string
          description: >-
            The url to which user must be redirected to after completion of the
            purchase
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: no_three_ds
          nullable: true
        authentication_type_applied:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: no_three_ds
          nullable: true
        is_iframe_redirection_enabled:
          type: boolean
          description: Indicates if the redirection has to open in the iframe
          nullable: true
        merchant_reference_id:
          type: string
          description: >-
            Unique identifier for the payment. This ensures idempotency for
            multiple payments

            that have been done by a single merchant.
          example: pay_mbabizu24mvu3mela5njyhpit4
          nullable: true
          maxLength: 30
          minLength: 30
        raw_connector_response:
          type: string
          description: >-
            Stringified connector raw response body. Only returned if
            `return_raw_connector_response` is true
          nullable: true
        feature_metadata:
          allOf:
            - $ref: '#/components/schemas/FeatureMetadata'
          nullable: true
        metadata:
          type: object
          description: >-
            You can specify up to 50 keys, with key names up to 40 characters
            long and values up to 500 characters long. Metadata is useful for
            storing additional, structured information on an object.
          nullable: true
    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
    PaymentAmountDetailsResponse:
      type: object
      required:
        - currency
        - external_tax_calculation
        - surcharge_calculation
        - net_amount
        - amount_capturable
      properties:
        order_amount:
          type: integer
          format: int64
          description: >-
            The payment amount. Amount for the payment in the lowest
            denomination of the currency, (i.e) in cents for USD denomination,
            in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and
            1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the
            Decimal and Non-Decimal
            Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)
          example: 6540
          minimum: 0
        currency:
          $ref: '#/components/schemas/Currency'
        shipping_cost:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        order_tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        external_tax_calculation:
          $ref: '#/components/schemas/TaxCalculationOverride'
        surcharge_calculation:
          $ref: '#/components/schemas/SurchargeCalculationOverride'
        surcharge_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        tax_on_surcharge:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        net_amount:
          $ref: '#/components/schemas/MinorUnit'
        amount_to_capture:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        amount_capturable:
          $ref: '#/components/schemas/MinorUnit'
        amount_captured:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    Initiator:
      type: string
      description: >-
        Represents the initiator context in platform-connected setups

        Used in payment/refund/dispute responses to indicate who initiated the
        operation

        None indicates a standard merchant flow / JWT flow / Admin flow or
        insufficient information
      enum:
        - platform
        - connected
    PaymentMethodDataResponseWithBilling:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentMethodDataResponse'
          nullable: true
        - type: object
          properties:
            billing:
              allOf:
                - $ref: '#/components/schemas/Address'
              nullable: true
    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
    BrowserInformation:
      type: object
      description: Browser information to be used for 3DS 2.0
      properties:
        color_depth:
          type: integer
          format: int32
          description: Color depth supported by the browser
          nullable: true
          minimum: 0
        java_enabled:
          type: boolean
          description: Whether java is enabled in the browser
          nullable: true
        java_script_enabled:
          type: boolean
          description: Whether javascript is enabled in the browser
          nullable: true
        language:
          type: string
          description: Language supported
          nullable: true
        screen_height:
          type: integer
          format: int32
          description: The screen height in pixels
          nullable: true
          minimum: 0
        screen_width:
          type: integer
          format: int32
          description: The screen width in pixels
          nullable: true
          minimum: 0
        time_zone:
          type: integer
          format: int32
          description: Time zone of the client
          nullable: true
        ip_address:
          type: string
          description: Ip address of the client
          nullable: true
        accept_header:
          type: string
          description: List of headers that are accepted
          example: >-
            text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
          nullable: true
        user_agent:
          type: string
          description: User-agent of the browser
          nullable: true
        os_type:
          type: string
          description: The os type of the client device
          nullable: true
        os_version:
          type: string
          description: The os version of the client device
          nullable: true
        device_model:
          type: string
          description: The device model of the client
          nullable: true
        accept_language:
          type: string
          description: Accept-language of the browser
          nullable: true
        referer:
          type: string
          description: Identifier of the source that initiated the request.
          nullable: true
    ErrorDetails:
      type: object
      description: Error details for the payment
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: The error code
          example: card_declined
        message:
          type: string
          description: The error message
          example: The card was declined.
        reason:
          type: string
          description: The detailed error reason that was returned by the connector.
          example: The card was declined.
          nullable: true
        unified_code:
          type: string
          description: |-
            The unified error code across all connectors.
            This can be relied upon for taking decisions based on the error.
          example: card_declined
          nullable: true
        unified_message:
          type: string
          description: >-
            The unified error message across all connectors.

            If there is a translation available, this will have the translated
            message
          example: The card was declined.
          nullable: true
        network_advice_code:
          type: string
          description: >-
            This field can be returned for both approved and refused Mastercard
            payments.

            This code provides additional information about the type of
            transaction or the reason why the payment failed.

            If the payment failed, the network advice code gives guidance on if
            and when you can retry the payment.
          example: '01'
          nullable: true
        network_decline_code:
          type: string
          description: >-
            For card errors resulting from a card issuer decline, a brand
            specific 2, 3, or 4 digit code which indicates the reason the
            authorization failed.
          example: '05'
          nullable: true
        network_error_message:
          type: string
          description: >-
            A string indicating how to proceed with an network error if payment
            gateway provide one. This is used to understand the network error
            code better.
          example: Do not retry
          nullable: true
    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
    PaymentAttemptResponse:
      type: object
      required:
        - id
        - status
        - amount
        - authentication_type
        - created_at
        - modified_at
        - connector_payment_id
      properties:
        id:
          type: string
          description: The global identifier for the payment attempt
        status:
          $ref: '#/components/schemas/AttemptStatus'
        amount:
          $ref: '#/components/schemas/PaymentAttemptAmountDetails'
        connector:
          type: string
          description: Name of the connector that was used for the payment attempt.
          example: stripe
          nullable: true
        error:
          allOf:
            - $ref: '#/components/schemas/ErrorDetails'
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: three_ds
        created_at:
          type: string
          format: date-time
          description: Date and time of Payment attempt creation
        modified_at:
          type: string
          format: date-time
          description: Time at which the payment attempt was last modified
        cancellation_reason:
          type: string
          description: >-
            The reason for the cancellation of the payment attempt. Some
            connectors will have strict rules regarding the values this can have

            Cancellation reason will be validated at the connector level when
            building the request
          nullable: true
        payment_token:
          type: string
          description: >-
            Payment token is the token used for temporary use in case the
            payment method is stored in vault
          example: 187282ab-40ef-47a9-9206-5099ba31e432
          nullable: true
        connector_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadata'
          nullable: true
        payment_experience:
          allOf:
            - $ref: '#/components/schemas/PaymentExperience'
          nullable: true
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
          nullable: true
        connector_reference_id:
          type: string
          description: reference(Identifier) to the payment at connector side
          example: 993672945374576J
          nullable: true
        payment_method_subtype:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        connector_payment_id:
          type: string
          description: A unique identifier for a payment provided by the connector
        payment_method_id:
          type: string
          description: Identifier for Payment Method used for the payment attempt
          example: 0a_pm_01926c58bc6e77c09e809964e72af8c8
          nullable: true
        client_source:
          type: string
          description: >-
            Value passed in X-CLIENT-SOURCE header during payments confirm
            request by the client
          nullable: true
        client_version:
          type: string
          description: >-
            Value passed in X-CLIENT-VERSION header during payments confirm
            request by the client
          nullable: true
        feature_metadata:
          allOf:
            - $ref: '#/components/schemas/PaymentAttemptFeatureMetadata'
          nullable: true
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodDataResponseWithBilling'
          nullable: true
    ConnectorTokenDetails:
      type: object
      description: >-
        Token information that can be used to initiate transactions by the
        merchant.
      required:
        - token
      properties:
        token:
          type: string
          description: >-
            A token that can be used to make payments directly with the
            connector.
          example: pm_9UhMqBMEOooRIvJFFdeW
        connector_token_request_reference_id:
          type: string
          description: The reference id sent to the connector when creating the token
          nullable: true
    NextActionData:
      oneOf:
        - type: object
          description: Contains the url for redirection flow
          required:
            - redirect_to_url
            - type
          properties:
            redirect_to_url:
              type: string
              example: https://example.com/redirect
            type:
              type: string
              enum:
                - redirect_to_url
        - type: object
          description: >-
            Informs the next steps for bank transfer and also contains the
            charges details (ex: amount received, amount charged etc)
          required:
            - bank_transfer_steps_and_charges_details
            - type
          properties:
            bank_transfer_steps_and_charges_details:
              $ref: '#/components/schemas/BankTransferNextStepsData'
            type:
              type: string
              enum:
                - display_bank_transfer_information
        - type: object
          description: Contains third party sdk session token response
          required:
            - type
          properties:
            session_token:
              allOf:
                - $ref: '#/components/schemas/SessionToken'
              nullable: true
            type:
              type: string
              enum:
                - third_party_sdk_session_token
        - type: object
          description: Contains url for Qr code image, this qr code has to be shown in sdk
          required:
            - image_data_url
            - qr_code_url
            - type
          properties:
            image_data_url:
              type: string
              description: Hyperswitch generated image data source url
            display_to_timestamp:
              type: integer
              format: int64
              nullable: true
            qr_code_url:
              type: string
              description: The url for Qr code given by the connector
            display_text:
              type: string
              nullable: true
            border_color:
              type: string
              nullable: true
            raw_qr_data:
              type: string
              description: >-
                The raw QR code data (EMV copy and paste) used for Brazilian
                payment methods like Pix
              nullable: true
            type:
              type: string
              enum:
                - qr_code_information
        - type: object
          description: Contains url to fetch Qr code data
          required:
            - qr_code_fetch_url
            - type
          properties:
            qr_code_fetch_url:
              type: string
            type:
              type: string
              enum:
                - fetch_qr_code_information
        - type: object
          required:
            - sdk_uri
            - display_from_timestamp
            - type
          properties:
            sdk_uri:
              type: string
            display_from_timestamp:
              type: integer
            display_to_timestamp:
              type: integer
              nullable: true
            poll_config:
              allOf:
                - $ref: '#/components/schemas/PollConfig'
              nullable: true
            type:
              type: string
              enum:
                - invoke_upi_intent_sdk
        - type: object
          required:
            - qr_code_url
            - display_from_timestamp
            - type
          properties:
            qr_code_url:
              type: string
            display_from_timestamp:
              type: integer
            display_to_timestamp:
              type: integer
              nullable: true
            poll_config:
              allOf:
                - $ref: '#/components/schemas/PollConfig'
              nullable: true
            type:
              type: string
              enum:
                - invoke_upi_qr_flow
        - type: object
          description: Contains the download url and the reference number for transaction
          required:
            - voucher_details
            - type
          properties:
            voucher_details:
              type: string
            type:
              type: string
              enum:
                - display_voucher_information
        - type: object
          description: >-
            Contains duration for displaying a wait screen, wait screen with
            timer is displayed by sdk
          required:
            - display_from_timestamp
            - type
          properties:
            display_from_timestamp:
              type: integer
            display_to_timestamp:
              type: integer
              nullable: true
            poll_config:
              allOf:
                - $ref: '#/components/schemas/PollConfig'
              nullable: true
            type:
              type: string
              enum:
                - wait_screen_information
        - type: object
          description: >-
            Contains the information regarding three_ds_method_data submission,
            three_ds authentication, and authorization flows
          required:
            - three_ds_data
            - type
          properties:
            three_ds_data:
              $ref: '#/components/schemas/ThreeDsData'
            type:
              type: string
              enum:
                - three_ds_invoke
        - type: object
          required:
            - next_action_data
            - type
          properties:
            next_action_data:
              $ref: '#/components/schemas/SdkNextActionData'
            type:
              type: string
              enum:
                - invoke_sdk_client
        - type: object
          description: Contains consent to collect otp for mobile payment
          required:
            - consent_data_required
            - type
          properties:
            consent_data_required:
              $ref: '#/components/schemas/MobilePaymentConsent'
            type:
              type: string
              enum:
                - collect_otp
        - type: object
          description: Contains data required to invoke hidden iframe
          required:
            - iframe_data
            - type
          properties:
            iframe_data:
              $ref: '#/components/schemas/IframeData'
            type:
              type: string
              enum:
                - invoke_hidden_iframe
        - type: object
          description: >-
            The data required to trigger the DDC (Device Data Collection) flow
            by rendering the provided URL in a hidden iframe.
          required:
            - ddc_data
            - type
          properties:
            ddc_data:
              $ref: '#/components/schemas/DDCData'
            type:
              type: string
              enum:
                - invoke_ddc
      discriminator:
        propertyName: type
    AuthenticationType:
      type: string
      description: >-
        Specifies the type of cardholder authentication to be applied for a
        payment.


        - `ThreeDs`: Requests 3D Secure (3DS) authentication. If the card is
        enrolled, 3DS authentication will be activated, potentially shifting
        chargeback liability to the issuer.

        - `NoThreeDs`: Indicates that 3D Secure authentication should not be
        performed. The liability for chargebacks typically remains with the
        merchant. This is often the default if not specified.


        Note: The actual authentication behavior can also be influenced by
        merchant configuration and specific connector defaults. Some connectors
        might still enforce 3DS or bypass it regardless of this parameter.
      enum:
        - three_ds
        - no_three_ds
    FeatureMetadata:
      type: object
      description: additional data that might be required by hyperswitch
      properties:
        redirect_response:
          allOf:
            - $ref: '#/components/schemas/RedirectResponse'
          nullable: true
        search_tags:
          type: array
          items:
            type: string
          description: Additional tags to be used for global search
          nullable: true
        apple_pay_recurring_details:
          allOf:
            - $ref: '#/components/schemas/ApplePayRecurringDetails'
          nullable: true
        revenue_recovery:
          allOf:
            - $ref: '#/components/schemas/PaymentRevenueRecoveryMetadata'
          nullable: true
        pix_additional_details:
          allOf:
            - $ref: '#/components/schemas/PixAdditionalDetails'
          nullable: true
        boleto_additional_details:
          allOf:
            - $ref: '#/components/schemas/BoletoAdditionalDetails'
          nullable: true
        pix_automatico_additional_details:
          allOf:
            - $ref: '#/components/schemas/PixAutomaticoAdditionalDetails'
          nullable: true
        finix_additional_details:
          allOf:
            - $ref: '#/components/schemas/FinixAdditionalDetails'
          nullable: true
    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
    MinorUnit:
      type: integer
      format: int64
      description: This Unit struct represents MinorUnit in which core amount works
    TaxCalculationOverride:
      type: string
      enum:
        - skip
        - calculate
    SurchargeCalculationOverride:
      type: string
      enum:
        - skip
        - calculate
    PaymentMethodDataResponse:
      oneOf:
        - type: object
          required:
            - card
          properties:
            card:
              $ref: '#/components/schemas/CardResponse'
        - type: object
          required:
            - bank_transfer
          properties:
            bank_transfer:
              $ref: '#/components/schemas/BankTransferResponse'
        - type: object
          required:
            - wallet
          properties:
            wallet:
              $ref: '#/components/schemas/WalletResponse'
        - type: object
          required:
            - pay_later
          properties:
            pay_later:
              $ref: '#/components/schemas/PaylaterResponse'
        - type: object
          required:
            - bank_redirect
          properties:
            bank_redirect:
              $ref: '#/components/schemas/BankRedirectResponse'
        - type: object
          required:
            - crypto
          properties:
            crypto:
              $ref: '#/components/schemas/CryptoResponse'
        - type: object
          required:
            - bank_debit
          properties:
            bank_debit:
              $ref: '#/components/schemas/BankDebitResponse'
        - type: object
          required:
            - mandate_payment
          properties:
            mandate_payment:
              type: object
        - type: object
          required:
            - reward
          properties:
            reward:
              type: object
        - type: object
          required:
            - real_time_payment
          properties:
            real_time_payment:
              $ref: '#/components/schemas/RealTimePaymentDataResponse'
        - type: object
          required:
            - upi
          properties:
            upi:
              $ref: '#/components/schemas/UpiResponse'
        - type: object
          required:
            - voucher
          properties:
            voucher:
              $ref: '#/components/schemas/VoucherResponse'
        - type: object
          required:
            - gift_card
          properties:
            gift_card:
              $ref: '#/components/schemas/GiftCardResponse'
        - type: object
          required:
            - card_redirect
          properties:
            card_redirect:
              $ref: '#/components/schemas/CardRedirectResponse'
        - type: object
          required:
            - card_token
          properties:
            card_token:
              $ref: '#/components/schemas/CardTokenResponse'
        - type: object
          required:
            - open_banking
          properties:
            open_banking:
              $ref: '#/components/schemas/OpenBankingResponse'
        - type: object
          required:
            - mobile_payment
          properties:
            mobile_payment:
              $ref: '#/components/schemas/MobilePaymentResponse'
        - type: object
          required:
            - network_token
          properties:
            network_token:
              $ref: '#/components/schemas/NetworkTokenResponse'
    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
    AttemptStatus:
      type: string
      description: The status of the attempt
      enum:
        - started
        - authentication_failed
        - router_declined
        - authentication_pending
        - authentication_successful
        - authorized
        - authorization_failed
        - charged
        - authorizing
        - cod_initiated
        - voided
        - voided_post_charge
        - void_initiated
        - capture_initiated
        - capture_failed
        - void_failed
        - auto_refunded
        - partial_charged
        - partially_authorized
        - partial_charged_and_chargeable
        - unresolved
        - pending
        - failure
        - payment_method_awaited
        - confirmation_awaited
        - device_data_collection_pending
        - integrity_failure
        - expired
        - capture_review
    PaymentAttemptAmountDetails:
      type: object
      required:
        - net_amount
        - amount_capturable
      properties:
        net_amount:
          $ref: '#/components/schemas/MinorUnit'
        amount_to_capture:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        surcharge_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        tax_on_surcharge:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        amount_capturable:
          $ref: '#/components/schemas/MinorUnit'
        shipping_cost:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        order_tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        amount_captured:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    ConnectorMetadata:
      type: object
      description: >-
        Some connectors like Apple Pay, Airwallex and Noon might require some
        additional information, find specific details in the child attributes
        below.
      properties:
        apple_pay:
          allOf:
            - $ref: '#/components/schemas/ApplepayConnectorMetadataRequest'
          nullable: true
        airwallex:
          allOf:
            - $ref: '#/components/schemas/AirwallexData'
          nullable: true
        noon:
          allOf:
            - $ref: '#/components/schemas/NoonData'
          nullable: true
        braintree:
          allOf:
            - $ref: '#/components/schemas/BraintreeData'
          nullable: true
        adyen:
          allOf:
            - $ref: '#/components/schemas/AdyenConnectorMetadata'
          nullable: true
        peachpayments:
          allOf:
            - $ref: '#/components/schemas/PeachpaymentsData'
          nullable: true
        santander:
          allOf:
            - $ref: '#/components/schemas/SantanderConnectorMetadataData'
          nullable: true
    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
    PaymentAttemptFeatureMetadata:
      type: object
      properties:
        revenue_recovery:
          allOf:
            - $ref: '#/components/schemas/PaymentAttemptRevenueRecoveryData'
          nullable: true
    BankTransferNextStepsData:
      allOf:
        - $ref: '#/components/schemas/BankTransferInstructions'
        - type: object
          properties:
            receiver:
              allOf:
                - $ref: '#/components/schemas/ReceiverDetails'
              nullable: true
    SessionToken:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/GpaySessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - google_pay
        - allOf:
            - $ref: '#/components/schemas/SamsungPaySessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - samsung_pay
        - allOf:
            - $ref: '#/components/schemas/KlarnaSessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - klarna
        - allOf:
            - $ref: '#/components/schemas/PaypalSessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - paypal
        - allOf:
            - $ref: '#/components/schemas/ApplepaySessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - apple_pay
        - allOf:
            - $ref: '#/components/schemas/OpenBankingSessionToken'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - open_banking
        - allOf:
            - $ref: '#/components/schemas/PazeSessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - paze
        - allOf:
            - $ref: '#/components/schemas/ClickToPaySessionResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - click_to_pay
        - allOf:
            - $ref: '#/components/schemas/AmazonPaySessionTokenResponse'
            - type: object
              required:
                - wallet_name
              properties:
                wallet_name:
                  type: string
                  enum:
                    - amazon_pay
        - type: object
          required:
            - wallet_name
          properties:
            wallet_name:
              type: string
              enum:
                - no_session_token_received
      discriminator:
        propertyName: wallet_name
    PollConfig:
      type: object
      required:
        - delay_in_secs
        - frequency
      properties:
        delay_in_secs:
          type: integer
          format: int32
          description: Interval of the poll
          minimum: 0
        frequency:
          type: integer
          format: int32
          description: Frequency of the poll
          minimum: 0
    ThreeDsData:
      type: object
      required:
        - three_ds_authentication_url
        - three_ds_authorize_url
        - three_ds_method_details
        - poll_config
      properties:
        three_ds_authentication_url:
          type: string
          description: ThreeDS authentication url - to initiate authentication
        three_ds_authorize_url:
          type: string
          description: >-
            ThreeDS authorize url - to complete the payment authorization after
            authentication
        three_ds_method_details:
          $ref: '#/components/schemas/ThreeDsMethodData'
        poll_config:
          $ref: '#/components/schemas/PollConfigResponse'
        message_version:
          type: string
          description: Message Version
          nullable: true
        directory_server_id:
          type: string
          description: Directory Server ID
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        three_ds_connector:
          type: string
          description: Preferred 3ds Connector
          nullable: true
    SdkNextActionData:
      type: object
      required:
        - next_action
      properties:
        next_action:
          $ref: '#/components/schemas/NextActionCall'
        order_id:
          type: string
          nullable: true
    MobilePaymentConsent:
      type: string
      enum:
        - consent_required
        - consent_not_required
        - consent_optional
    IframeData:
      oneOf:
        - type: object
          required:
            - three_ds_method_url
            - three_ds_method_data_submission
            - directory_server_id
            - method_key
          properties:
            three_ds_method_url:
              type: string
              description: ThreeDS method url
            three_ds_method_data_submission:
              type: boolean
              description: Whether ThreeDS method data submission is required
            three_ds_method_data:
              type: string
              description: ThreeDS method data
              nullable: true
            directory_server_id:
              type: string
              description: ThreeDS Server ID
            message_version:
              type: string
              description: ThreeDS Protocol version
              nullable: true
            method_key:
              type: string
              enum:
                - threeDSMethodData
      discriminator:
        propertyName: method_key
    DDCData:
      type: object
      required:
        - iframe_url
      properties:
        iframe_url:
          type: string
        timeout_ms:
          type: integer
          format: int32
          nullable: true
    RedirectResponse:
      type: object
      properties:
        param:
          type: string
          nullable: true
        json_payload:
          type: object
          nullable: true
    ApplePayRecurringDetails:
      type: object
      required:
        - payment_description
        - regular_billing
        - management_url
      properties:
        payment_description:
          type: string
          description: >-
            A description of the recurring payment that Apple Pay displays to
            the user in the payment sheet
        regular_billing:
          $ref: '#/components/schemas/ApplePayRegularBillingDetails'
        billing_agreement:
          type: string
          description: >-
            A localized billing agreement that the payment sheet displays to the
            user before the user authorizes the payment
          nullable: true
        management_url:
          type: string
          description: >-
            A URL to a web page where the user can update or delete the payment
            method for the recurring payment
          example: https://hyperswitch.io
    PaymentRevenueRecoveryMetadata:
      type: object
      required:
        - total_retry_count
        - billing_connector_id
        - active_attempt_payment_connector_id
        - billing_connector_payment_details
        - payment_method_type
        - payment_method_subtype
        - connector
        - billing_connector_payment_method_details
      properties:
        total_retry_count:
          type: integer
          format: int32
          description: >-
            Total number of billing connector + recovery retries for a payment
            intent.
          example: '1'
          minimum: 0
        payment_connector_transmission:
          allOf:
            - $ref: '#/components/schemas/PaymentConnectorTransmission'
          nullable: true
        billing_connector_id:
          type: string
          description: Billing Connector Id to update the invoices
          example: mca_1234567890
        active_attempt_payment_connector_id:
          type: string
          description: Payment Connector Id to retry the payments
          example: mca_1234567890
        billing_connector_payment_details:
          $ref: '#/components/schemas/BillingConnectorPaymentDetails'
        payment_method_type:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_subtype:
          $ref: '#/components/schemas/PaymentMethodType'
        connector:
          $ref: '#/components/schemas/Connector'
        billing_connector_payment_method_details:
          $ref: '#/components/schemas/BillingConnectorPaymentMethodDetails'
        invoice_next_billing_time:
          type: string
          format: date-time
          description: Invoice Next billing time
          nullable: true
        invoice_billing_started_at_time:
          type: string
          format: date-time
          description: Invoice Next billing time
          nullable: true
        first_payment_attempt_pg_error_code:
          type: string
          description: First Payment Attempt Payment Gateway Error Code
          example: card_declined
          nullable: true
        first_payment_attempt_network_decline_code:
          type: string
          description: First Payment Attempt Network Error Code
          example: '05'
          nullable: true
        first_payment_attempt_network_advice_code:
          type: string
          description: First Payment Attempt Network Advice Code
          example: '02'
          nullable: true
    PixAdditionalDetails:
      oneOf:
        - type: object
          required:
            - immediate
          properties:
            immediate:
              $ref: '#/components/schemas/ImmediateExpirationTime'
        - type: object
          required:
            - scheduled
          properties:
            scheduled:
              $ref: '#/components/schemas/ScheduledExpirationTime'
    BoletoAdditionalDetails:
      type: object
      properties:
        due_date:
          type: string
          description: Due Date for the Boleto
          example: '2026-12-31'
          nullable: true
        document_kind:
          allOf:
            - $ref: '#/components/schemas/BoletoDocumentKind'
          nullable: true
        payment_type:
          allOf:
            - $ref: '#/components/schemas/BoletoPaymentType'
          nullable: true
        covenant_code:
          type: string
          example: '3568253'
          nullable: true
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
        discount_rules:
          allOf:
            - $ref: '#/components/schemas/SantanderPaymentDiscountRules'
          nullable: true
        penalties:
          allOf:
            - $ref: '#/components/schemas/PenaltyRules'
          nullable: true
        collection_actions:
          allOf:
            - $ref: '#/components/schemas/CollectionActions'
          nullable: true
        payment_constraints:
          allOf:
            - $ref: '#/components/schemas/BoletoPaymentTypeConstraints'
          nullable: true
        beneficiary:
          allOf:
            - $ref: '#/components/schemas/BeneficiaryDetails'
          nullable: true
    PixAutomaticoAdditionalDetails:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoPushData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_push
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoQrData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_qr
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoMitData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_mit
      description: >-
        Represents the specific data for Santander Pix Automatico (recurring PIX
        payments)

        Split into CIT (Customer Initiated Transaction) and MIT (Merchant
        Initiated Transaction) variants
      discriminator:
        propertyName: type
    FinixAdditionalDetails:
      type: object
      properties:
        fraud_session_id:
          type: string
          description: The fraud session ID used for Finix fraud detection
          example: 1234567890abcdef
          nullable: true
    CardResponse:
      type: object
      properties:
        last4:
          type: string
          nullable: true
        card_type:
          type: string
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_issuer:
          type: string
          nullable: true
        card_issuing_country:
          type: string
          nullable: true
        card_isin:
          type: string
          nullable: true
        card_extended_bin:
          type: string
          nullable: true
        card_exp_month:
          type: string
          nullable: true
        card_exp_year:
          type: string
          nullable: true
        card_holder_name:
          type: string
          nullable: true
        payment_checks:
          nullable: true
        authentication_data:
          nullable: true
        auth_code:
          type: string
          nullable: true
    BankTransferResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/BankTransferAdditionalData'
          nullable: true
        - type: object
    WalletResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/WalletResponseData'
          nullable: true
        - type: object
    PaylaterResponse:
      type: object
      properties:
        klarna_sdk:
          allOf:
            - $ref: '#/components/schemas/KlarnaSdkPaymentMethodResponse'
          nullable: true
    BankRedirectResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/BankRedirectDetails'
          nullable: true
        - type: object
          properties:
            bank_name:
              allOf:
                - $ref: '#/components/schemas/BankNames'
              nullable: true
            interac:
              allOf:
                - $ref: '#/components/schemas/InteracPaymentMethod'
              nullable: true
    CryptoResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/CryptoData'
          nullable: true
        - type: object
    BankDebitResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/BankDebitAdditionalData'
          nullable: true
        - type: object
    RealTimePaymentDataResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/RealTimePaymentData'
          nullable: true
        - type: object
    UpiResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/UpiAdditionalData'
          nullable: true
        - type: object
    VoucherResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/VoucherData'
          nullable: true
        - type: object
    GiftCardResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/GiftCardAdditionalData'
          nullable: true
        - type: object
    CardRedirectResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/CardRedirectData'
          nullable: true
        - type: object
    CardTokenResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/CardTokenAdditionalData'
          nullable: true
        - type: object
    OpenBankingResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/OpenBankingData'
          nullable: true
        - type: object
    MobilePaymentResponse:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/MobilePaymentData'
          nullable: true
        - type: object
    NetworkTokenResponse:
      type: object
      required:
        - payment_method_data
      properties:
        payment_method_data:
          $ref: '#/components/schemas/NetworkTokenDetailsPaymentMethod'
    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
    ApplepayConnectorMetadataRequest:
      type: object
      properties:
        session_token_data:
          allOf:
            - $ref: '#/components/schemas/SessionTokenInfo'
          nullable: true
    AirwallexData:
      type: object
      properties:
        payload:
          type: string
          description: payload required by airwallex
          nullable: true
    NoonData:
      type: object
      properties:
        order_category:
          type: string
          description: >-
            Information about the order category that merchant wants to specify
            at connector level. (e.g. In Noon Payments it can take values like
            "pay", "food", or any other custom string set by the merchant in
            Noon's Dashboard)
          nullable: true
    BraintreeData:
      type: object
      required:
        - merchant_account_id
        - merchant_config_currency
      properties:
        merchant_account_id:
          type: string
          description: >-
            Information about the merchant_account_id that merchant wants to
            specify at connector level.
        merchant_config_currency:
          type: string
          description: >-
            Information about the merchant_config_currency that merchant wants
            to specify at connector level.
    AdyenConnectorMetadata:
      type: object
      required:
        - testing
      properties:
        testing:
          $ref: '#/components/schemas/AdyenTestingData'
    PeachpaymentsData:
      type: object
      properties:
        rrn:
          type: string
          description: >-
            A numeric reference number supplied by the system retaining the
            original source information and used to assist in locating that
            information or a copy thereof.
          nullable: true
    SantanderConnectorMetadataData:
      type: object
      description: >-
        Represents the connector-specific metadata for Santander payments,
        including boleto data and related rules.
      properties:
        boleto:
          allOf:
            - $ref: '#/components/schemas/SantanderBoletoData'
          nullable: true
    PaymentAttemptRevenueRecoveryData:
      type: object
      properties:
        attempt_triggered_by:
          allOf:
            - $ref: '#/components/schemas/TriggeredBy'
          nullable: true
        charge_id:
          type: string
          example: ch_123abc456def789ghi012klmn
          nullable: true
    BankTransferInstructions:
      oneOf:
        - type: object
          required:
            - doku_bank_transfer_instructions
          properties:
            doku_bank_transfer_instructions:
              $ref: '#/components/schemas/DokuBankTransferInstructions'
        - type: object
          required:
            - ach_credit_transfer
          properties:
            ach_credit_transfer:
              $ref: '#/components/schemas/AchTransfer'
        - type: object
          required:
            - sepa_bank_instructions
          properties:
            sepa_bank_instructions:
              $ref: '#/components/schemas/SepaBankTransferInstructions'
        - type: object
          required:
            - bacs_bank_instructions
          properties:
            bacs_bank_instructions:
              $ref: '#/components/schemas/BacsBankTransferInstructions'
        - type: object
          required:
            - multibanco
          properties:
            multibanco:
              $ref: '#/components/schemas/MultibancoTransferInstructions'
    ReceiverDetails:
      type: object
      required:
        - amount_received
      properties:
        amount_received:
          type: integer
          format: int64
          description: The amount received by receiver
        amount_charged:
          type: integer
          format: int64
          description: The amount charged by ACH
          nullable: true
        amount_remaining:
          type: integer
          format: int64
          description: The amount remaining to be sent via ACH
          nullable: true
    GpaySessionTokenResponse:
      oneOf:
        - $ref: '#/components/schemas/GooglePayThirdPartySdk'
        - $ref: '#/components/schemas/GooglePaySessionResponse'
    SamsungPaySessionTokenResponse:
      type: object
      required:
        - version
        - service_id
        - order_number
        - merchant
        - amount
        - protocol
        - allowed_brands
        - billing_address_required
        - shipping_address_required
      properties:
        version:
          type: string
          description: Samsung Pay API version
        service_id:
          type: string
          description: Samsung Pay service ID to which session call needs to be made
        order_number:
          type: string
          description: Order number of the transaction
        merchant:
          $ref: '#/components/schemas/SamsungPayMerchantPaymentInformation'
        amount:
          $ref: '#/components/schemas/SamsungPayAmountDetails'
        protocol:
          $ref: '#/components/schemas/SamsungPayProtocolType'
        allowed_brands:
          type: array
          items:
            type: string
          description: List of supported card brands
        billing_address_required:
          type: boolean
          description: Is billing address required to be collected from wallet
        shipping_address_required:
          type: boolean
          description: Is shipping address required to be collected from wallet
    KlarnaSessionTokenResponse:
      type: object
      required:
        - session_token
        - session_id
      properties:
        session_token:
          type: string
          description: The session token for Klarna
        session_id:
          type: string
          description: The identifier for the session
    PaypalSessionTokenResponse:
      type: object
      required:
        - connector
        - session_token
        - sdk_next_action
      properties:
        connector:
          type: string
          description: Name of the connector
        session_token:
          type: string
          description: The session token for PayPal
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
        client_token:
          type: string
          description: Authorization token used by client to initiate sdk
          nullable: true
        transaction_info:
          allOf:
            - $ref: '#/components/schemas/PaypalTransactionInfo'
          nullable: true
        data_user_id_token:
          type: string
          description: >-
            User token required for returning customer flow, used by client to
            initiate sdk
          nullable: true
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        intent:
          allOf:
            - $ref: '#/components/schemas/PaypalCaptureMethod'
          nullable: true
    ApplepaySessionTokenResponse:
      type: object
      required:
        - connector
        - delayed_session_token
        - sdk_next_action
      properties:
        session_token_data:
          allOf:
            - $ref: '#/components/schemas/ApplePaySessionResponse'
          nullable: true
        payment_request_data:
          allOf:
            - $ref: '#/components/schemas/ApplePayPaymentRequest'
          nullable: true
        connector:
          type: string
          description: The session token is w.r.t this connector
        delayed_session_token:
          type: boolean
          description: Identifier for the delayed session response
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
        connector_reference_id:
          type: string
          description: The connector transaction id
          nullable: true
        connector_sdk_public_key:
          type: string
          description: The public key id is to invoke third party sdk
          nullable: true
        connector_merchant_id:
          type: string
          description: The connector merchant id
          nullable: true
    OpenBankingSessionToken:
      type: object
      required:
        - open_banking_session_token
      properties:
        open_banking_session_token:
          type: string
          description: The session token for OpenBanking Connectors
    PazeSessionTokenResponse:
      type: object
      required:
        - client_id
        - client_name
        - client_profile_id
        - transaction_currency_code
        - transaction_amount
      properties:
        client_id:
          type: string
          description: Paze Client ID
        client_name:
          type: string
          description: Client Name to be displayed on the Paze screen
        client_profile_id:
          type: string
          description: Paze Client Profile ID
        transaction_currency_code:
          $ref: '#/components/schemas/Currency'
        transaction_amount:
          type: string
          description: The transaction amount
          example: '38.02'
        email_address:
          type: string
          description: Email Address
          example: johntest@test.com
          nullable: true
          maxLength: 255
    ClickToPaySessionResponse:
      type: object
      required:
        - dpa_id
        - dpa_name
        - locale
        - card_brands
        - acquirer_bin
        - acquirer_merchant_id
        - merchant_country_code
        - transaction_amount
        - transaction_currency_code
      properties:
        dpa_id:
          type: string
        dpa_name:
          type: string
        locale:
          type: string
        card_brands:
          type: array
          items:
            $ref: '#/components/schemas/CardNetwork'
          example: '[Visa, Mastercard]'
        acquirer_bin:
          type: string
        acquirer_merchant_id:
          type: string
        merchant_category_code:
          type: string
          nullable: true
        merchant_country_code:
          type: string
        transaction_amount:
          type: string
          example: '38.02'
        transaction_currency_code:
          $ref: '#/components/schemas/Currency'
        phone_number:
          type: string
          example: '9123456789'
          nullable: true
          maxLength: 255
        email:
          type: string
          example: johntest@test.com
          nullable: true
          maxLength: 255
        phone_country_code:
          type: string
          nullable: true
        provider:
          allOf:
            - $ref: '#/components/schemas/CtpServiceProvider'
          nullable: true
        dpa_client_id:
          type: string
          nullable: true
    AmazonPaySessionTokenResponse:
      type: object
      required:
        - merchant_id
        - ledger_currency
        - store_id
        - payment_intent
        - total_shipping_amount
        - total_tax_amount
        - total_base_amount
        - delivery_options
      properties:
        merchant_id:
          type: string
          description: Amazon Pay merchant account identifier
        ledger_currency:
          $ref: '#/components/schemas/Currency'
        store_id:
          type: string
          description: Amazon Pay store ID
        payment_intent:
          $ref: '#/components/schemas/AmazonPayPaymentIntent'
        total_shipping_amount:
          type: string
          description: The total shipping costs
        total_tax_amount:
          type: string
          description: The total tax amount for the order
        total_base_amount:
          type: string
          description: The total amount for items in the cart
        delivery_options:
          type: array
          items:
            $ref: '#/components/schemas/AmazonPayDeliveryOptions'
          description: The delivery options available for the provided address
    ThreeDsMethodData:
      oneOf:
        - type: object
          required:
            - three_ds_method_data_submission
            - consume_post_message_for_three_ds_method_completion
          properties:
            three_ds_method_data_submission:
              type: boolean
              description: Whether ThreeDS method data submission is required
            three_ds_method_data:
              type: string
              description: ThreeDS method data
              nullable: true
            three_ds_method_url:
              type: string
              description: ThreeDS method url
              nullable: true
            three_ds_method_key:
              allOf:
                - $ref: '#/components/schemas/ThreeDsMethodKey'
              nullable: true
            consume_post_message_for_three_ds_method_completion:
              type: boolean
              description: >-
                Indicates whether to wait for Post message after 3DS method data
                submission
    PollConfigResponse:
      type: object
      required:
        - poll_id
        - delay_in_secs
        - frequency
      properties:
        poll_id:
          type: string
          description: Poll Id
        delay_in_secs:
          type: integer
          format: int32
          description: Interval of the poll
        frequency:
          type: integer
          format: int32
          description: Frequency of the poll
    CardNetwork:
      type: string
      description: Indicates the card network.
      enum:
        - Visa
        - Mastercard
        - AmericanExpress
        - JCB
        - DinersClub
        - Discover
        - CartesBancaires
        - UnionPay
        - Interac
        - RuPay
        - Maestro
        - Star
        - Pulse
        - Accel
        - Nyce
    NextActionCall:
      oneOf:
        - type: string
          description: The next action call is Post Session Tokens
          enum:
            - post_session_tokens
        - type: string
          description: The next action call is confirm
          enum:
            - confirm
        - type: string
          description: The next action call is sync
          enum:
            - sync
        - type: string
          description: The next action call is Complete Authorize
          enum:
            - complete_authorize
        - type: string
          description: The next action is to await for a merchant callback
          enum:
            - await_merchant_callback
        - type: object
          required:
            - deny
          properties:
            deny:
              type: object
              description: The next action is to deny the payment with an error message
              required:
                - message
              properties:
                message:
                  type: string
        - type: string
          description: The next action is to perform eligibility check
          enum:
            - eligibility_check
    ApplePayRegularBillingDetails:
      type: object
      required:
        - label
      properties:
        label:
          type: string
          description: >-
            The label that Apple Pay displays to the user in the payment sheet
            with the recurring details
        recurring_payment_start_date:
          type: string
          format: date-time
          description: The date of the first payment
          example: '2023-09-10T23:59:59Z'
          nullable: true
        recurring_payment_end_date:
          type: string
          format: date-time
          description: The date of the final payment
          example: '2023-09-10T23:59:59Z'
          nullable: true
        recurring_payment_interval_unit:
          allOf:
            - $ref: '#/components/schemas/RecurringPaymentIntervalUnit'
          nullable: true
        recurring_payment_interval_count:
          type: integer
          format: int32
          description: The number of interval units that make up the total payment interval
          nullable: true
    PaymentConnectorTransmission:
      type: string
      enum:
        - ConnectorCallUnsuccessful
        - ConnectorCallSucceeded
    BillingConnectorPaymentDetails:
      type: object
      required:
        - payment_processor_token
        - connector_customer_id
      properties:
        payment_processor_token:
          type: string
          description: Payment Processor Token to process the Revenue Recovery Payment
        connector_customer_id:
          type: string
          description: Billing Connector's Customer Id
    Connector:
      type: string
      enum:
        - absa_sanlam
        - authipay
        - adyenplatform
        - stripe_billing_test
        - phonypay
        - fauxpay
        - pretendpay
        - stripe_test
        - adyen_test
        - checkout_test
        - paypal_test
        - aci
        - adyen
        - affirm
        - airwallex
        - amazonpay
        - archipel
        - authorizedotnet
        - bambora
        - bamboraapac
        - bankofamerica
        - barclaycard
        - billwerk
        - bitpay
        - bluesnap
        - blackhawknetwork
        - calida
        - boku
        - braintree
        - breadpay
        - cardinal
        - cashtocode
        - celero
        - chargebee
        - checkbook
        - checkout
        - coinbase
        - coingate
        - custombilling
        - cryptopay
        - ctp_mastercard
        - ctp_visa
        - cybersource
        - cybersourcedecisionmanager
        - datatrans
        - deutschebank
        - digitalvirgo
        - dlocal
        - dwolla
        - ebanx
        - envoy
        - elavon
        - facilitapay
        - finix
        - fiserv
        - fiservemea
        - fiservcommercehub
        - fiuu
        - flexiti
        - forte
        - getnet
        - gigadat
        - globalpay
        - globepay
        - gocardless
        - gpayments
        - hipay
        - helcim
        - hyperpg
        - hyperswitch_vault
        - interpayments
        - inespay
        - iatapay
        - imerchantsolutions
        - itaubank
        - jpmorgan
        - juspaythreedsserver
        - klarna
        - loonio
        - mifinity
        - mollie
        - moneris
        - multisafepay
        - netcetera
        - nexinets
        - nexixpay
        - nmi
        - nomupay
        - noon
        - nordea
        - novalnet
        - nuvei
        - opennode
        - paybox
        - payload
        - payme
        - payone
        - paypal
        - paysafe
        - paystack
        - paytm
        - payconex
        - payu
        - peachpayments
        - payjustnow
        - payjustnowinstore
        - phonepe
        - placetopay
        - powertranz
        - prophetpay
        - rapyd
        - razorpay
        - recurly
        - redsys
        - revolv3
        - santander
        - shift4
        - silverflow
        - square
        - stax
        - stripe
        - stripebilling
        - taxjar
        - threedsecureio
        - tesouro
        - tokenex
        - tokenio
        - trustly
        - truelayer
        - trustpay
        - trustpayments
        - tsys
        - vgs
        - volt
        - wellsfargo
        - wise
        - worldline
        - worldpay
        - worldpayvantiv
        - worldpayxml
        - worldpaymodular
        - signifyd
        - plaid
        - riskified
        - xendit
        - zen
        - zift
        - zsl
    BillingConnectorPaymentMethodDetails:
      oneOf:
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - card
            value:
              $ref: '#/components/schemas/BillingConnectorAdditionalCardInfo'
      discriminator:
        propertyName: type
    ImmediateExpirationTime:
      type: object
      required:
        - time
      properties:
        time:
          type: integer
          format: int32
          description: Expiration time in seconds
          minimum: 0
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
    ScheduledExpirationTime:
      type: object
      required:
        - date
      properties:
        date:
          type: string
          description: 'Expiration time in terms of date, format: YYYY-MM-DD'
          example: '2026-07-08'
        validity_after_expiration:
          type: integer
          format: int32
          description: Days after expiration date for which the QR code remains valid
          example: 10
          nullable: true
          minimum: 0
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
    BoletoDocumentKind:
      type: string
      enum:
        - commercial_invoice
        - service_invoice
        - promissory_note
        - rural_promissory_note
        - receipt
        - insurance_policy
        - credit_card_invoice
        - proposal
        - deposit_or_funding
        - cheque
        - direct_promissory_note
        - other
    BoletoPaymentType:
      type: string
      enum:
        - fixed_amount
        - flexible_amount
        - installment
    PixKey:
      oneOf:
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - cpf
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - cnpj
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - email
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - phone
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - evp_token
            value:
              type: string
      discriminator:
        propertyName: type
    SantanderPaymentDiscountRules:
      type: object
      description: >-
        Defines the type of discount applied to a payment, such as whether it's
        a fixed date discount, a daily calendar discount, or a daily business
        discount.
      required:
        - tiers
      properties:
        discount_type:
          allOf:
            - $ref: '#/components/schemas/DiscountType'
          nullable: true
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/DiscountTier'
          description: A generic vector of discount tiers
    PenaltyRules:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        fixed_penalty:
          allOf:
            - $ref: '#/components/schemas/PenaltyDetail'
          nullable: true
        interest:
          allOf:
            - $ref: '#/components/schemas/InterestDetail'
          nullable: true
    CollectionActions:
      type: object
      description: >-
        Represents the legal or administrative actions that may be taken for
        non-payment, such as protest rules and automatic write-off timelines.
      properties:
        legal_protest:
          allOf:
            - $ref: '#/components/schemas/ProtestRules'
          nullable: true
        auto_write_off_days:
          type: integer
          format: int32
          description: Days after which the bill is automatically cancelled/written off
          example: 60
          nullable: true
          minimum: 0
    BoletoPaymentTypeConstraints:
      oneOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - fixed_amount
        - type: object
          required:
            - type
            - details
          properties:
            type:
              type: string
              enum:
                - flexible_amount
            details:
              $ref: '#/components/schemas/FlexibleAmountDetails'
        - type: object
          required:
            - type
            - details
          properties:
            type:
              type: string
              enum:
                - installment
            details:
              $ref: '#/components/schemas/InstallmentDetails'
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      discriminator:
        propertyName: type
    BeneficiaryDetails:
      type: object
      description: Represents the end-recipient of a payout or fund transfer.
      properties:
        name:
          type: string
          description: The full legal name of the individual or entity receiving the funds.
          example: João da Silva
          nullable: true
        document_number:
          type: string
          description: >-
            The customer's unique identification number (e.g., Tax ID, SSN,
            Passport Number).

            Used by processors to verify the identity of the recipient and
            prevent fraud.

            Length of the document number depends upon the document_type.

            For CPF/CNPJ it is typically 11/14 digits long.
          example: '9615865832'
          nullable: true
        document_type:
          allOf:
            - $ref: '#/components/schemas/DocumentKind'
          nullable: true
    PixAutomaticoPushData:
      type: object
      description: >-
        Data for PixAutomaticoPush Payment Method Type CIT (Customer Initiated
        Transaction) - used during mandate setup
      required:
        - time
      properties:
        time:
          type: integer
          format: int32
          description: Time in seconds until which the push notification is valid
          example: 3600
          minimum: 0
        retry_policy:
          type: boolean
          description: >-
            Enable retry policy for failed payments (maps to PERMITE_3R_7D if
            true)
          example: true
          nullable: true
        mandate_details:
          allOf:
            - $ref: '#/components/schemas/SantanderMandateDetails'
          nullable: true
    PixAutomaticoQrData:
      type: object
      description: >-
        Data for PixAutomaticoQr Payment Method Type CIT (Customer Initiated
        Transaction) - used during mandate setup + non 0$ mandate setup
      properties:
        retry_policy:
          type: boolean
          description: >-
            Enable retry policy for failed payments (maps to PERMITE_3R_7D if
            true)
          example: true
          nullable: true
        mandate_details:
          allOf:
            - $ref: '#/components/schemas/SantanderMandateDetails'
          nullable: true
    PixAutomaticoMitData:
      type: object
      description: >-
        Data for Santander Pix Automatico MIT (Merchant Initiated Transaction) -
        used during recurring charge creation
      properties:
        receiver_details:
          allOf:
            - $ref: '#/components/schemas/SantanderPixAutomaticoReceiverDetails'
          nullable: true
        mandate_execution_date:
          type: string
          description: >-
            Execution date for the mandate charge (maps to data_de_vencimento).
            Format: YYYY-MM-DD.

            If not provided, defaults to current date + 1 day.
          example: '2026-12-31'
          nullable: true
        auto_adjust_date:
          type: boolean
          description: >-
            Whether to automatically adjust the due date to the next business
            day if it falls on a non-business day.

            Maps to ajuste_dia_util in Santander API. Defaults to true if not
            provided.
          example: true
          nullable: true
    BankTransferAdditionalData:
      oneOf:
        - type: object
          required:
            - ach
          properties:
            ach:
              type: object
        - type: object
          required:
            - sepa
          properties:
            sepa:
              $ref: '#/components/schemas/SepaBankTransferPaymentAdditionalData'
        - type: object
          required:
            - bacs
          properties:
            bacs:
              type: object
        - type: object
          required:
            - multibanco
          properties:
            multibanco:
              type: object
        - type: object
          required:
            - permata
          properties:
            permata:
              type: object
        - type: object
          required:
            - bca
          properties:
            bca:
              type: object
        - type: object
          required:
            - bni_va
          properties:
            bni_va:
              type: object
        - type: object
          required:
            - bri_va
          properties:
            bri_va:
              type: object
        - type: object
          required:
            - cimb_va
          properties:
            cimb_va:
              type: object
        - type: object
          required:
            - danamon_va
          properties:
            danamon_va:
              type: object
        - type: object
          required:
            - mandiri_va
          properties:
            mandiri_va:
              type: object
        - type: object
          required:
            - pix
          properties:
            pix:
              $ref: '#/components/schemas/PixBankTransferAdditionalData'
        - type: object
          required:
            - pix_emv
          properties:
            pix_emv:
              type: object
        - type: object
          required:
            - pix_qr
          properties:
            pix_qr:
              type: object
        - type: object
          required:
            - pix_automatico_push
          properties:
            pix_automatico_push:
              $ref: '#/components/schemas/PixAutomaticoPushAdditionalData'
        - type: object
          required:
            - pix_automatico_qr
          properties:
            pix_automatico_qr:
              type: object
        - type: object
          required:
            - pse
          properties:
            pse:
              type: object
        - type: object
          required:
            - local_bank_transfer
          properties:
            local_bank_transfer:
              $ref: '#/components/schemas/LocalBankTransferAdditionalData'
        - type: object
          required:
            - instant_bank_transfer
          properties:
            instant_bank_transfer:
              type: object
        - type: object
          required:
            - instant_bank_transfer_finland
          properties:
            instant_bank_transfer_finland:
              type: object
        - type: object
          required:
            - instant_bank_transfer_poland
          properties:
            instant_bank_transfer_poland:
              type: object
        - type: object
          required:
            - indonesian_bank_transfer
          properties:
            indonesian_bank_transfer:
              type: object
              properties:
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
    WalletResponseData:
      oneOf:
        - type: object
          required:
            - apple_pay
          properties:
            apple_pay:
              $ref: '#/components/schemas/WalletAdditionalDataForCard'
        - type: object
          required:
            - google_pay
          properties:
            google_pay:
              $ref: '#/components/schemas/WalletAdditionalDataForCard'
        - type: object
          required:
            - samsung_pay
          properties:
            samsung_pay:
              $ref: '#/components/schemas/WalletAdditionalDataForCard'
      description: >-
        Hyperswitch supports SDK integration with Apple Pay and Google Pay
        wallets. For other wallets, we integrate with their respective
        connectors, redirecting the customer to the connector for wallet
        payments. As a result, we don’t receive any payment method data in the
        confirm call for payments made through other wallets.
    KlarnaSdkPaymentMethodResponse:
      type: object
      properties:
        payment_type:
          type: string
          nullable: true
    BankRedirectDetails:
      oneOf:
        - type: object
          required:
            - BancontactCard
          properties:
            BancontactCard:
              $ref: '#/components/schemas/BancontactBankRedirectAdditionalData'
        - type: object
          required:
            - Blik
          properties:
            Blik:
              $ref: '#/components/schemas/BlikBankRedirectAdditionalData'
        - type: object
          required:
            - Giropay
          properties:
            Giropay:
              $ref: '#/components/schemas/GiropayBankRedirectAdditionalData'
    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
    InteracPaymentMethod:
      type: object
      properties:
        customer_info:
          type: object
          nullable: true
    CryptoData:
      type: object
      properties:
        pay_currency:
          type: string
          nullable: true
        network:
          type: string
          nullable: true
    BankDebitAdditionalData:
      oneOf:
        - type: object
          required:
            - ach
          properties:
            ach:
              $ref: '#/components/schemas/AchBankDebitAdditionalData'
        - type: object
          required:
            - bacs
          properties:
            bacs:
              $ref: '#/components/schemas/BacsBankDebitAdditionalData'
        - type: object
          required:
            - becs
          properties:
            becs:
              $ref: '#/components/schemas/BecsBankDebitAdditionalData'
        - type: object
          required:
            - sepa
          properties:
            sepa:
              $ref: '#/components/schemas/SepaBankDebitAdditionalData'
        - type: object
          required:
            - sepa_guarenteed_debit
          properties:
            sepa_guarenteed_debit:
              $ref: '#/components/schemas/SepaBankDebitAdditionalData'
        - type: object
          required:
            - eft_debit_order
          properties:
            eft_debit_order:
              $ref: '#/components/schemas/EftDebitOrderAdditionalData'
    RealTimePaymentData:
      oneOf:
        - type: object
          required:
            - fps
          properties:
            fps:
              type: object
        - type: object
          required:
            - duit_now
          properties:
            duit_now:
              type: object
        - type: object
          required:
            - prompt_pay
          properties:
            prompt_pay:
              type: object
        - type: object
          required:
            - viet_qr
          properties:
            viet_qr:
              type: object
        - type: object
          required:
            - qris
          properties:
            qris:
              type: object
    UpiAdditionalData:
      oneOf:
        - type: object
          required:
            - upi_collect
          properties:
            upi_collect:
              $ref: '#/components/schemas/UpiCollectAdditionalData'
        - type: object
          required:
            - upi_intent
          properties:
            upi_intent:
              $ref: '#/components/schemas/UpiIntentData'
        - type: object
          required:
            - upi_qr
          properties:
            upi_qr:
              $ref: '#/components/schemas/UpiQrData'
    VoucherData:
      oneOf:
        - type: object
          required:
            - boleto
          properties:
            boleto:
              $ref: '#/components/schemas/BoletoVoucherData'
        - type: string
          enum:
            - efecty
        - type: string
          enum:
            - pago_efectivo
        - type: string
          enum:
            - red_compra
        - type: string
          enum:
            - red_pagos
        - type: object
          required:
            - alfamart
          properties:
            alfamart:
              $ref: '#/components/schemas/AlfamartVoucherData'
        - type: object
          required:
            - indomaret
          properties:
            indomaret:
              $ref: '#/components/schemas/IndomaretVoucherData'
        - type: string
          enum:
            - oxxo
        - type: object
          required:
            - seven_eleven
          properties:
            seven_eleven:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - lawson
          properties:
            lawson:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - mini_stop
          properties:
            mini_stop:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - family_mart
          properties:
            family_mart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - seicomart
          properties:
            seicomart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - pay_easy
          properties:
            pay_easy:
              $ref: '#/components/schemas/JCSVoucherData'
    GiftCardAdditionalData:
      oneOf:
        - type: object
          required:
            - givex
          properties:
            givex:
              $ref: '#/components/schemas/GivexGiftCardAdditionalData'
        - type: object
          required:
            - pay_safe_card
          properties:
            pay_safe_card:
              type: object
        - type: object
          required:
            - bhn_card_network
          properties:
            bhn_card_network:
              type: object
    CardRedirectData:
      oneOf:
        - type: object
          required:
            - knet
          properties:
            knet:
              type: object
        - type: object
          required:
            - benefit
          properties:
            benefit:
              type: object
        - type: object
          required:
            - momo_atm
          properties:
            momo_atm:
              type: object
        - type: object
          required:
            - card_redirect
          properties:
            card_redirect:
              type: object
    CardTokenAdditionalData:
      type: object
      required:
        - card_holder_name
      properties:
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
    OpenBankingData:
      oneOf:
        - type: object
          required:
            - open_banking_pis
          properties:
            open_banking_pis:
              type: object
    MobilePaymentData:
      oneOf:
        - type: object
          required:
            - direct_carrier_billing
          properties:
            direct_carrier_billing:
              type: object
              required:
                - msisdn
              properties:
                msisdn:
                  type: string
                  description: The phone number of the user
                  example: '1234567890'
                client_uid:
                  type: string
                  description: Unique user id
                  example: 02iacdYXGI9CnyJdoN8c7
                  nullable: true
    NetworkTokenDetailsPaymentMethod:
      type: object
      properties:
        last4_digits:
          type: string
          example: '4242'
          nullable: true
        issuer_country:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        network_token_expiry_month:
          type: string
          example: '05'
          nullable: true
        network_token_expiry_year:
          type: string
          example: '27'
          nullable: true
        nick_name:
          type: string
          example: Card
          nullable: true
        card_holder_name:
          type: string
          example: John Doe
          nullable: true
        card_isin:
          type: string
          example: '16712672'
          nullable: true
        card_issuer:
          type: string
          example: Bank of America
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          example: Credit
          nullable: true
        saved_to_locker:
          type: boolean
        par:
          type: string
          example: 522134KAVJ1JPZ8L77N0Z2LRYZS7J
          nullable: true
    SessionTokenInfo:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentProcessingDetailsAt'
          nullable: true
        - type: object
          required:
            - certificate
            - certificate_keys
            - merchant_identifier
            - display_name
            - initiative
          properties:
            certificate:
              type: string
            certificate_keys:
              type: string
            merchant_identifier:
              type: string
            display_name:
              type: string
            initiative:
              $ref: '#/components/schemas/ApplepayInitiative'
            initiative_context:
              type: string
              nullable: true
            merchant_business_country:
              allOf:
                - $ref: '#/components/schemas/CountryAlpha2'
              nullable: true
    AdyenTestingData:
      type: object
      required:
        - holder_name
      properties:
        holder_name:
          type: string
          description: >-
            Holder name to be sent to Adyen for a card payment(CIT) or a generic
            payment(MIT). This value overrides the values for
            card.card_holder_name and applies during both CIT and MIT payment
            transactions.
    SantanderBoletoData:
      type: object
      description: >-
        Represents the specific data and rules related to Santander Boleto
        payments, including discounts, penalties, collection actions, payment
        constraints, beneficiary details, and document kind.
      properties:
        discount_rules:
          allOf:
            - $ref: '#/components/schemas/SantanderPaymentDiscountRules'
          nullable: true
        penalties:
          allOf:
            - $ref: '#/components/schemas/PenaltyRules'
          nullable: true
        collection_actions:
          allOf:
            - $ref: '#/components/schemas/CollectionActions'
          nullable: true
        payment_constraints:
          allOf:
            - $ref: '#/components/schemas/BoletoPaymentTypeConstraints'
          nullable: true
        beneficiary:
          allOf:
            - $ref: '#/components/schemas/BeneficiaryDetails'
          nullable: true
        document_kind:
          allOf:
            - $ref: '#/components/schemas/BoletoDocumentKind'
          nullable: true
    TriggeredBy:
      type: string
      enum:
        - internal
        - external
    DokuBankTransferInstructions:
      type: object
      required:
        - expires_at
        - reference
        - instructions_url
      properties:
        expires_at:
          type: string
          example: '1707091200000'
        reference:
          type: string
          example: '122385736258'
        instructions_url:
          type: string
    AchTransfer:
      type: object
      required:
        - account_number
        - bank_name
        - routing_number
        - swift_code
      properties:
        account_number:
          type: string
          example: '122385736258'
        bank_name:
          type: string
        routing_number:
          type: string
          example: '012'
        swift_code:
          type: string
          example: '234'
    SepaBankTransferInstructions:
      type: object
      required:
        - account_holder_name
        - bic
        - country
        - iban
        - reference
      properties:
        account_holder_name:
          type: string
          example: Jane Doe
        bic:
          type: string
          example: '9123456789'
        country:
          type: string
        iban:
          type: string
          example: '123456789'
        reference:
          type: string
          example: U2PVVSEV4V9Y
    BacsBankTransferInstructions:
      type: object
      required:
        - account_holder_name
        - account_number
        - sort_code
      properties:
        account_holder_name:
          type: string
          example: Jane Doe
        account_number:
          type: string
          example: '10244123908'
        sort_code:
          type: string
          example: '012'
    MultibancoTransferInstructions:
      type: object
      required:
        - reference
        - entity
      properties:
        reference:
          type: string
          example: '122385736258'
        entity:
          type: string
          example: '12345'
    GooglePayThirdPartySdk:
      type: object
      required:
        - delayed_session_token
        - connector
        - sdk_next_action
      properties:
        delayed_session_token:
          type: boolean
          description: Identifier for the delayed session response
        connector:
          type: string
          description: The name of the connector
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
    GooglePaySessionResponse:
      type: object
      required:
        - merchant_info
        - shipping_address_required
        - email_required
        - shipping_address_parameters
        - allowed_payment_methods
        - transaction_info
        - delayed_session_token
        - connector
        - sdk_next_action
      properties:
        merchant_info:
          $ref: '#/components/schemas/GpayMerchantInfo'
        shipping_address_required:
          type: boolean
          description: Is shipping address required
        email_required:
          type: boolean
          description: Is email required
        shipping_address_parameters:
          $ref: '#/components/schemas/GpayShippingAddressParameters'
        allowed_payment_methods:
          type: array
          items:
            $ref: '#/components/schemas/GpayAllowedPaymentMethods'
          description: List of the allowed payment methods
        transaction_info:
          $ref: '#/components/schemas/GpayTransactionInfo'
        delayed_session_token:
          type: boolean
          description: Identifier for the delayed session response
        connector:
          type: string
          description: The name of the connector
        sdk_next_action:
          $ref: '#/components/schemas/SdkNextAction'
        secrets:
          allOf:
            - $ref: '#/components/schemas/SecretInfoToInitiateSdk'
          nullable: true
    SamsungPayMerchantPaymentInformation:
      type: object
      required:
        - name
        - country_code
      properties:
        name:
          type: string
          description: Merchant name, this will be displayed on the Samsung Pay screen
        url:
          type: string
          description: Merchant domain that process payments, required for web payments
          nullable: true
        country_code:
          $ref: '#/components/schemas/CountryAlpha2'
    SamsungPayAmountDetails:
      type: object
      required:
        - option
        - currency_code
        - total
      properties:
        option:
          $ref: '#/components/schemas/SamsungPayAmountFormat'
        currency_code:
          $ref: '#/components/schemas/Currency'
        total:
          type: string
          description: The total amount of the transaction
          example: '38.02'
    SamsungPayProtocolType:
      type: string
      enum:
        - PROTOCOL3DS
    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
    PaypalTransactionInfo:
      type: object
      required:
        - flow
        - currency_code
        - total_price
      properties:
        flow:
          $ref: '#/components/schemas/PaypalFlow'
        currency_code:
          $ref: '#/components/schemas/Currency'
        total_price:
          type: string
          description: Total price
          example: '38.02'
    PaypalCaptureMethod:
      type: string
      enum:
        - capture
        - authorize
    ApplePaySessionResponse:
      oneOf:
        - $ref: '#/components/schemas/ThirdPartySdkSessionResponse'
        - description: >-
            We get this session response, when there is no involvement of third
            party sdk

            This is the common response most of the times
        - $ref: '#/components/schemas/NullObject'
    ApplePayPaymentRequest:
      type: object
      required:
        - country_code
        - currency_code
        - total
      properties:
        country_code:
          $ref: '#/components/schemas/CountryAlpha2'
        currency_code:
          $ref: '#/components/schemas/Currency'
        total:
          $ref: '#/components/schemas/AmountInfo'
        merchant_capabilities:
          type: array
          items:
            type: string
          description: >-
            The list of merchant capabilities(ex: whether capable of 3ds or
            no-3ds)
          nullable: true
        supported_networks:
          type: array
          items:
            type: string
          description: The list of supported networks
          nullable: true
        merchant_identifier:
          type: string
          nullable: true
        required_billing_contact_fields:
          allOf:
            - $ref: '#/components/schemas/ApplePayBillingContactFields'
          nullable: true
        required_shipping_contact_fields:
          allOf:
            - $ref: '#/components/schemas/ApplePayShippingContactFields'
          nullable: true
        recurring_payment_request:
          allOf:
            - $ref: '#/components/schemas/ApplePayRecurringPaymentRequest'
          nullable: true
    CtpServiceProvider:
      type: string
      enum:
        - visa
        - mastercard
    AmazonPayPaymentIntent:
      type: string
      enum:
        - Confirm
        - Authorize
        - AuthorizeWithCapture
    AmazonPayDeliveryOptions:
      type: object
      required:
        - id
        - price
        - shipping_method
        - is_default
      properties:
        id:
          type: string
          description: Delivery Option identifier
        price:
          $ref: '#/components/schemas/AmazonPayDeliveryPrice'
        shipping_method:
          $ref: '#/components/schemas/AmazonPayShippingMethod'
        is_default:
          type: boolean
          description: Specifies if this delivery option is the default
    ThreeDsMethodKey:
      type: string
      enum:
        - threeDSMethodData
        - JWT
    RecurringPaymentIntervalUnit:
      type: string
      enum:
        - year
        - month
        - day
        - hour
        - minute
    BillingConnectorAdditionalCardInfo:
      type: object
      required:
        - card_network
      properties:
        card_network:
          $ref: '#/components/schemas/CardNetwork'
        card_issuer:
          type: string
          description: Card Issuer
          example: JP MORGAN CHASE
          nullable: true
    DiscountType:
      type: string
      description: >-
        Defines the type of discount applied to a payment, such as whether it's
        a fixed date discount, a daily calendar discount, or a daily business
        discount.
      enum:
        - standard
        - fixed_date
        - daily_calendar
        - daily_business
    DiscountTier:
      type: object
      properties:
        amount:
          type: string
          description: The discount value (e.g., "5.50").
          example: '5.50'
          nullable: true
        end_date:
          type: string
          description: The ISO-8601 date until which this discount is valid
          example: '2027-12-31'
          nullable: true
    PenaltyDetail:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        value:
          type: string
          description: The numeric value (as a string to preserve decimal precision)
          example: '2.00'
          nullable: true
        grace_period_days:
          type: integer
          format: int32
          description: 'Grace period: Days after due date before this applies'
          example: 1
          nullable: true
          minimum: 0
    InterestDetail:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        interest_percentage:
          type: string
          description: 'Percentage of Juros (Interest). Pattern: ^[0-9]{1,3}\.[0-9]{2}$'
          example: '5.00'
          nullable: true
        iof_percentage:
          type: string
          description: |-
            Percentage of IOF (Financial Operations Tax). Pattern: \d{3}$\.\d{5}
            Only provided if the agreement is "Cobra IOF na Barra ou Cadastro"
          example: '32.45325'
          nullable: true
    ProtestRules:
      type: object
      required:
        - protest_type
        - days_after_due_date
      properties:
        protest_type:
          $ref: '#/components/schemas/ProtestType'
        days_after_due_date:
          type: integer
          format: int32
          description: Number of days after the due date to initiate the protest
          example: 30
          minimum: 0
    FlexibleAmountDetails:
      type: object
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      properties:
        min_value:
          type: string
          description: Minimum value allowed (e.g., "10.00")
          example: '38.02'
          nullable: true
        max_value:
          type: string
          description: Maximum value allowed (e.g., "5000.00")
          example: '38.02'
          nullable: true
        value_type:
          allOf:
            - $ref: '#/components/schemas/CalculationType'
          nullable: true
    InstallmentDetails:
      type: object
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      properties:
        max_partial_payments:
          type: integer
          format: int32
          description: Maximum number of partial payments allowed (Up to 99 for Santander).
          example: 99
          nullable: true
          minimum: 0
        value_type:
          allOf:
            - $ref: '#/components/schemas/CalculationType'
          nullable: true
    DocumentKind:
      type: string
      description: Represents the type of identification document used for validation.
      enum:
        - cpf
        - cnpj
        - psn
        - other
    SantanderMandateDetails:
      type: object
      properties:
        fixed_recurring_amount:
          type: integer
          format: int64
          description: >-
            Fixed amount for each recurring charge in minor units (e.g., cents).
            If not provided, the mandate will allow variable amounts.
          example: 6540
          nullable: true
          minimum: 0
        min_recurring_amount:
          type: integer
          format: int64
          description: >-
            Minimum amount for each recurring charge in minor units (e.g.,
            cents). If not provided, there will be no minimum limit on the
            amount.
          example: 6540
          nullable: true
          minimum: 0
        start_date:
          type: string
          description: >-
            Start date for the recurring charges. Format: YYYY-MM-DD. If not
            provided, the mandate will be valid immediately.
          example: '2026-12-31'
          nullable: true
        end_date:
          type: string
          description: >-
            End date for the recurring charges. Format: YYYY-MM-DD. If not
            provided, the mandate will be valid indefinitely.
          example: '2026-12-31'
          nullable: true
        periodicity:
          allOf:
            - $ref: '#/components/schemas/SantanderMandatePeriodicity'
          nullable: true
    SantanderPixAutomaticoReceiverDetails:
      type: object
      description: >-
        Represents the receiver details for Santander Pix Automatico recurring
        charges
      properties:
        branch_code:
          type: string
          description: Branch code (agencia) of the receiver's bank account
          example: '0001'
          nullable: true
        account_number:
          type: string
          description: Account number (conta) of the receiver
          example: '130333323'
          nullable: true
        account_type:
          allOf:
            - $ref: '#/components/schemas/AccountType'
          nullable: true
    SepaBankTransferPaymentAdditionalData:
      type: object
      properties:
        debitor_iban:
          type: string
          description: debitor IBAN
          example: DE89370400440532013000
          nullable: true
        debitor_bic:
          type: string
          description: debitor BIC
          example: MARKDEF1100
          nullable: true
        debitor_name:
          type: string
          description: debitor name
          example: John Doe
          nullable: true
        debitor_email:
          type: string
          description: debitor email
          example: johndoe@example.com
          nullable: true
    PixBankTransferAdditionalData:
      type: object
      properties:
        pix_key:
          type: string
          description: Partially masked unique key for pix transfer
          example: a1f4102e ****** 6fa48899c1d1
          nullable: true
        cpf:
          type: string
          description: Partially masked CPF - CPF is a Brazilian tax identification number
          example: '**** 124689'
          nullable: true
        cnpj:
          type: string
          description: >-
            Partially masked CNPJ - CNPJ is a Brazilian company tax
            identification number
          example: '**** 417312'
          nullable: true
        source_bank_account_id:
          type: string
          description: Partially masked source bank account number
          example: '********-****-4073-****-9fa964d08bc5'
          nullable: true
        destination_bank_account_id:
          type: string
          description: >-
            Partially masked destination bank account number _Deprecated: Will
            be removed in next stable release._
          deprecated: true
          example: '********-****-460b-****-f23b4e71c97b'
          nullable: true
        expiry_date:
          type: string
          description: The expiration date and time for the Pix QR code in ISO 8601 format
          example: '2025-09-10T10:11:12Z'
          nullable: true
    PixAutomaticoPushAdditionalData:
      type: object
      properties:
        account_number:
          type: string
          description: Account number for Pix Automatico Push payment method
          example: '550689'
          nullable: true
        branch_code:
          type: string
          description: Branch code for Pix Automatico Push payment method
          example: '2569'
          nullable: true
        bank_identifier:
          type: string
          description: Bank identifier for Pix Automatico Push payment method
          example: '91193552'
          nullable: true
    LocalBankTransferAdditionalData:
      type: object
      properties:
        bank_code:
          type: string
          description: Partially masked bank code
          example: '**** OA2312'
          nullable: true
    WalletAdditionalDataForCard:
      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: '03'
          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 generated for the payment
          example: '009825'
          nullable: true
        email:
          type: string
          description: Email address associated with the wallet (e.g. PayPal email)
          example: johntest@test.com
          nullable: true
    BancontactBankRedirectAdditionalData:
      type: object
      properties:
        last4:
          type: string
          description: Last 4 digits of the card number
          example: '4242'
          nullable: true
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '12'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '24'
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
          nullable: true
    BlikBankRedirectAdditionalData:
      type: object
      properties:
        blik_code:
          type: string
          example: 3GD9MO
          nullable: true
    GiropayBankRedirectAdditionalData:
      type: object
      properties:
        bic:
          type: string
          description: Masked bank account bic code
          nullable: true
        iban:
          type: string
          description: Partially masked international bank account number (iban) for SEPA
          nullable: true
        country:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
    AchBankDebitAdditionalData:
      type: object
      required:
        - account_number
        - routing_number
      properties:
        account_number:
          type: string
          description: Partially masked account number for ach bank debit payment
          example: 0001****3456
        routing_number:
          type: string
          description: Partially masked routing number for ach bank debit payment
          example: 110***000
        bank_account_holder_name:
          type: string
          description: Bank account's owner name
          example: John Doe
          nullable: true
        bank_name:
          allOf:
            - $ref: '#/components/schemas/BankNames'
          nullable: true
        bank_type:
          allOf:
            - $ref: '#/components/schemas/BankType'
          nullable: true
        bank_holder_type:
          allOf:
            - $ref: '#/components/schemas/BankHolderType'
          nullable: true
    BacsBankDebitAdditionalData:
      type: object
      required:
        - account_number
        - sort_code
      properties:
        account_number:
          type: string
          description: Partially masked account number for Bacs payment method
          example: 0001****3456
        sort_code:
          type: string
          description: Partially masked sort code for Bacs payment method
          example: '108800'
        bank_account_holder_name:
          type: string
          description: Bank account's owner name
          example: John Doe
          nullable: true
    BecsBankDebitAdditionalData:
      type: object
      required:
        - account_number
        - bsb_number
      properties:
        account_number:
          type: string
          description: Partially masked account number for Becs payment method
          example: 0001****3456
        bsb_number:
          type: string
          description: Bank-State-Branch (bsb) number
          example: '000000'
        bank_account_holder_name:
          type: string
          description: Bank account's owner name
          example: John Doe
          nullable: true
    SepaBankDebitAdditionalData:
      type: object
      required:
        - iban
      properties:
        iban:
          type: string
          description: Partially masked international bank account number (iban) for SEPA
          example: DE8937******013000
        bank_account_holder_name:
          type: string
          description: Bank account's owner name
          example: John Doe
          nullable: true
    EftDebitOrderAdditionalData:
      type: object
      required:
        - account_number
      properties:
        account_number:
          type: string
          description: Partially masked account number for eft bank debit payment
          example: 0001****3456
        branch_code:
          type: string
          description: Partially masked branch code for eft bank debit payment
          example: 110***000
          nullable: true
        bank_account_holder_name:
          type: string
          description: Bank account's owner name
          example: John Doe
          nullable: true
        bank_name:
          allOf:
            - $ref: '#/components/schemas/BankNames'
          nullable: true
        bank_type:
          allOf:
            - $ref: '#/components/schemas/BankType'
          nullable: true
    UpiCollectAdditionalData:
      type: object
      properties:
        vpa_id:
          type: string
          description: Masked VPA ID
          example: ab********@okhdfcbank
          nullable: true
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    UpiIntentData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
        app_name:
          type: string
          description: App name for UPI intent payment
          nullable: true
    UpiQrData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    BoletoVoucherData:
      type: object
      properties:
        social_security_number:
          type: string
          description: The shopper's social security number (CPF or CNPJ)
          nullable: true
        bank_number:
          type: string
          description: The shopper's bank account number associated with the boleto
          nullable: true
        document_type:
          allOf:
            - $ref: '#/components/schemas/DocumentKind'
          nullable: true
        fine_percentage:
          type: string
          description: The fine percentage charged if payment is overdue
          nullable: true
        fine_quantity_days:
          type: string
          description: The number of days after the due date when the fine is applied
          nullable: true
        interest_percentage:
          type: string
          description: The interest percentage charged on late payments
          nullable: true
        write_off_quantity_days:
          type: string
          description: The number of days after which the boleto is written off (canceled)
          nullable: true
        messages:
          type: array
          items:
            type: string
          description: Custom messages or instructions to display on the boleto
          nullable: true
        due_date:
          type: string
          format: date
          example: '2025-08-22'
          nullable: true
    AlfamartVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    IndomaretVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    JCSVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Japanese convenience stores
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name Japanese convenience stores
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Japanese convenience stores
          example: example@me.com
          nullable: true
        phone_number:
          type: string
          description: The telephone number for Japanese convenience stores
          example: '9123456789'
          nullable: true
    GivexGiftCardAdditionalData:
      type: object
      required:
        - last4
      properties:
        last4:
          type: string
          description: Last 4 digits of the gift card number
          example: '4242'
    PaymentProcessingDetailsAt:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentProcessingDetails'
            - type: object
              required:
                - payment_processing_details_at
              properties:
                payment_processing_details_at:
                  type: string
                  enum:
                    - Hyperswitch
        - type: object
          required:
            - payment_processing_details_at
          properties:
            payment_processing_details_at:
              type: string
              enum:
                - Connector
      discriminator:
        propertyName: payment_processing_details_at
    ApplepayInitiative:
      type: string
      enum:
        - web
        - ios
    GpayMerchantInfo:
      type: object
      required:
        - merchant_name
      properties:
        merchant_id:
          type: string
          description: >-
            The merchant Identifier that needs to be passed while invoking Gpay
            SDK
          nullable: true
        merchant_name:
          type: string
          description: The name of the merchant that needs to be displayed on Gpay PopUp
    GpayShippingAddressParameters:
      type: object
      required:
        - phone_number_required
      properties:
        phone_number_required:
          type: boolean
          description: Is shipping phone number required
    GpayAllowedPaymentMethods:
      type: object
      required:
        - type
        - parameters
        - tokenization_specification
      properties:
        type:
          type: string
          description: The type of payment method
        parameters:
          $ref: '#/components/schemas/GpayAllowedMethodsParameters'
        tokenization_specification:
          $ref: '#/components/schemas/GpayTokenizationSpecification'
    GpayTransactionInfo:
      type: object
      required:
        - country_code
        - currency_code
        - total_price_status
        - total_price
      properties:
        country_code:
          $ref: '#/components/schemas/CountryAlpha2'
        currency_code:
          $ref: '#/components/schemas/Currency'
        total_price_status:
          type: string
          description: 'The total price status (ex: ''FINAL'')'
        total_price:
          type: string
          description: The total price
          example: '38.02'
    SecretInfoToInitiateSdk:
      type: object
      required:
        - display
        - payment
      properties:
        display:
          type: string
        payment:
          type: string
    SamsungPayAmountFormat:
      type: string
      enum:
        - FORMAT_TOTAL_PRICE_ONLY
        - FORMAT_TOTAL_ESTIMATED_AMOUNT
    PaypalFlow:
      type: string
      enum:
        - checkout
    ThirdPartySdkSessionResponse:
      type: object
      required:
        - secrets
      properties:
        secrets:
          $ref: '#/components/schemas/SecretInfoToInitiateSdk'
    NullObject:
      default: null
      nullable: true
    AmountInfo:
      type: object
      required:
        - label
        - amount
      properties:
        label:
          type: string
          description: The label must be the name of the merchant.
        type:
          type: string
          description: >-
            A value that indicates whether the line item(Ex: total, tax,
            discount, or grand total) is final or pending.
          nullable: true
        amount:
          type: string
          description: 'The total amount for the payment in majot unit string (Ex: 38.02)'
          example: '38.02'
    ApplePayBillingContactFields:
      type: array
      items:
        $ref: '#/components/schemas/ApplePayAddressParameters'
    ApplePayShippingContactFields:
      type: array
      items:
        $ref: '#/components/schemas/ApplePayAddressParameters'
    ApplePayRecurringPaymentRequest:
      type: object
      required:
        - payment_description
        - regular_billing
        - management_u_r_l
      properties:
        payment_description:
          type: string
          description: >-
            A description of the recurring payment that Apple Pay displays to
            the user in the payment sheet
        regular_billing:
          $ref: '#/components/schemas/ApplePayRegularBillingRequest'
        billing_agreement:
          type: string
          description: >-
            A localized billing agreement that the payment sheet displays to the
            user before the user authorizes the payment
          nullable: true
        management_u_r_l:
          type: string
          description: >-
            A URL to a web page where the user can update or delete the payment
            method for the recurring payment
          example: https://hyperswitch.io
    AmazonPayDeliveryPrice:
      type: object
      required:
        - amount
        - currency_code
      properties:
        amount:
          $ref: '#/components/schemas/MinorUnit'
        currency_code:
          $ref: '#/components/schemas/Currency'
    AmazonPayShippingMethod:
      type: object
      required:
        - shipping_method_name
        - shipping_method_code
      properties:
        shipping_method_name:
          type: string
          description: Name of the shipping method
        shipping_method_code:
          type: string
          description: Code of the shipping method
    ProtestType:
      type: string
      description: >-
        Defines the type of protest for non-payment, such as whether the count
        is based on calendar days, business days, or if the protest logic is
        determined by a pre-signed contract with the bank.
      enum:
        - disabled
        - calendar_days
        - business_days
        - contract_default
    CalculationType:
      type: string
      description: >-
        Defines how the payment amount is calculated for penalties or discounts,
        either as a percentage or as a flat amount.
      enum:
        - percentage
        - flat_amount
    SantanderMandatePeriodicity:
      type: string
      enum:
        - weekly
        - monthly
        - quarterly
        - semiannually
        - annually
    AccountType:
      type: string
      description: Account type for Santander Pix Automatico recurring charges
      enum:
        - current
        - savings
        - payment
    BankType:
      type: string
      enum:
        - checking
        - savings
    BankHolderType:
      type: string
      enum:
        - personal
        - business
    UpiSource:
      type: string
      description: >-
        The source type for UPI payments. This indicates what payment source is
        being used for the UPI transaction.
      enum:
        - UPI_CC
        - UPI_CL
        - UPI_ACCOUNT
        - UPI_CC_CL
        - UPI_PPI
        - UPI_VOUCHER
    PaymentProcessingDetails:
      type: object
      required:
        - payment_processing_certificate
        - payment_processing_certificate_key
      properties:
        payment_processing_certificate:
          type: string
        payment_processing_certificate_key:
          type: string
    GpayAllowedMethodsParameters:
      type: object
      required:
        - allowed_auth_methods
        - allowed_card_networks
      properties:
        allowed_auth_methods:
          type: array
          items:
            type: string
          description: 'The list of allowed auth methods (ex: 3DS, No3DS, PAN_ONLY etc)'
        allowed_card_networks:
          type: array
          items:
            type: string
          description: 'The list of allowed card networks (ex: AMEX,JCB etc)'
        billing_address_required:
          type: boolean
          description: Is billing address required
          nullable: true
        billing_address_parameters:
          allOf:
            - $ref: '#/components/schemas/GpayBillingAddressParameters'
          nullable: true
        assurance_details_required:
          type: boolean
          description: Whether assurance details are required
          nullable: true
        allow_credit_cards:
          type: boolean
          description: Set to false if you don't want to allow credit cards
          nullable: true
    GpayTokenizationSpecification:
      type: object
      required:
        - type
        - parameters
      properties:
        type:
          type: string
          description: 'The token specification type(ex: PAYMENT_GATEWAY)'
        parameters:
          $ref: '#/components/schemas/GpayTokenParameters'
    ApplePayAddressParameters:
      type: string
      enum:
        - postalAddress
        - phone
        - email
    ApplePayRegularBillingRequest:
      type: object
      required:
        - amount
        - label
        - payment_timing
      properties:
        amount:
          type: string
          description: The amount of the recurring payment
          example: '38.02'
        label:
          type: string
          description: >-
            The label that Apple Pay displays to the user in the payment sheet
            with the recurring details
        payment_timing:
          $ref: '#/components/schemas/ApplePayPaymentTiming'
        recurring_payment_start_date:
          type: string
          format: date-time
          description: The date of the first payment
          nullable: true
        recurring_payment_end_date:
          type: string
          format: date-time
          description: The date of the final payment
          nullable: true
        recurring_payment_interval_unit:
          allOf:
            - $ref: '#/components/schemas/RecurringPaymentIntervalUnit'
          nullable: true
        recurring_payment_interval_count:
          type: integer
          format: int32
          description: The number of interval units that make up the total payment interval
          nullable: true
    GpayBillingAddressParameters:
      type: object
      required:
        - phone_number_required
        - format
      properties:
        phone_number_required:
          type: boolean
          description: Is billing phone number required
        format:
          $ref: '#/components/schemas/GpayBillingAddressFormat'
    GpayTokenParameters:
      type: object
      properties:
        gateway:
          type: string
          description: The name of the connector
          nullable: true
        gateway_merchant_id:
          type: string
          description: The merchant ID registered in the connector associated
          nullable: true
        stripe:version:
          type: string
          nullable: true
        stripe:publishableKey:
          type: string
          nullable: true
        protocol_version:
          type: string
          description: The protocol version for encryption
          nullable: true
        public_key:
          type: string
          description: The public key provided by the merchant
          nullable: true
    ApplePayPaymentTiming:
      type: string
      enum:
        - immediate
        - recurring
    GpayBillingAddressFormat:
      type: string
      enum:
        - FULL
        - MIN
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Format: `api-key=<api_key>`


        Use the API key created under your merchant account from the HyperSwitch
        dashboard. API key is used to authenticate API requests from your
        merchant server only. Don't expose this key on a website or embed it in
        a mobile application.

````