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

> To update the properties of a *PaymentIntent* object. This may include attaching a payment method, or attaching customer object or metadata fields after the Payment is created



## OpenAPI

````yaml post /payments/{payment_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
  - name: Authentication
    description: Create and manage authentication
  - name: Subscriptions
    description: Subscription management and billing endpoints
  - name: Card Issuer
    description: Create and manage card issuers
paths:
  /payments/{payment_id}:
    post:
      tags:
        - Payments
      summary: Payments - Update
      description: >-
        To update the properties of a *PaymentIntent* object. This may include
        attaching a payment method, or attaching customer object or metadata
        fields after the Payment is created
      operationId: Update a Payment
      parameters:
        - name: payment_id
          in: path
          description: The identifier for payment
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentsUpdateRequest'
            examples:
              Update the payment amount:
                value:
                  amount: 7654
              Update the shipping address:
                value:
                  shipping:
                    address:
                      city: San Fransico
                      country: US
                      first_name: joseph
                      last_name: Doe
                      line1: '1467'
                      line2: Harrison Street
                      line3: Harrison Street
                      state: California
                      zip: '94122'
                    phone:
                      country_code: '+91'
                      number: '9123456789'
        required: true
      responses:
        '200':
          description: Payment updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsCreateResponseOpenApi'
        '400':
          description: Missing mandatory fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericErrorResponseOpenApi'
      security:
        - api_key: []
        - publishable_key: []
components:
  schemas:
    PaymentsUpdateRequest:
      type: object
      properties:
        amount:
          type: integer
          format: int64
          description: >-
            The primary amount for the payment, provided in the lowest
            denomination of the specified currency (e.g., 6540 for $65.40 USD).
            This field is mandatory for creating a payment.
          example: 6540
          nullable: true
          minimum: 0
        order_tax_amount:
          type: integer
          format: int64
          description: >-
            Total tax amount applicable to the order, in the lowest denomination
            of the currency.
          example: 6540
          nullable: true
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        amount_to_capture:
          type: integer
          format: int64
          description: >-
            The amount to be captured from the user's payment method, in the
            lowest denomination. If not provided, and `capture_method` is
            `automatic`, the full payment `amount` will be captured. If
            `capture_method` is `manual`, this can be specified in the
            `/capture` call. Must be less than or equal to the authorized
            amount.
          example: 6540
          nullable: true
        shipping_cost:
          type: integer
          format: int64
          description: >-
            The shipping cost for the payment. This is required for tax
            calculation in some regions.
          example: 6540
          nullable: true
        payment_id:
          type: string
          description: >-
            Optional. A merchant-provided unique identifier for the payment,
            contains 30 characters long (e.g.,
            "pay_mbabizu24mvu3mela5njyhpit4"). If provided, it ensures
            idempotency for the payment creation request. If omitted,
            Hyperswitch generates a unique ID for the payment.
          example: pay_mbabizu24mvu3mela5njyhpit4
          nullable: true
          maxLength: 30
          minLength: 30
        routing:
          allOf:
            - $ref: '#/components/schemas/StraightThroughAlgorithm'
          nullable: true
        connector:
          type: array
          items:
            $ref: '#/components/schemas/Connector'
          description: >-
            This allows to manually select a connector with which the payment
            can go through.
          example:
            - stripe
            - adyen
          nullable: true
        capture_method:
          allOf:
            - $ref: '#/components/schemas/CaptureMethod'
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: three_ds
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        confirm:
          type: boolean
          description: >-
            If set to `true`, Hyperswitch attempts to confirm and authorize the
            payment immediately after creation, provided sufficient payment
            method details are included. If `false` or omitted (default is
            `false`), the payment is created with a status such as
            `requires_payment_method` or `requires_confirmation`, and a separate
            `POST /payments/{payment_id}/confirm` call is necessary to proceed
            with authorization.
          default: false
          example: true
          nullable: true
        customer:
          allOf:
            - $ref: '#/components/schemas/CustomerDetails'
          nullable: true
        customer_id:
          type: string
          description: The identifier for the customer
          example: cus_y3oqhf46pyzuxjbcn2giaqnb44
          nullable: true
          maxLength: 64
          minLength: 1
        off_session:
          type: boolean
          description: >-
            Set to true to indicate that the customer is not in your checkout
            flow during this payment, and therefore is unable to authenticate.
            This parameter is intended for scenarios where you collect card
            details and charge them later. When making a recurring payment by
            passing a mandate_id, this parameter is mandatory
          example: true
          nullable: true
        description:
          type: string
          description: >-
            An arbitrary string attached to the payment. Often useful for
            displaying to users or for your own internal record-keeping.
          example: It's my first payment request
          nullable: true
        return_url:
          type: string
          description: >-
            The URL to redirect the customer to after they complete the payment
            process or authentication. This is crucial for flows that involve
            off-site redirection (e.g., 3DS, some bank redirects, wallet
            payments).
          example: https://hyperswitch.io
          nullable: true
          maxLength: 2048
        setup_future_usage:
          allOf:
            - $ref: '#/components/schemas/FutureUsage'
          nullable: true
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodDataRequest'
          nullable: true
        payment_method:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
          nullable: true
        payment_token:
          type: string
          description: >-
            As Hyperswitch tokenises the sensitive details about the payments
            method, it provides the payment_token as a reference to a stored
            payment method, ensuring that the sensitive details are not exposed
            in any manner.
          example: 187282ab-40ef-47a9-9206-5099ba31e432
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        statement_descriptor_name:
          type: string
          description: >-
            For non-card charges, you can use this value as the complete
            description that appears on your customers’ statements. Must contain
            at least one letter, maximum 22 characters. To be deprecated soon,
            use billing_descriptor instead.
          deprecated: true
          example: Hyperswitch Router
          nullable: true
          maxLength: 255
        statement_descriptor_suffix:
          type: string
          description: >-
            Provides information about a card payment that customers see on
            their statements. Concatenated with the prefix (shortened
            descriptor) or statement descriptor that’s set on the account to
            form the complete statement descriptor. Maximum 22 characters for
            the concatenated descriptor. To be deprecated soon, use
            billing_descriptor instead.
          deprecated: true
          example: Payment for shoes purchase
          nullable: true
          maxLength: 255
        order_details:
          type: array
          items:
            $ref: '#/components/schemas/OrderDetailsWithAmount'
          description: >-
            Use this object to capture the details about the different products
            for which the payment is being made. The sum of amount across
            different products here should be equal to the overall payment
            amount
          example: |-
            [{
                    "product_name": "Apple iPhone 16",
                    "quantity": 1,
                    "amount" : 69000
                    "product_img_link" : "https://dummy-img-link.com"
                }]
          nullable: true
        mandate_data:
          allOf:
            - $ref: '#/components/schemas/MandateData'
          nullable: true
        customer_acceptance:
          allOf:
            - $ref: '#/components/schemas/CustomerAcceptance'
          nullable: true
        browser_info:
          allOf:
            - $ref: '#/components/schemas/BrowserInformation'
          nullable: true
        payment_experience:
          allOf:
            - $ref: '#/components/schemas/PaymentExperience'
          nullable: true
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        merchant_connector_details:
          allOf:
            - $ref: '#/components/schemas/MerchantConnectorDetailsWrap'
          nullable: true
        allowed_payment_method_types:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          description: >-
            Use this parameter to restrict the Payment Method Types to show for
            a given PaymentIntent
          nullable: true
        retry_action:
          allOf:
            - $ref: '#/components/schemas/RetryAction'
          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
        connector_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadata'
          nullable: true
        payment_link:
          type: boolean
          description: >-
            Whether to generate the payment link for this payment or not (if
            applicable)
          default: false
          example: true
          nullable: true
        payment_link_config:
          allOf:
            - $ref: '#/components/schemas/PaymentCreatePaymentLinkConfig'
          nullable: true
        payment_link_config_id:
          type: string
          description: >-
            Custom payment link config id set at business profile, send only if
            business_specific_configs is configured
          nullable: true
        surcharge_details:
          allOf:
            - $ref: '#/components/schemas/RequestSurchargeDetails'
          nullable: true
        payment_type:
          allOf:
            - $ref: '#/components/schemas/PaymentType'
          nullable: true
        request_incremental_authorization:
          type: boolean
          description: >-
            Request an incremental authorization, i.e., increase the authorized
            amount on a confirmed payment before you capture it.
          nullable: true
        session_expiry:
          type: integer
          format: int32
          description: >-
            Will be used to expire client secret after certain amount of time to
            be supplied in seconds

            (900) for 15 mins
          example: 900
          nullable: true
          minimum: 0
        frm_metadata:
          type: object
          description: >-
            Additional data related to some frm(Fraud Risk Management)
            connectors
          nullable: true
        request_external_three_ds_authentication:
          type: boolean
          description: Whether to perform external authentication (if applicable)
          example: true
          nullable: true
        three_ds_data:
          allOf:
            - $ref: '#/components/schemas/ExternalThreeDsData'
          nullable: true
        recurring_details:
          allOf:
            - $ref: '#/components/schemas/RecurringDetails'
          nullable: true
        split_payments:
          allOf:
            - $ref: '#/components/schemas/SplitPaymentsRequest'
          nullable: true
        request_extended_authorization:
          type: boolean
          description: >-
            Optional boolean value to extent authorization period of this
            payment


            capture method must be manual or manual_multiple
          default: false
          nullable: true
        merchant_order_reference_id:
          type: string
          description: >-
            Your unique identifier for this payment or order. This ID helps you
            reconcile payments on your system. If provided, it is passed to the
            connector if supported.
          example: Custom_Order_id_123
          nullable: true
          maxLength: 255
        skip_external_tax_calculation:
          type: boolean
          description: Whether to calculate tax for this payment intent
          nullable: true
        psd2_sca_exemption_type:
          allOf:
            - $ref: '#/components/schemas/ScaExemptionType'
          nullable: true
        ctp_service_details:
          allOf:
            - $ref: '#/components/schemas/CtpServiceDetails'
          nullable: true
        force_3ds_challenge:
          type: boolean
          description: Indicates if 3ds challenge is forced
          nullable: true
        threeds_method_comp_ind:
          allOf:
            - $ref: '#/components/schemas/ThreeDsCompletionIndicator'
          nullable: true
        is_iframe_redirection_enabled:
          type: boolean
          description: Indicates if the redirection has to open in the iframe
          nullable: true
        all_keys_required:
          type: boolean
          description: If enabled, provides whole connector response
          nullable: true
        payment_channel:
          allOf:
            - $ref: '#/components/schemas/PaymentChannel'
          nullable: true
        tax_status:
          allOf:
            - $ref: '#/components/schemas/TaxStatus'
          nullable: true
        discount_amount:
          type: integer
          format: int64
          description: >-
            Total amount of the discount you have applied to the order or
            transaction.
          example: 6540
          nullable: true
        shipping_amount_tax:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        duty_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        order_date:
          type: string
          format: date-time
          description: Date the payer placed the order.
          nullable: true
        enable_partial_authorization:
          type: boolean
          description: Allow partial authorization for this payment
          default: false
          nullable: true
        enable_overcapture:
          type: boolean
          description: Boolean indicating whether to enable overcapture for this payment
          example: true
          nullable: true
        is_stored_credential:
          type: boolean
          description: >-
            Boolean flag indicating whether this payment method is stored and
            has been previously used for payments
          example: true
          nullable: true
        mit_category:
          allOf:
            - $ref: '#/components/schemas/MitCategory'
          nullable: true
        billing_descriptor:
          allOf:
            - $ref: '#/components/schemas/BillingDescriptor'
          nullable: true
        tokenization:
          allOf:
            - $ref: '#/components/schemas/Tokenization'
          nullable: true
        partner_merchant_identifier_details:
          allOf:
            - $ref: '#/components/schemas/PartnerMerchantIdentifierDetails'
          nullable: true
        installment_options:
          type: array
          items:
            $ref: '#/components/schemas/InstallmentOption'
          description: >-
            Installment payment options grouped by payment method. When
            provided, the payment is treated as an installment payment.
          nullable: true
        installment_data:
          allOf:
            - $ref: '#/components/schemas/InstallmentRequest'
          nullable: true
    PaymentsCreateResponseOpenApi:
      type: object
      required:
        - payment_id
        - merchant_id
        - status
        - amount
        - net_amount
        - amount_capturable
        - processor_merchant_id
        - currency
        - payment_method
        - attempt_count
      properties:
        payment_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
          maxLength: 30
          minLength: 30
        merchant_id:
          type: string
          description: >-
            This is an identifier for the merchant account. This is inferred
            from the API key

            provided during the request
          example: merchant_1668273825
          maxLength: 255
        status:
          allOf:
            - $ref: '#/components/schemas/IntentStatus'
          default: requires_confirmation
        amount:
          type: integer
          format: int64
          description: >-
            The payment amount. Amount for the payment in lowest denomination of
            the currency. (i.e) in cents for USD denomination, in paisa for INR
            denomination etc.,
          example: 6540
        net_amount:
          type: integer
          format: int64
          description: >-
            The payment net amount. net_amount = amount +
            surcharge_details.surcharge_amount + surcharge_details.tax_amount +
            shipping_cost + order_tax_amount,

            If no surcharge_details, shipping_cost, order_tax_amount, net_amount
            = amount
          example: 6540
        shipping_cost:
          type: integer
          format: int64
          description: The shipping cost for the payment.
          example: 6540
          nullable: true
        amount_capturable:
          type: integer
          format: int64
          description: >-
            The amount (in minor units) that can still be captured for this
            payment. This is relevant when `capture_method` is `manual`. Once
            fully captured, or if `capture_method` is `automatic` and payment
            succeeded, this will be 0.
          example: 6540
          minimum: 100
        amount_received:
          type: integer
          format: int64
          description: >-
            The total amount (in minor units) that has been captured for this
            payment. For `fauxpay` sandbox connector, this might reflect the
            authorized amount if `status` is `succeeded` even if
            `capture_method` was `manual`.
          example: 6540
          nullable: true
        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
        sdk_authorization:
          type: string
          description: Token containing encoded information for sdk authorization.
          example: cHJvZmlsZV9pZD1wcm9mXzEyMyxwdWJsaXNoYWJsZV9rZXk9cGtfbGl2ZV8xMjM=
          nullable: true
        connector:
          type: string
          description: >-
            The name of the payment connector (e.g., 'stripe', 'adyen') that
            processed or is processing this payment.
          example: stripe
          nullable: true
        state_metadata:
          allOf:
            - $ref: '#/components/schemas/PaymentIntentStateMetadata'
          nullable: true
        client_secret:
          type: string
          description: >-
            A secret token unique to this payment intent. It is primarily used
            by client-side applications (e.g., Hyperswitch SDKs) to authenticate
            actions like confirming the payment or handling next actions. This
            secret should be handled carefully and not exposed publicly beyond
            its intended client-side use.
          example: pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo
          nullable: true
        created:
          type: string
          format: date-time
          description: >-
            Timestamp indicating when this payment intent was created, in ISO
            8601 format.
          example: '2022-09-10T10:11:12Z'
          nullable: true
        modified_at:
          type: string
          format: date-time
          description: >-
            Timestamp indicating when this payment intent was last modified, in
            ISO 8601 format.
          example: '2022-09-10T10:11:12Z'
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        customer_id:
          type: string
          description: >-
            The identifier for the customer object. If not provided the customer
            ID will be autogenerated.

            This field will be deprecated soon. Please refer to `customer.id`
          deprecated: true
          example: cus_y3oqhf46pyzuxjbcn2giaqnb44
          nullable: true
          maxLength: 64
          minLength: 1
        description:
          type: string
          description: >-
            An arbitrary string providing a description for the payment, often
            useful for display or internal record-keeping.
          example: It's my first payment request
          nullable: true
        refunds:
          type: array
          items:
            $ref: '#/components/schemas/RefundResponse'
          description: >-
            An array of refund objects associated with this payment. Empty or
            null if no refunds have been processed.
          nullable: true
        disputes:
          type: array
          items:
            $ref: '#/components/schemas/DisputeResponsePaymentsRetrieve'
          description: List of disputes that happened on this intent
          nullable: true
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/PaymentAttemptResponse'
          description: List of attempts that happened on this intent
          nullable: true
        captures:
          type: array
          items:
            $ref: '#/components/schemas/CaptureResponse'
          description: List of captures done on latest attempt
          nullable: true
        mandate_id:
          type: string
          description: >-
            A unique identifier to link the payment to a mandate, can be used
            instead of payment_method_data, in case of setting up recurring
            payments
          example: mandate_iwer89rnjef349dni3
          nullable: true
          maxLength: 255
        mandate_data:
          allOf:
            - $ref: '#/components/schemas/MandateData'
          nullable: true
        setup_future_usage:
          allOf:
            - $ref: '#/components/schemas/FutureUsage'
          nullable: true
        off_session:
          type: boolean
          description: >-
            Set to true to indicate that the customer is not in your checkout
            flow during this payment, and therefore is unable to authenticate.
            This parameter is intended for scenarios where you collect card
            details and charge them later. This parameter can only be used with
            confirm=true.
          example: true
          nullable: true
        capture_method:
          allOf:
            - $ref: '#/components/schemas/CaptureMethod'
          nullable: true
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_data:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodDataResponseWithBilling'
          nullable: true
        payment_token:
          type: string
          description: Provide a reference to a stored payment method
          example: 187282ab-40ef-47a9-9206-5099ba31e432
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        order_details:
          type: array
          items:
            $ref: '#/components/schemas/OrderDetailsWithAmount'
          description: >-
            Information about the product , quantity and amount for connectors.
            (e.g. Klarna)
          example: |-
            [{
                    "product_name": "gillete creme",
                    "quantity": 15,
                    "amount" : 900
                }]
          nullable: true
        email:
          type: string
          description: >-
            description: The customer's email address

            This field will be deprecated soon. Please refer to `customer.email`
            object
          deprecated: true
          example: johntest@test.com
          nullable: true
          maxLength: 255
        name:
          type: string
          description: >-
            description: The customer's name

            This field will be deprecated soon. Please refer to `customer.name`
            object
          deprecated: true
          example: John Test
          nullable: true
          maxLength: 255
        phone:
          type: string
          description: >-
            The customer's phone number

            This field will be deprecated soon. Please refer to `customer.phone`
            object
          deprecated: true
          example: '9123456789'
          nullable: true
          maxLength: 255
        return_url:
          type: string
          description: The URL to redirect after the completion of the operation
          example: https://hyperswitch.io
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: three_ds
          nullable: true
        statement_descriptor_name:
          type: string
          description: >-
            For non-card charges, you can use this value as the complete
            description that appears on your customers’ statements. Must contain
            at least one letter, maximum 22 characters.
          example: Hyperswitch Router
          nullable: true
          maxLength: 255
        statement_descriptor_suffix:
          type: string
          description: >-
            Provides information about a card payment that customers see on
            their statements. Concatenated with the prefix (shortened
            descriptor) or statement descriptor that’s set on the account to
            form the complete statement descriptor. Maximum 255 characters for
            the concatenated descriptor.
          example: Payment for shoes purchase
          nullable: true
          maxLength: 255
        next_action:
          allOf:
            - $ref: '#/components/schemas/NextActionData'
          nullable: true
        cancellation_reason:
          type: string
          description: >-
            If the payment intent was cancelled, this field provides a textual
            reason for the cancellation (e.g., "requested_by_customer",
            "abandoned").
          nullable: true
        error_code:
          type: string
          description: >-
            The connector-specific error code from the last failed payment
            attempt associated with this payment intent.
          example: E0001
          nullable: true
        error_message:
          type: string
          description: >-
            A human-readable error message from the last failed payment attempt
            associated with this payment intent.
          example: Failed while verifying the card
          nullable: true
        error_details:
          allOf:
            - $ref: '#/components/schemas/PaymentErrorDetails'
          nullable: true
        payment_experience:
          allOf:
            - $ref: '#/components/schemas/PaymentExperience'
          nullable: true
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        connector_label:
          type: string
          description: >-
            A label identifying the specific merchant connector account (MCA)
            used for this payment. This often combines the connector name,
            business country, and a custom label (e.g., "stripe_US_primary").
          example: stripe_US_food
          nullable: true
        business_country:
          allOf:
            - $ref: '#/components/schemas/CountryAlpha2'
          nullable: true
        business_label:
          type: string
          description: >-
            The label identifying the specific business unit or profile under
            which this payment was processed by the merchant.
          nullable: true
        business_sub_label:
          type: string
          description: >-
            An optional sub-label for further categorization of the business
            unit or profile used for this payment.
          nullable: true
        allowed_payment_method_types:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          description: Allowed Payment Method Types for a given PaymentIntent
          nullable: true
        manual_retry_allowed:
          type: boolean
          description: >-
            If true the payment can be retried with same or different payment
            method which means the confirm call can be made again.
          nullable: true
        connector_transaction_id:
          type: string
          description: A unique identifier for a payment provided by the connector
          example: 993672945374576J
          nullable: true
        frm_message:
          allOf:
            - $ref: '#/components/schemas/FrmMessage'
          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
        connector_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadata'
          nullable: true
        connector_response_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadataResponse'
          nullable: true
        feature_metadata:
          allOf:
            - $ref: '#/components/schemas/FeatureMetadata'
          nullable: true
        reference_id:
          type: string
          description: reference(Identifier) to the payment at connector side
          example: 993672945374576J
          nullable: true
        payment_link:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkResponse'
          nullable: true
        profile_id:
          type: string
          description: The business profile that is associated with this payment
          nullable: true
        surcharge_details:
          allOf:
            - $ref: '#/components/schemas/RequestSurchargeDetails'
          nullable: true
        attempt_count:
          type: integer
          format: int32
          description: Total number of attempts associated with this payment
        merchant_decision:
          type: string
          description: >-
            Denotes the action(approve or reject) taken by merchant in case of
            manual review. Manual review can occur when the transaction is
            marked as risky by the frm_processor, payment processor or when
            there is underpayment/over payment incase of crypto payment
          nullable: true
        merchant_connector_id:
          type: string
          description: >-
            Identifier of the connector ( merchant connector account ) which was
            chosen to make the payment
          nullable: true
        incremental_authorization_allowed:
          type: boolean
          description: >-
            If true, incremental authorization can be performed on this payment,
            in case the funds authorized initially fall short.
          nullable: true
        authorization_count:
          type: integer
          format: int32
          description: >-
            Total number of authorizations happened in an
            incremental_authorization payment
          nullable: true
        incremental_authorizations:
          type: array
          items:
            $ref: '#/components/schemas/IncrementalAuthorizationResponse'
          description: List of incremental authorizations happened to the payment
          nullable: true
        external_authentication_details:
          allOf:
            - $ref: '#/components/schemas/ExternalAuthenticationDetailsResponse'
          nullable: true
        external_3ds_authentication_attempted:
          type: boolean
          description: Flag indicating if external 3ds authentication is made or not
          nullable: true
        expires_on:
          type: string
          format: date-time
          description: Date Time for expiry of the payment
          example: '2022-09-10T10:11:12Z'
          nullable: true
        fingerprint:
          type: string
          description: |-
            Payment Fingerprint, to identify a particular card.
            It is a 20 character long alphanumeric code.
          nullable: true
        browser_info:
          allOf:
            - $ref: '#/components/schemas/BrowserInformation'
          nullable: true
        payment_channel:
          allOf:
            - $ref: '#/components/schemas/PaymentChannel'
          nullable: true
        payment_method_id:
          type: string
          description: >-
            A unique identifier for the payment method used in this payment. If
            the payment method was saved or tokenized, this ID can be used to
            reference it for future transactions or recurring payments.

            Refer `payment_method_tokenization_details` for detailed view of
            payment method tokenization
          nullable: true
        network_transaction_id:
          type: string
          description: >-
            The network transaction ID is a unique identifier for the
            transaction as recognized by the payment network (e.g., Visa,
            Mastercard), this ID can be used to reference it for future
            transactions or recurring payments.

            Refer `payment_method_tokenization_details` for detailed view of
            payment method tokenization
          nullable: true
        payment_method_status:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodStatus'
          nullable: true
        updated:
          type: string
          format: date-time
          description: Date time at which payment was updated
          example: '2022-09-10T10:11:12Z'
          nullable: true
        split_payments:
          allOf:
            - $ref: '#/components/schemas/ConnectorChargeResponseData'
          nullable: true
        frm_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. FRM Metadata is useful
            for storing additional, structured information on an object related
            to FRM.
          nullable: true
        extended_authorization_applied:
          type: boolean
          description: >-
            flag that indicates if extended authorization is applied on this
            payment or not
          nullable: true
        extended_authorization_last_applied_at:
          type: string
          format: date-time
          description: >-
            date and time at which extended authorization was last applied on
            this payment
          example: '2022-09-10T10:11:12Z'
          nullable: true
        request_extended_authorization:
          type: boolean
          description: >-
            Optional boolean value to extent authorization period of this
            payment


            capture method must be manual or manual_multiple
          default: false
          nullable: true
        capture_before:
          type: string
          format: date-time
          description: date and time after which this payment cannot be captured
          nullable: true
        merchant_order_reference_id:
          type: string
          description: >-
            Merchant's identifier for the payment/invoice. This will be sent to
            the connector

            if the connector provides support to accept multiple reference ids.

            In case the connector supports only one reference id, Hyperswitch's
            Payment ID will be sent as reference.
          example: Custom_Order_id_123
          nullable: true
          maxLength: 255
        order_tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        connector_mandate_id:
          type: string
          description: Connector Identifier for the payment method
          nullable: true
        card_discovery:
          allOf:
            - $ref: '#/components/schemas/CardDiscovery'
          nullable: true
        force_3ds_challenge:
          type: boolean
          description: Indicates if 3ds challenge is forced
          nullable: true
        force_3ds_challenge_trigger:
          type: boolean
          description: Indicates if 3ds challenge is triggered
          nullable: true
        issuer_error_code:
          type: string
          description: Error code received from the issuer in case of failed payments
          nullable: true
        issuer_error_message:
          type: string
          description: Error message received from the issuer in case of failed payments
          nullable: true
        is_iframe_redirection_enabled:
          type: boolean
          description: Indicates if the redirection has to open in the iframe
          nullable: true
        whole_connector_response:
          type: string
          description: Contains whole connector response
          nullable: true
        enable_partial_authorization:
          type: boolean
          description: Allow partial authorization for this payment
          default: false
          nullable: true
        enable_overcapture:
          type: boolean
          description: Bool indicating if overcapture  must be requested for this payment
          nullable: true
        is_overcapture_enabled:
          type: boolean
          description: >-
            Boolean indicating whether overcapture is effectively enabled for
            this payment
          nullable: true
        network_details:
          allOf:
            - $ref: '#/components/schemas/NetworkDetails'
          nullable: true
        is_stored_credential:
          type: boolean
          description: >-
            Boolean flag indicating whether this payment method is stored and
            has been previously used for payments
          example: true
          nullable: true
        mit_category:
          allOf:
            - $ref: '#/components/schemas/MitCategory'
          nullable: true
        billing_descriptor:
          allOf:
            - $ref: '#/components/schemas/BillingDescriptor'
          nullable: true
        tokenization:
          allOf:
            - $ref: '#/components/schemas/Tokenization'
          nullable: true
        partner_merchant_identifier_details:
          allOf:
            - $ref: '#/components/schemas/PartnerMerchantIdentifierDetails'
          nullable: true
        payment_method_tokenization_details:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodTokenizationDetails'
          nullable: true
        installment_options:
          type: array
          items:
            $ref: '#/components/schemas/InstallmentOption'
          description: >-
            Installment payment options associated with this payment, grouped by
            payment method
          nullable: true
        installment_data:
          allOf:
            - $ref: '#/components/schemas/InstallmentData'
          nullable: true
    GenericErrorResponseOpenApi:
      type: object
      required:
        - error_type
        - message
        - code
      properties:
        error_type:
          type: string
          example: invalid_request
        message:
          type: string
          example: 'Missing required param: {param}'
        code:
          type: string
          example: IR_04
    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
    StraightThroughAlgorithm:
      oneOf:
        - type: object
          title: Single
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - single
            data:
              $ref: '#/components/schemas/RoutableConnectorChoice'
        - type: object
          title: Priority
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - priority
            data:
              type: array
              items:
                $ref: '#/components/schemas/RoutableConnectorChoice'
        - type: object
          title: VolumeSplit
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - volume_split
            data:
              type: array
              items:
                $ref: '#/components/schemas/ConnectorVolumeSplit'
      discriminator:
        propertyName: type
    Connector:
      type: string
      enum:
        - 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
        - payu
        - peachpayments
        - payjustnow
        - payjustnowinstore
        - phonepe
        - placetopay
        - powertranz
        - prophetpay
        - rapyd
        - razorpay
        - recurly
        - redsys
        - revolv3
        - sanlam
        - 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
    CaptureMethod:
      type: string
      description: >-
        Specifies how the payment is captured.

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

        - `manual`: Funds are authorized but not captured. A separate request to
        the `/payments/{payment_id}/capture` endpoint is required to capture the
        funds.
      enum:
        - automatic
        - manual
        - manual_multiple
        - scheduled
        - sequential_automatic
    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
    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
    CustomerDetails:
      type: object
      description: >-
        Passing this object creates a new customer or attaches an existing
        customer to the payment
      properties:
        id:
          type: string
          description: The identifier for the customer.
          example: cus_y3oqhf46pyzuxjbcn2giaqnb44
          nullable: true
          maxLength: 64
          minLength: 1
        name:
          type: string
          description: The customer's name
          example: John Doe
          nullable: true
          maxLength: 255
        email:
          type: string
          description: The customer's email address
          example: johntest@test.com
          nullable: true
          maxLength: 255
        phone:
          type: string
          description: The customer's phone number
          example: '9123456789'
          nullable: true
          maxLength: 10
        phone_country_code:
          type: string
          description: The country code for the customer's phone number
          example: '+1'
          nullable: true
          maxLength: 2
        tax_registration_id:
          type: string
          description: The tax registration identifier of the customer.
          nullable: true
          maxLength: 255
        document_details:
          allOf:
            - $ref: '#/components/schemas/CustomerDocumentDetails'
          nullable: true
    FutureUsage:
      type: string
      description: >-
        Specifies how the payment method can be used for future payments.

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

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

        If omitted, defaults to `on_session`.
      enum:
        - off_session
        - on_session
    PaymentMethodDataRequest:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentMethodData'
          nullable: true
        - type: object
          properties:
            billing:
              allOf:
                - $ref: '#/components/schemas/Address'
              nullable: true
      description: The payment method information provided for making a payment
    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
    OrderDetailsWithAmount:
      type: object
      required:
        - product_name
        - quantity
        - amount
      properties:
        product_name:
          type: string
          description: Name of the product that is being purchased
          example: shirt
          maxLength: 255
        quantity:
          type: integer
          format: int32
          description: The quantity of the product to be purchased
          example: 1
          minimum: 0
        amount:
          type: integer
          format: int64
          description: the amount per quantity of product
        tax_rate:
          type: number
          format: double
          description: tax rate applicable to the product
          nullable: true
        total_tax_amount:
          type: integer
          format: int64
          description: total tax amount applicable to the product
          nullable: true
        requires_shipping:
          type: boolean
          nullable: true
        product_img_link:
          type: string
          description: The image URL of the product
          nullable: true
        product_id:
          type: string
          description: ID of the product that is being purchased
          nullable: true
        category:
          type: string
          description: Category of the product that is being purchased
          nullable: true
        sub_category:
          type: string
          description: Sub category of the product that is being purchased
          nullable: true
        brand:
          type: string
          description: Brand of the product that is being purchased
          nullable: true
        product_type:
          allOf:
            - $ref: '#/components/schemas/ProductType'
          nullable: true
        product_tax_code:
          type: string
          description: The tax code for the product
          nullable: true
        description:
          type: string
          description: Description for the item
          nullable: true
        sku:
          type: string
          description: Stock Keeping Unit (SKU) or the item identifier for this item.
          nullable: true
        upc:
          type: string
          description: Universal Product Code for the item.
          nullable: true
        commodity_code:
          type: string
          description: >-
            Code describing a commodity or a group of commodities pertaining to
            goods classification.
          nullable: true
        unit_of_measure:
          type: string
          description: Unit of measure used for the item quantity.
          nullable: true
        total_amount:
          type: integer
          format: int64
          description: Total amount for the item.
          nullable: true
        unit_discount_amount:
          type: integer
          format: int64
          description: Discount amount applied to this item.
          nullable: true
    MandateData:
      type: object
      description: >-
        Passing this object during payments creates a mandate. The mandate_type
        sub object is passed by the server.
      properties:
        update_mandate_id:
          type: string
          description: A way to update the mandate's payment method details
          nullable: true
        customer_acceptance:
          allOf:
            - $ref: '#/components/schemas/CustomerAcceptance'
          nullable: true
        mandate_type:
          allOf:
            - $ref: '#/components/schemas/MandateType'
          nullable: true
      additionalProperties: false
    CustomerAcceptance:
      type: object
      description: >-
        This "CustomerAcceptance" object is passed during Payments-Confirm
        request, it enlists the type, time, and mode of acceptance properties
        related to an acceptance done by the customer. The customer_acceptance
        sub object is usually passed by the SDK or client.
      required:
        - acceptance_type
      properties:
        acceptance_type:
          $ref: '#/components/schemas/AcceptanceType'
        accepted_at:
          type: string
          format: date-time
          description: Specifying when the customer acceptance was provided
          example: '2022-09-10T10:11:12Z'
          nullable: true
        online:
          allOf:
            - $ref: '#/components/schemas/OnlineMandate'
          nullable: true
      additionalProperties: false
    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
    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
    PaymentMethodType:
      type: string
      description: >-
        Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay'
        for wallets.
      enum:
        - ach
        - affirm
        - afterpay_clearpay
        - alfamart
        - ali_pay
        - ali_pay_hk
        - alma
        - amazon_pay
        - paysera
        - apple_pay
        - atome
        - bacs
        - bancontact_card
        - becs
        - benefit
        - bizum
        - blik
        - bluecode
        - boleto
        - bca_bank_transfer
        - bni_va
        - breadpay
        - bri_va
        - bhn_card_network
        - card_redirect
        - cimb_va
        - classic
        - credit
        - crypto_currency
        - cashapp
        - dana
        - danamon_va
        - debit
        - duit_now
        - efecty
        - eft
        - eft_debit_order
        - eps
        - flexiti
        - fps
        - evoucher
        - giropay
        - givex
        - google_pay
        - go_pay
        - gcash
        - ideal
        - interac
        - indomaret
        - klarna
        - kakao_pay
        - local_bank_redirect
        - mandiri_va
        - knet
        - mb_way
        - mobile_pay
        - momo
        - momo_atm
        - multibanco
        - online_banking_thailand
        - online_banking_czech_republic
        - online_banking_finland
        - online_banking_fpx
        - online_banking_poland
        - online_banking_slovakia
        - oxxo
        - pago_efectivo
        - permata_bank_transfer
        - open_banking_uk
        - pay_bright
        - payjustnow
        - paypal
        - paze
        - pix
        - pix_key
        - pix_emv
        - pix_automatico_qr
        - pix_automatico_push
        - pay_safe_card
        - przelewy24
        - prompt_pay
        - pse
        - qris
        - red_compra
        - red_pagos
        - samsung_pay
        - sepa
        - sepa_bank_transfer
        - sepa_guarenteed_debit
        - skrill
        - sofort
        - swish
        - touch_n_go
        - trustly
        - twint
        - upi_collect
        - upi_intent
        - upi_qr
        - vipps
        - viet_qr
        - venmo
        - walley
        - we_chat_pay
        - seven_eleven
        - lawson
        - mini_stop
        - family_mart
        - seicomart
        - pay_easy
        - local_bank_transfer
        - mifinity
        - open_banking_pis
        - direct_carrier_billing
        - instant_bank_transfer
        - instant_bank_transfer_finland
        - instant_bank_transfer_poland
        - revolut_pay
        - indonesian_bank_transfer
        - open_banking
        - network_token
    MerchantConnectorDetailsWrap:
      type: object
      description: Merchant connector details used to make payments.
      required:
        - creds_identifier
      properties:
        creds_identifier:
          type: string
          description: >-
            Creds Identifier is to uniquely identify the credentials. Do not
            send any sensitive info, like encoded_data in this field. And do not
            send the string "null".
        encoded_data:
          allOf:
            - $ref: '#/components/schemas/MerchantConnectorDetails'
          nullable: true
    RetryAction:
      type: string
      description: Denotes the retry action
      enum:
        - manual_retry
        - requeue
    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
    PaymentCreatePaymentLinkConfig:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentLinkConfigRequest'
          nullable: true
        - type: object
      description: Configure a custom payment link for the particular payment
    RequestSurchargeDetails:
      type: object
      description: Details of surcharge applied on this payment, if applicable
      required:
        - surcharge_amount
      properties:
        surcharge_amount:
          type: integer
          format: int64
          example: 6540
        tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    PaymentType:
      type: string
      description: >-
        The type of the payment that differentiates between normal and various
        types of mandate payments. Use 'setup_mandate' in case of zero auth
        flow.
      enum:
        - normal
        - new_mandate
        - setup_mandate
        - recurring_mandate
        - installment
    ExternalThreeDsData:
      type: object
      required:
        - transaction_status
      properties:
        authentication_cryptogram:
          allOf:
            - $ref: '#/components/schemas/Cryptogram'
          nullable: true
        ds_trans_id:
          type: string
          description: Directory Server Transaction ID generated during the 3DS process.
          nullable: true
        version:
          type: string
          description: The version of the 3DS protocol used (e.g., "2.1.0" or "2.2.0").
          nullable: true
        eci:
          type: string
          description: >-
            Electronic Commerce Indicator (ECI) value representing the 3DS
            authentication result.
          nullable: true
        transaction_status:
          $ref: '#/components/schemas/TransactionStatus'
    RecurringDetails:
      oneOf:
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - mandate_id
            data:
              type: string
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - payment_method_id
            data:
              type: string
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - processor_payment_token
            data:
              $ref: '#/components/schemas/ProcessorPaymentToken'
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - network_transaction_id_and_card_details
            data:
              $ref: '#/components/schemas/NetworkTransactionIdAndCardDetails'
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - network_transaction_id_and_network_token_details
            data:
              $ref: '#/components/schemas/NetworkTransactionIdAndNetworkTokenDetails'
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - network_transaction_id_and_decrypted_wallet_token_details
            data:
              $ref: >-
                #/components/schemas/NetworkTransactionIdAndDecryptedWalletTokenDetails
        - type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              enum:
                - card_with_limited_data
            data:
              $ref: '#/components/schemas/CardWithLimitedData'
      description: Details required for recurring payment
      discriminator:
        propertyName: type
    SplitPaymentsRequest:
      oneOf:
        - type: object
          required:
            - stripe_split_payment
          properties:
            stripe_split_payment:
              $ref: '#/components/schemas/StripeSplitPaymentRequest'
        - type: object
          required:
            - adyen_split_payment
          properties:
            adyen_split_payment:
              $ref: '#/components/schemas/AdyenSplitData'
        - type: object
          required:
            - xendit_split_payment
          properties:
            xendit_split_payment:
              $ref: '#/components/schemas/XenditSplitRequest'
      description: >-
        Fee information for Split Payments to be charged on the payment being
        collected
    ScaExemptionType:
      type: string
      description: SCA Exemptions types available for authentication
      enum:
        - low_value
        - transaction_risk_analysis
    CtpServiceDetails:
      type: object
      properties:
        merchant_transaction_id:
          type: string
          description: merchant transaction id
          nullable: true
        correlation_id:
          type: string
          description: network transaction correlation id
          nullable: true
        x_src_flow_id:
          type: string
          description: session transaction flow id
          nullable: true
        provider:
          allOf:
            - $ref: '#/components/schemas/CtpServiceProvider'
          nullable: true
        encrypted_payload:
          type: string
          description: Encrypted payload
          nullable: true
    ThreeDsCompletionIndicator:
      type: string
      description: Indicates if 3DS method data was successfully completed or not
      enum:
        - 'Y'
        - 'N'
        - U
    PaymentChannel:
      oneOf:
        - type: string
          enum:
            - ecommerce
        - type: string
          enum:
            - mail_order
        - type: string
          enum:
            - telephone_order
        - type: object
          required:
            - other
          properties:
            other:
              type: string
      description: Describes the channel through which the payment was initiated.
    TaxStatus:
      type: string
      enum:
        - taxable
        - exempt
    MinorUnit:
      type: integer
      format: int64
      description: This Unit struct represents MinorUnit in which core amount works
    MitCategory:
      type: string
      description: >-
        Specifies the category of a Merchant Initiated Transaction (MIT). In the
        case of MIT, `mit_category` tells what kind of MIT is being processed.
        In the case of CIT, it tells the future intended MIT type.
      enum:
        - installment
        - unscheduled
        - recurring
        - resubmission
    BillingDescriptor:
      type: object
      description: Billing Descriptor information to be sent to the payment gateway
      properties:
        name:
          type: string
          description: name to be put in billing description
          example: The Online Retailer
          nullable: true
        city:
          type: string
          description: city to be put in billing description
          example: San Francisco
          nullable: true
        phone:
          type: string
          description: phone to be put in billing description
          example: '9123456789'
          nullable: true
        statement_descriptor:
          type: string
          description: a short description for the payment
          nullable: true
        statement_descriptor_suffix:
          type: string
          description: >-
            Concatenated with the prefix (shortened descriptor) or statement
            descriptor that’s set on the account to form the complete statement
            descriptor.
          nullable: true
        reference:
          type: string
          description: A reference to be shown on billing description
          nullable: true
    Tokenization:
      type: string
      description: The type of tokenization to use for the payment method
      enum:
        - skip_psp
        - tokenize_at_psp
    PartnerMerchantIdentifierDetails:
      type: object
      description: >-
        Information identifying partner and merchant application initiating the
        request
      properties:
        partner_details:
          allOf:
            - $ref: '#/components/schemas/PartnerApplicationDetails'
          nullable: true
        merchant_details:
          allOf:
            - $ref: '#/components/schemas/MerchantApplicationDetails'
          nullable: true
    InstallmentOption:
      type: object
      description: Installment options grouped by payment method
      required:
        - payment_method
        - installments
      properties:
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        installments:
          type: array
          items:
            $ref: '#/components/schemas/InstallmentOptionData'
          description: List of available installment configurations
    InstallmentRequest:
      type: object
      description: Installment selection sent by the customer during payment confirmation.
      required:
        - number_of_installments
        - billing_frequency
      properties:
        number_of_installments:
          type: integer
          format: int32
          description: Number of installments chosen by the customer
          minimum: 0
        billing_frequency:
          $ref: '#/components/schemas/BillingFrequency'
    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
    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
    PaymentIntentStateMetadata:
      type: object
      description: >-
        Additional metadata for payment intent state containing refunded and
        disputed amounts
      properties:
        total_refunded_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        total_disputed_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        post_capture_void:
          allOf:
            - $ref: '#/components/schemas/PostCaptureVoidResponse'
          nullable: true
    RefundResponse:
      type: object
      required:
        - refund_id
        - payment_id
        - amount
        - currency
        - status
        - connector
      properties:
        refund_id:
          type: string
          description: Unique Identifier for the refund
        payment_id:
          type: string
          description: The payment id against which refund is initiated
        amount:
          type: integer
          format: int64
          description: >-
            The refund amount, which should be less than or equal to the total
            payment amount. Amount for the payment in lowest denomination of the
            currency. (i.e) in cents for USD denomination, in paisa for INR
            denomination etc
          example: 6540
          minimum: 100
        currency:
          type: string
          description: The three-letter ISO currency code
        status:
          $ref: '#/components/schemas/RefundStatus'
        reason:
          type: string
          description: >-
            An arbitrary string attached to the object. Often useful for
            displaying to users and your customer support executive
          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
        error_message:
          type: string
          description: The error message
          nullable: true
        error_code:
          type: string
          description: The code for the error
          nullable: true
        unified_code:
          type: string
          description: >-
            Error code unified across the connectors is received here if there
            was an error while calling connector
          nullable: true
        unified_message:
          type: string
          description: >-
            Error message unified across the connectors is received here if
            there was an error while calling connector
          nullable: true
        created_at:
          type: string
          format: date-time
          description: The timestamp at which refund is created
          nullable: true
        updated_at:
          type: string
          format: date-time
          description: The timestamp at which refund is updated
          nullable: true
        connector:
          type: string
          description: The connector used for the refund and the corresponding payment
          example: stripe
        profile_id:
          type: string
          description: The id of business profile for this refund
          nullable: true
        merchant_connector_id:
          type: string
          description: >-
            The merchant_connector_id of the processor through which this
            payment went through
          nullable: true
        split_refunds:
          allOf:
            - $ref: '#/components/schemas/SplitRefund'
          nullable: true
        issuer_error_code:
          type: string
          description: Error code received from the issuer in case of failed refunds
          nullable: true
        issuer_error_message:
          type: string
          description: Error message received from the issuer in case of failed refunds
          nullable: true
        raw_connector_response:
          type: string
          description: Contains whole connector response
          nullable: true
        connector_refund_id:
          type: string
          description: A unique identifier for a payment provided by the connector
          nullable: true
    DisputeResponsePaymentsRetrieve:
      type: object
      required:
        - dispute_id
        - amount
        - dispute_stage
        - dispute_status
        - connector_status
        - connector_dispute_id
        - created_at
      properties:
        dispute_id:
          type: string
          description: The identifier for dispute
        amount:
          $ref: '#/components/schemas/StringMinorUnit'
        dispute_stage:
          $ref: '#/components/schemas/DisputeStage'
        dispute_status:
          $ref: '#/components/schemas/DisputeStatus'
        connector_status:
          type: string
          description: Status of the dispute sent by connector
        connector_dispute_id:
          type: string
          description: Dispute id sent by connector
        connector_reason:
          type: string
          description: Reason of dispute sent by connector
          nullable: true
        connector_reason_code:
          type: string
          description: Reason code of dispute sent by connector
          nullable: true
        challenge_required_by:
          type: string
          format: date-time
          description: Evidence deadline of dispute sent by connector
          nullable: true
        connector_created_at:
          type: string
          format: date-time
          description: Dispute created time sent by connector
          nullable: true
        connector_updated_at:
          type: string
          format: date-time
          description: Dispute updated time sent by connector
          nullable: true
        created_at:
          type: string
          format: date-time
          description: Time at which dispute is received
    PaymentAttemptResponse:
      type: object
      required:
        - attempt_id
        - status
        - amount
        - created_at
        - modified_at
      properties:
        attempt_id:
          type: string
          description: A unique identifier for this specific payment attempt.
        status:
          $ref: '#/components/schemas/AttemptStatus'
        amount:
          type: integer
          format: int64
          description: >-
            The payment attempt amount. Amount for the payment in lowest
            denomination of the currency. (i.e) in cents for USD denomination,
            in paisa for INR denomination etc.,
          example: 6540
        order_tax_amount:
          type: integer
          format: int64
          description: The payment attempt tax_amount.
          example: 6540
          nullable: true
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        connector:
          type: string
          description: >-
            The name of the payment connector (e.g., 'stripe', 'adyen') used for
            this attempt.
          nullable: true
        error_message:
          type: string
          description: >-
            A human-readable message from the connector explaining the error, if
            one occurred during this payment attempt.
          nullable: true
        payment_method:
          allOf:
            - $ref: '#/components/schemas/PaymentMethod'
          nullable: true
        connector_transaction_id:
          type: string
          description: A unique identifier for a payment provided by the connector
          nullable: true
        capture_method:
          allOf:
            - $ref: '#/components/schemas/CaptureMethod'
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: three_ds
          nullable: true
        created_at:
          type: string
          format: date-time
          description: Time at which the payment attempt was created
          example: '2022-09-10T10:11:12Z'
        modified_at:
          type: string
          format: date-time
          description: Time at which the payment attempt was last modified
          example: '2022-09-10T10:11:12Z'
        cancellation_reason:
          type: string
          description: If the payment was cancelled the reason will be provided here
          nullable: true
        mandate_id:
          type: string
          description: >-
            If this payment attempt is associated with a mandate (e.g., for a
            recurring or subsequent payment), this field will contain the ID of
            that mandate.
          nullable: true
        error_code:
          type: string
          description: >-
            The error code returned by the connector if this payment attempt
            failed. This code is specific to the connector.
          nullable: true
        payment_token:
          type: string
          description: >-
            If a tokenized (saved) payment method was used for this attempt,
            this field contains the payment token representing that payment
            method.
          nullable: true
        connector_metadata:
          description: Additional data related to some connectors
          nullable: true
        payment_experience:
          allOf:
            - $ref: '#/components/schemas/PaymentExperience'
          nullable: true
        payment_method_type:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodType'
          nullable: true
        reference_id:
          type: string
          description: >-
            The connector's own reference or transaction ID for this specific
            payment attempt. Useful for reconciliation with the connector.
          example: 993672945374576J
          nullable: true
        unified_code:
          type: string
          description: >-
            (This field is not live yet)Error code unified across the connectors
            is received here if there was an error while calling connector
          nullable: true
        unified_message:
          type: string
          description: >-
            (This field is not live yet)Error message unified across the
            connectors is received here if there was an error while calling
            connector
          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
        error_details:
          allOf:
            - $ref: '#/components/schemas/PaymentErrorDetails'
          nullable: true
    CaptureResponse:
      type: object
      required:
        - capture_id
        - status
        - amount
        - connector
        - authorized_attempt_id
        - capture_sequence
      properties:
        capture_id:
          type: string
          description: A unique identifier for this specific capture operation.
        status:
          $ref: '#/components/schemas/CaptureStatus'
        amount:
          type: integer
          format: int64
          description: >-
            The capture amount. Amount for the payment in lowest denomination of
            the currency. (i.e) in cents for USD denomination, in paisa for INR
            denomination etc.,
          example: 6540
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        connector:
          type: string
          description: The name of the payment connector that processed this capture.
        authorized_attempt_id:
          type: string
          description: >-
            The ID of the payment attempt that was successfully authorized and
            subsequently captured by this operation.
        connector_capture_id:
          type: string
          description: A unique identifier for this capture provided by the connector
          nullable: true
        capture_sequence:
          type: integer
          format: int32
          description: >-
            Sequence number of this capture, in the series of captures made for
            the parent attempt
        error_message:
          type: string
          description: >-
            A human-readable message from the connector explaining why this
            capture operation failed, if applicable.
          nullable: true
        error_code:
          type: string
          description: >-
            The error code returned by the connector if this capture operation
            failed. This code is connector-specific.
          nullable: true
        error_reason:
          type: string
          description: >-
            A more detailed reason from the connector explaining the capture
            failure, if available.
          nullable: true
        reference_id:
          type: string
          description: >-
            The connector's own reference or transaction ID for this specific
            capture operation. Useful for reconciliation.
          nullable: true
    PaymentMethodDataResponseWithBilling:
      allOf:
        - allOf:
            - $ref: '#/components/schemas/PaymentMethodDataResponse'
          nullable: true
        - type: object
          properties:
            billing:
              allOf:
                - $ref: '#/components/schemas/Address'
              nullable: true
    NextActionData:
      oneOf:
        - type: object
          description: Contains the url for redirection flow
          required:
            - redirect_to_url
            - type
          properties:
            redirect_to_url:
              type: string
            type:
              type: string
              enum:
                - redirect_to_url
        - type: object
          required:
            - popup_url
            - redirect_response_url
            - type
          properties:
            popup_url:
              type: string
            redirect_response_url:
              type: string
            type:
              type: string
              enum:
                - redirect_inside_popup
        - 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
    PaymentErrorDetails:
      type: object
      description: >-
        Complete error details for V1 PaymentsResponse containing unified,
        issuer, and connector-level error information.
      properties:
        unified_details:
          allOf:
            - $ref: '#/components/schemas/ApiUnifiedErrorDetails'
          nullable: true
        issuer_details:
          allOf:
            - $ref: '#/components/schemas/ApiIssuerErrorDetails'
          nullable: true
        connector_details:
          allOf:
            - $ref: '#/components/schemas/ApiConnectorErrorDetails'
          nullable: true
    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
    FrmMessage:
      type: object
      description: >-
        frm message is an object sent inside the payments response...when frm is
        invoked, its value is Some(...), else its None
      required:
        - frm_name
      properties:
        frm_name:
          type: string
        frm_transaction_id:
          type: string
          nullable: true
        frm_transaction_type:
          type: string
          nullable: true
        frm_status:
          type: string
          nullable: true
        frm_score:
          type: integer
          format: int32
          nullable: true
        frm_reason:
          nullable: true
        frm_error:
          type: string
          nullable: true
    ConnectorMetadataResponse:
      oneOf:
        - type: object
          required:
            - santander
          properties:
            santander:
              $ref: '#/components/schemas/SantanderData'
    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
        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
    PaymentLinkResponse:
      type: object
      required:
        - link
        - payment_link_id
      properties:
        link:
          type: string
          description: URL for rendering the open payment link
        secure_link:
          type: string
          description: URL for rendering the secure payment link
          nullable: true
        payment_link_id:
          type: string
          description: Identifier for the payment link
    IncrementalAuthorizationResponse:
      type: object
      required:
        - authorization_id
        - amount
        - status
        - previously_authorized_amount
      properties:
        authorization_id:
          type: string
          description: The unique identifier of authorization
        amount:
          type: integer
          format: int64
          description: Amount the authorization has been made for
          example: 6540
        status:
          $ref: '#/components/schemas/AuthorizationStatus'
        error_code:
          type: string
          description: Error code sent by the connector for authorization
          nullable: true
        error_message:
          type: string
          description: Error message sent by the connector for authorization
          nullable: true
        previously_authorized_amount:
          $ref: '#/components/schemas/MinorUnit'
    ExternalAuthenticationDetailsResponse:
      type: object
      description: Details of external authentication
      required:
        - status
      properties:
        authentication_flow:
          allOf:
            - $ref: '#/components/schemas/DecoupledAuthenticationType'
          nullable: true
        electronic_commerce_indicator:
          type: string
          description: Electronic Commerce Indicator (eci)
          nullable: true
        status:
          $ref: '#/components/schemas/AuthenticationStatus'
        ds_transaction_id:
          type: string
          description: DS Transaction ID
          nullable: true
        version:
          type: string
          description: Message Version
          nullable: true
        error_code:
          type: string
          description: Error Code
          nullable: true
        error_message:
          type: string
          description: Error Message
          nullable: true
    PaymentMethodStatus:
      type: string
      description: Payment Method Status
      enum:
        - active
        - inactive
        - processing
        - awaiting_data
        - new
        - redacted
    ConnectorChargeResponseData:
      oneOf:
        - type: object
          required:
            - stripe_split_payment
          properties:
            stripe_split_payment:
              $ref: '#/components/schemas/StripeChargeResponseData'
        - type: object
          required:
            - adyen_split_payment
          properties:
            adyen_split_payment:
              $ref: '#/components/schemas/AdyenSplitData'
        - type: object
          required:
            - xendit_split_payment
          properties:
            xendit_split_payment:
              $ref: '#/components/schemas/XenditChargeResponseData'
      description: Charge Information
    CardDiscovery:
      type: string
      description: Indicates the method by which a card is discovered during a payment
      enum:
        - manual
        - saved_card
        - click_to_pay
    NetworkDetails:
      type: object
      properties:
        network_advice_code:
          type: string
          nullable: true
    PaymentMethodTokenizationDetails:
      type: object
      required:
        - payment_method_id
        - psp_tokenization
        - network_tokenization
        - is_eligible_for_mit_payment
      properties:
        payment_method_id:
          type: string
          description: The unique identifier for the payment method
        payment_method_status:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodStatus'
          nullable: true
        psp_tokenization:
          type: boolean
          description: >-
            This indicates whether there is at least one active PSP token
            available
        network_tokenization:
          type: boolean
          description: >-
            This indicates whether a payment method is tokenized with card
            network
        network_transaction_id:
          type: string
          description: This is the transaction id generated by the network
          nullable: true
        is_eligible_for_mit_payment:
          type: boolean
          description: >-
            This indicates whether a payment method is eligible for performing a
            mit transaction
    InstallmentData:
      type: object
      description: Installment selection made by the customer during payment confirmation.
      required:
        - number_of_installments
        - billing_frequency
      properties:
        number_of_installments:
          type: integer
          format: int32
          description: Number of installments chosen by the customer
          minimum: 0
        billing_frequency:
          $ref: '#/components/schemas/BillingFrequency'
        installment_interest:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    RoutableConnectorChoice:
      type: object
      description: Routable Connector chosen for a payment
      required:
        - connector
      properties:
        connector:
          $ref: '#/components/schemas/RoutableConnectors'
        merchant_connector_id:
          type: string
          nullable: true
    ConnectorVolumeSplit:
      type: object
      required:
        - connector
        - split
      properties:
        connector:
          $ref: '#/components/schemas/RoutableConnectorChoice'
        split:
          type: integer
          format: int32
          minimum: 0
    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
    CustomerDocumentDetails:
      type: object
      required:
        - document_type
        - document_number
      properties:
        document_type:
          $ref: '#/components/schemas/DocumentKind'
        document_number:
          type: string
          description: |-
            The customer's document number
            Length of the document number depends upon the document_type.
            For CPF/CNPJ it is typically 11/14 digits long
          example: '12345678911'
          maxLength: 255
    PaymentMethodData:
      oneOf:
        - type: object
          title: Card
          required:
            - card
          properties:
            card:
              $ref: '#/components/schemas/Card'
        - type: object
          title: CardRedirect
          required:
            - card_redirect
          properties:
            card_redirect:
              $ref: '#/components/schemas/CardRedirectData'
        - type: object
          title: Wallet
          required:
            - wallet
          properties:
            wallet:
              $ref: '#/components/schemas/WalletData'
        - type: object
          title: PayLater
          required:
            - pay_later
          properties:
            pay_later:
              $ref: '#/components/schemas/PayLaterData'
        - type: object
          title: BankRedirect
          required:
            - bank_redirect
          properties:
            bank_redirect:
              $ref: '#/components/schemas/BankRedirectData'
        - type: object
          title: BankDebit
          required:
            - bank_debit
          properties:
            bank_debit:
              $ref: '#/components/schemas/BankDebitData'
        - type: object
          title: BankTransfer
          required:
            - bank_transfer
          properties:
            bank_transfer:
              $ref: '#/components/schemas/BankTransferData'
        - type: object
          title: RealTimePayment
          required:
            - real_time_payment
          properties:
            real_time_payment:
              $ref: '#/components/schemas/RealTimePaymentData'
        - type: object
          title: Crypto
          required:
            - crypto
          properties:
            crypto:
              $ref: '#/components/schemas/CryptoData'
        - type: string
          title: MandatePayment
          enum:
            - mandate_payment
        - type: string
          title: Reward
          enum:
            - reward
        - type: object
          title: Upi
          required:
            - upi
          properties:
            upi:
              $ref: '#/components/schemas/UpiData'
        - type: object
          title: Voucher
          required:
            - voucher
          properties:
            voucher:
              $ref: '#/components/schemas/VoucherData'
        - type: object
          title: GiftCard
          required:
            - gift_card
          properties:
            gift_card:
              $ref: '#/components/schemas/GiftCardData'
        - type: object
          title: CardToken
          required:
            - card_token
          properties:
            card_token:
              $ref: '#/components/schemas/CardToken'
        - type: object
          title: OpenBanking
          required:
            - open_banking
          properties:
            open_banking:
              $ref: '#/components/schemas/OpenBankingData'
        - type: object
          title: MobilePayment
          required:
            - mobile_payment
          properties:
            mobile_payment:
              $ref: '#/components/schemas/MobilePaymentData'
        - type: object
          title: NetworkToken
          required:
            - network_token
          properties:
            network_token:
              $ref: '#/components/schemas/NetworkTokenData'
    ProductType:
      type: string
      enum:
        - physical
        - digital
        - travel
        - ride
        - event
        - accommodation
    MandateType:
      oneOf:
        - type: object
          required:
            - single_use
          properties:
            single_use:
              $ref: '#/components/schemas/MandateAmountData'
        - type: object
          required:
            - multi_use
          properties:
            multi_use:
              allOf:
                - $ref: '#/components/schemas/MandateAmountData'
              nullable: true
    AcceptanceType:
      type: string
      description: This is used to indicate if the mandate was accepted online or offline
      enum:
        - online
        - offline
    OnlineMandate:
      type: object
      description: Details of online mandate
      required:
        - ip_address
        - user_agent
      properties:
        ip_address:
          type: string
          description: >-
            Ip address of the customer machine from which the mandate was
            created
          example: 123.32.25.123
        user_agent:
          type: string
          description: The user-agent of the customer's browser
      additionalProperties: false
    MerchantConnectorDetails:
      type: object
      properties:
        connector_account_details:
          type: object
          description: >-
            Account details of the Connector. You can specify up to 50 keys,
            with key names up to 40 characters long and values up to 500
            characters long. Useful for storing additional, structured
            information on an object.
          nullable: true
        metadata:
          type: object
          description: >-
            Metadata is useful for storing additional, unstructured information
            on an object.
          nullable: true
    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
        pix_automatico:
          allOf:
            - $ref: '#/components/schemas/SantanderPixAutomaticoData'
          nullable: true
    PaymentLinkConfigRequest:
      type: object
      properties:
        theme:
          type: string
          description: custom theme for the payment link
          example: '#4E6ADD'
          nullable: true
          maxLength: 255
        logo:
          type: string
          description: merchant display logo
          example: >-
            https://i.pinimg.com/736x/4d/83/5c/4d835ca8aafbbb15f84d07d926fda473.jpg
          nullable: true
          maxLength: 255
        seller_name:
          type: string
          description: Custom merchant name for payment link
          example: hyperswitch
          nullable: true
          maxLength: 255
        sdk_layout:
          type: string
          description: Custom layout for sdk
          example: accordion
          nullable: true
          maxLength: 255
        display_sdk_only:
          type: boolean
          description: Display only the sdk for payment link
          default: false
          example: true
          nullable: true
        enabled_saved_payment_method:
          type: boolean
          description: Enable saved payment method option for payment link
          default: false
          example: true
          nullable: true
        hide_card_nickname_field:
          type: boolean
          description: Hide card nickname field option for payment link
          default: false
          example: true
          nullable: true
        show_card_form_by_default:
          type: boolean
          description: Show card form by default for payment link
          default: true
          example: true
          nullable: true
        transaction_details:
          type: array
          items:
            $ref: '#/components/schemas/PaymentLinkTransactionDetails'
          description: Dynamic details related to merchant to be rendered in payment link
          nullable: true
        background_image:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkBackgroundImageConfig'
          nullable: true
        details_layout:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkDetailsLayout'
          nullable: true
        payment_button_text:
          type: string
          description: Text for payment link's handle confirm button
          nullable: true
        custom_message_for_card_terms:
          type: string
          description: Text for customizing message for card terms
          nullable: true
        custom_message_for_payment_method_types:
          allOf:
            - $ref: '#/components/schemas/PaymentMethodsConfig'
          nullable: true
        payment_button_colour:
          type: string
          description: Custom background colour for payment link's handle confirm button
          nullable: true
        skip_status_screen:
          type: boolean
          description: Skip the status screen after payment completion
          nullable: true
        payment_button_text_colour:
          type: string
          description: Custom text colour for payment link's handle confirm button
          nullable: true
        background_colour:
          type: string
          description: Custom background colour for the payment link
          nullable: true
        sdk_ui_rules:
          type: object
          description: SDK configuration rules
          additionalProperties:
            type: object
            additionalProperties:
              type: string
          nullable: true
        payment_link_ui_rules:
          type: object
          description: Payment link configuration rules
          additionalProperties:
            type: object
            additionalProperties:
              type: string
          nullable: true
        enable_button_only_on_form_ready:
          type: boolean
          description: >-
            Flag to enable the button only when the payment form is ready for
            submission
          nullable: true
        payment_form_header_text:
          type: string
          description: Optional header for the SDK's payment form
          nullable: true
        payment_form_label_type:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkSdkLabelType'
          nullable: true
        show_card_terms:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkShowSdkTerms'
          nullable: true
        is_setup_mandate_flow:
          type: boolean
          description: Boolean to control payment button text for setup mandate calls
          nullable: true
        color_icon_card_cvc_error:
          type: string
          description: Hex color for the CVC icon during error state
          nullable: true
    Cryptogram:
      oneOf:
        - type: object
          required:
            - cavv
          properties:
            cavv:
              type: object
              description: Cardholder Authentication Verification Value (CAVV) cryptogram.
              properties:
                authentication_cryptogram:
                  type: string
                  description: The authentication cryptogram provided by the issuer or ACS.
                  nullable: true
      description: Represents the 3DS cryptogram data returned after authentication.
    TransactionStatus:
      type: string
      description: Indicates the transaction status
      enum:
        - 'Y'
        - 'N'
        - U
        - A
        - R
        - C
        - D
        - I
    ProcessorPaymentToken:
      type: object
      description: >-
        Processor payment token for MIT payments where payment_method_data is
        not available
      required:
        - processor_payment_token
      properties:
        processor_payment_token:
          type: string
        merchant_connector_id:
          type: string
          nullable: true
    NetworkTransactionIdAndCardDetails:
      type: object
      required:
        - card_number
        - card_exp_month
        - card_exp_year
        - card_holder_name
        - network_transaction_id
      properties:
        card_number:
          type: string
          description: The card number
          example: '4242424242424242'
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '24'
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '24'
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          example: INDIA
          nullable: true
        card_issuing_country_code:
          type: string
          example: IN
          nullable: true
        bank_code:
          type: string
          example: JP_AMEX
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
        network_transaction_id:
          type: string
          description: >-
            The network transaction ID provided by the card network during a CIT
            (Customer Initiated Transaction),

            when `setup_future_usage` is set to `off_session`.
        transaction_link_id:
          type: string
          description: >-
            The Mastercard Transaction Link Identifier (TLID) provided by the
            card network during a CIT (Customer Initiated Transaction),

            when `setup_future_usage` is set to `off_session`.
          nullable: true
    NetworkTransactionIdAndNetworkTokenDetails:
      type: object
      required:
        - network_token
        - token_exp_month
        - token_exp_year
        - card_holder_name
        - network_transaction_id
      properties:
        network_token:
          type: string
          description: The Network Token
          example: '4604000460040787'
        token_exp_month:
          type: string
          description: The token's expiry month
          example: '05'
        token_exp_year:
          type: string
          description: The token's expiry year
          example: '24'
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          description: The type of the card such as Credit, Debit
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          description: The country in which the card was issued
          example: INDIA
          nullable: true
        bank_code:
          type: string
          description: The bank code of the bank that issued the card
          example: JP_AMEX
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
        eci:
          type: string
          description: >-
            The ECI(Electronic Commerce Indicator) value for this
            authentication.
          nullable: true
        network_transaction_id:
          type: string
          description: >-
            The network transaction ID provided by the card network during a
            Customer Initiated Transaction (CIT)

            when `setup_future_usage` is set to `off_session`.
        transaction_link_id:
          type: string
          description: >-
            The Mastercard Transaction Link Identifier (TLID) provided by the
            card network during a CIT (Customer Initiated Transaction),

            when `setup_future_usage` is set to `off_session`.
          nullable: true
    NetworkTransactionIdAndDecryptedWalletTokenDetails:
      type: object
      description: Network Transaction ID and Decrypted Wallet Token Details
      required:
        - decrypted_token
        - token_exp_month
        - token_exp_year
        - card_holder_name
        - network_transaction_id
      properties:
        decrypted_token:
          type: string
          description: The Decrypted Token
          example: '4604000460040787'
        token_exp_month:
          type: string
          description: The token's expiry month
          example: '05'
        token_exp_year:
          type: string
          description: The token's expiry year
          example: '24'
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        network_transaction_id:
          type: string
          description: >-
            The network transaction ID provided by the card network during a
            Customer Initiated Transaction (CIT)

            when `setup_future_usage` is set to `off_session`.
        transaction_link_id:
          type: string
          description: >-
            The Mastercard Transaction Link Identifier (TLID) provided by the
            card network during a CIT (Customer Initiated Transaction),

            when `setup_future_usage` is set to `off_session`.
          nullable: true
        eci:
          type: string
          description: ECI indicator of the card
          nullable: true
        token_source:
          allOf:
            - $ref: '#/components/schemas/TokenSource'
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
    CardWithLimitedData:
      type: object
      required:
        - card_number
      properties:
        card_number:
          type: string
          description: The card number
          example: '4242424242424242'
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '24'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '24'
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
          nullable: true
        eci:
          type: string
          description: >-
            The ECI(Electronic Commerce Indicator) value for this
            authentication.
          nullable: true
    StripeSplitPaymentRequest:
      type: object
      description: >-
        Fee information for Split Payments to be charged on the payment being
        collected for Stripe
      required:
        - charge_type
        - application_fees
        - transfer_account_id
      properties:
        charge_type:
          $ref: '#/components/schemas/PaymentChargeType'
        application_fees:
          type: integer
          format: int64
          description: Platform fees to be collected on the payment
          example: 6540
        transfer_account_id:
          type: string
          description: >-
            Identifier for the reseller's account where the funds were
            transferred
        on_behalf_of:
          type: string
          description: The Stripe account ID that these funds are intended for
          example: acct_1234567890
          nullable: true
      additionalProperties: false
    AdyenSplitData:
      type: object
      description: >-
        Fee information for Split Payments to be charged on the payment being
        collected for Adyen
      required:
        - split_items
      properties:
        store:
          type: string
          description: The store identifier
          nullable: true
        split_items:
          type: array
          items:
            $ref: '#/components/schemas/AdyenSplitItem'
          description: Data for the split items
      additionalProperties: false
    XenditSplitRequest:
      oneOf:
        - type: object
          required:
            - multiple_splits
          properties:
            multiple_splits:
              $ref: '#/components/schemas/XenditMultipleSplitRequest'
        - type: object
          required:
            - single_split
          properties:
            single_split:
              $ref: '#/components/schemas/XenditSplitSubMerchantData'
      description: Xendit Charge Request
    CtpServiceProvider:
      type: string
      enum:
        - visa
        - mastercard
    PartnerApplicationDetails:
      type: object
      description: Information identifying partner / external platform details
      properties:
        name:
          type: string
          description: Name of the partner/external platform
          nullable: true
        version:
          type: string
          description: Version of the partner/external platform
          example: 1.0.0
          nullable: true
        integrator:
          type: string
          description: Integrator
          nullable: true
    MerchantApplicationDetails:
      type: object
      description: Information identifying merchant details
      properties:
        name:
          type: string
          description: Name of the the merchant application
          nullable: true
        version:
          type: string
          description: Version of the merchant application
          nullable: true
    InstallmentOptionData:
      type: object
      description: A single installment plan option accepted in request payloads
      required:
        - number_of_installments
        - billing_frequency
        - interest_rate
      properties:
        number_of_installments:
          type: string
          format: binary
          description: Number of installments (e.g., [3, 6, 12])
        billing_frequency:
          $ref: '#/components/schemas/BillingFrequency'
        interest_rate:
          type: number
          format: double
          description: Interest rate per installment as a percentage max 2 decimal places
    BillingFrequency:
      type: string
      description: Billing frequency for a card installment plan
      enum:
        - month
    PostCaptureVoidResponse:
      type: object
      description: >-
        Additional metadata for payment intent state containing refunded and
        disputed amounts
      required:
        - updated_at
      properties:
        status:
          allOf:
            - $ref: '#/components/schemas/PostCaptureVoidStatus'
          nullable: true
        connector_reference_id:
          type: string
          description: Connector reference id for post capture void
          nullable: true
        description:
          type: string
          description: Description or message related to the post capture void
          nullable: true
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the post capture void was last updated
    RefundStatus:
      type: string
      description: The status for refunds
      enum:
        - succeeded
        - failed
        - pending
        - review
    SplitRefund:
      oneOf:
        - type: object
          required:
            - stripe_split_refund
          properties:
            stripe_split_refund:
              $ref: '#/components/schemas/StripeSplitRefundRequest'
        - type: object
          required:
            - adyen_split_refund
          properties:
            adyen_split_refund:
              $ref: '#/components/schemas/AdyenSplitData'
        - type: object
          required:
            - xendit_split_refund
          properties:
            xendit_split_refund:
              $ref: '#/components/schemas/XenditSplitSubMerchantData'
      description: >-
        Charge specific fields for controlling the revert of funds from either
        platform or connected account. Check sub-fields for more details.
    StringMinorUnit:
      type: string
      description: Connector specific types to send
    DisputeStage:
      type: string
      description: Stage of the dispute
      enum:
        - pre_dispute
        - dispute
        - pre_arbitration
        - arbitration
        - dispute_reversal
    DisputeStatus:
      type: string
      description: Status of the dispute
      enum:
        - dispute_opened
        - dispute_expired
        - dispute_accepted
        - dispute_cancelled
        - dispute_challenged
        - dispute_won
        - dispute_lost
    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
    CaptureStatus:
      type: string
      enum:
        - started
        - charged
        - pending
        - failed
    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'
    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_server_transaction_id
        - maximum_supported_3ds_version
        - connector_authentication_id
        - three_ds_method_data
        - three_ds_method_url
        - message_version
        - directory_server_id
      properties:
        three_ds_server_transaction_id:
          type: string
          description: The unique identifier for this authentication from the 3DS server.
        maximum_supported_3ds_version:
          type: string
          description: The maximum supported 3DS version.
        connector_authentication_id:
          type: string
          description: The unique identifier for this authentication from the connector.
        three_ds_method_data:
          type: string
          description: The data required to perform the 3DS method.
        three_ds_method_url:
          type: string
          description: The URL to which the user should be redirected after authentication.
          example: https://example.com/redirect
        message_version:
          type: string
          description: The version of the message.
        directory_server_id:
          type: string
          description: The unique identifier for this authentication.
    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
    ApiUnifiedErrorDetails:
      type: object
      description: Unified error details standardized across all payment connectors
      properties:
        category:
          allOf:
            - $ref: '#/components/schemas/UnifiedCode'
          nullable: true
        message:
          type: string
          description: Human-readable error message
          nullable: true
        standardised_code:
          allOf:
            - $ref: '#/components/schemas/StandardisedCode'
          nullable: true
        description:
          type: string
          description: Detailed description of the error
          nullable: true
        user_guidance_message:
          type: string
          description: User-friendly guidance message
          nullable: true
        recommended_action:
          allOf:
            - $ref: '#/components/schemas/RecommendedAction'
          nullable: true
    ApiIssuerErrorDetails:
      type: object
      description: Error details from the card issuer
      properties:
        code:
          type: string
          description: Error code from the issuer
          nullable: true
        message:
          type: string
          description: Error message from the issuer
          nullable: true
        network_details:
          allOf:
            - $ref: '#/components/schemas/ApiNetworkErrorDetails'
          nullable: true
    ApiConnectorErrorDetails:
      type: object
      description: Error details from the payment connector
      properties:
        code:
          type: string
          description: Connector-specific error code
          nullable: true
        message:
          type: string
          description: Connector-specific error message
          nullable: true
        reason:
          type: string
          description: Additional error reason/details
          nullable: true
    SantanderData:
      type: object
      properties:
        end_to_end_id:
          type: string
          nullable: true
      additionalProperties: false
    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
    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
    PixAutomaticoAdditionalDetails:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoPushDetails'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_push
      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
    AuthorizationStatus:
      type: string
      enum:
        - success
        - failure
        - processing
        - unresolved
    DecoupledAuthenticationType:
      type: string
      enum:
        - challenge
        - frictionless
    AuthenticationStatus:
      type: string
      enum:
        - started
        - pending
        - success
        - failed
    StripeChargeResponseData:
      type: object
      description: Fee information to be charged on the payment being collected via Stripe
      required:
        - charge_type
        - application_fees
        - transfer_account_id
      properties:
        charge_id:
          type: string
          description: Identifier for charge created for the payment
          nullable: true
        charge_type:
          $ref: '#/components/schemas/PaymentChargeType'
        application_fees:
          type: integer
          format: int64
          description: Platform fees collected on the payment
          example: 6540
        transfer_account_id:
          type: string
          description: >-
            Identifier for the reseller's account where the funds were
            transferred
        on_behalf_of:
          type: string
          description: The Stripe account ID that these funds are intended for
          example: acct_1234567890
          nullable: true
      additionalProperties: false
    XenditChargeResponseData:
      oneOf:
        - type: object
          required:
            - multiple_splits
          properties:
            multiple_splits:
              $ref: '#/components/schemas/XenditMultipleSplitResponse'
        - type: object
          required:
            - single_split
          properties:
            single_split:
              $ref: '#/components/schemas/XenditSplitSubMerchantData'
      description: Charge Information
    RoutableConnectors:
      type: string
      description: >-
        RoutableConnectors are the subset of Connectors that are eligible for
        payments routing
      enum:
        - authipay
        - adyenplatform
        - stripe_billing_test
        - phonypay
        - fauxpay
        - pretendpay
        - stripe_test
        - adyen_test
        - checkout_test
        - paypal_test
        - aci
        - adyen
        - affirm
        - airwallex
        - amazonpay
        - archipel
        - authorizedotnet
        - bankofamerica
        - barclaycard
        - billwerk
        - bitpay
        - bambora
        - blackhawknetwork
        - bamboraapac
        - bluesnap
        - calida
        - boku
        - braintree
        - breadpay
        - cashtocode
        - celero
        - chargebee
        - custombilling
        - checkbook
        - checkout
        - coinbase
        - coingate
        - cryptopay
        - cybersource
        - cybersourcedecisionmanager
        - datatrans
        - deutschebank
        - digitalvirgo
        - dlocal
        - dwolla
        - ebanx
        - elavon
        - envoy
        - facilitapay
        - finix
        - fiserv
        - fiservemea
        - fiservcommercehub
        - fiuu
        - flexiti
        - forte
        - getnet
        - gigadat
        - globalpay
        - globepay
        - gocardless
        - hipay
        - helcim
        - hyperpg
        - iatapay
        - imerchantsolutions
        - inespay
        - itaubank
        - jpmorgan
        - klarna
        - loonio
        - mifinity
        - mollie
        - moneris
        - multisafepay
        - nexinets
        - nexixpay
        - nmi
        - nomupay
        - noon
        - nordea
        - novalnet
        - nuvei
        - opennode
        - paybox
        - payme
        - payload
        - payone
        - paypal
        - paysafe
        - paystack
        - paytm
        - payu
        - peachpayments
        - payjustnow
        - payjustnowinstore
        - phonepe
        - placetopay
        - powertranz
        - prophetpay
        - rapyd
        - razorpay
        - recurly
        - redsys
        - revolv3
        - riskified
        - sanlam
        - santander
        - shift4
        - signifyd
        - silverflow
        - square
        - stax
        - stripe
        - stripebilling
        - tesouro
        - truelayer
        - trustly
        - trustpay
        - trustpayments
        - tokenio
        - tsys
        - volt
        - wellsfargo
        - wise
        - worldline
        - worldpay
        - worldpaymodular
        - worldpayvantiv
        - worldpayxml
        - xendit
        - zen
        - zift
        - plaid
        - zsl
        - juspaythreedsserver
        - ctp_mastercard
        - ctp_visa
        - netcetera
        - cardinal
        - threedsecureio
    DocumentKind:
      type: string
      description: Represents the type of identification document used for validation.
      enum:
        - cpf
        - cnpj
    Card:
      type: object
      required:
        - card_number
        - card_exp_month
        - card_exp_year
        - card_holder_name
        - card_cvc
      properties:
        card_number:
          type: string
          description: The card number
          example: '4242424242424242'
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '24'
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '24'
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_cvc:
          type: string
          description: The CVC number for the card
          example: '242'
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          example: INDIA
          nullable: true
        card_issuing_country_code:
          type: string
          example: IN
          nullable: true
        bank_code:
          type: string
          example: JP_AMEX
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
    CardRedirectData:
      oneOf:
        - type: object
          required:
            - knet
          properties:
            knet:
              type: object
        - type: object
          required:
            - benefit
          properties:
            benefit:
              type: object
        - type: object
          required:
            - momo_atm
          properties:
            momo_atm:
              type: object
        - type: object
          required:
            - card_redirect
          properties:
            card_redirect:
              type: object
    WalletData:
      oneOf:
        - type: object
          title: AliPayHkRedirect
          required:
            - ali_pay_hk_redirect
          properties:
            ali_pay_hk_redirect:
              $ref: '#/components/schemas/AliPayHkRedirection'
        - type: object
          title: AliPayQr
          required:
            - ali_pay_qr
          properties:
            ali_pay_qr:
              $ref: '#/components/schemas/AliPayQr'
        - type: object
          title: AliPayRedirect
          required:
            - ali_pay_redirect
          properties:
            ali_pay_redirect:
              $ref: '#/components/schemas/AliPayRedirection'
        - type: object
          title: AmazonPay
          required:
            - amazon_pay
          properties:
            amazon_pay:
              $ref: '#/components/schemas/AmazonPayWalletData'
        - type: object
          title: AmazonPayRedirect
          required:
            - amazon_pay_redirect
          properties:
            amazon_pay_redirect:
              $ref: '#/components/schemas/AmazonPayRedirectData'
        - type: object
          title: ApplePay
          required:
            - apple_pay
          properties:
            apple_pay:
              $ref: '#/components/schemas/ApplePayWalletData'
        - type: object
          title: ApplePayRedirect
          required:
            - apple_pay_redirect
          properties:
            apple_pay_redirect:
              $ref: '#/components/schemas/ApplePayRedirectData'
        - type: object
          title: ApplePayThirdPartySdk
          required:
            - apple_pay_third_party_sdk
          properties:
            apple_pay_third_party_sdk:
              $ref: '#/components/schemas/ApplePayThirdPartySdkData'
        - type: object
          title: BluecodeRedirect
          required:
            - bluecode_redirect
          properties:
            bluecode_redirect:
              type: object
              description: The wallet data for Bluecode QR Code Redirect
        - type: object
          title: CashappQr
          required:
            - cashapp_qr
          properties:
            cashapp_qr:
              $ref: '#/components/schemas/CashappQr'
        - type: object
          title: DanaRedirect
          required:
            - dana_redirect
          properties:
            dana_redirect:
              type: object
              description: Wallet data for DANA redirect flow
        - type: object
          title: GcashRedirect
          required:
            - gcash_redirect
          properties:
            gcash_redirect:
              $ref: '#/components/schemas/GcashRedirection'
        - type: object
          title: GoPayRedirect
          required:
            - go_pay_redirect
          properties:
            go_pay_redirect:
              $ref: '#/components/schemas/GoPayRedirection'
        - type: object
          title: GooglePay
          required:
            - google_pay
          properties:
            google_pay:
              $ref: '#/components/schemas/GooglePayWalletData'
        - type: object
          title: GooglePayRedirect
          required:
            - google_pay_redirect
          properties:
            google_pay_redirect:
              $ref: '#/components/schemas/GooglePayRedirectData'
        - type: object
          title: GooglePayThirdPartySdk
          required:
            - google_pay_third_party_sdk
          properties:
            google_pay_third_party_sdk:
              $ref: '#/components/schemas/GooglePayThirdPartySdkData'
        - type: object
          title: KakaoPayRedirect
          required:
            - kakao_pay_redirect
          properties:
            kakao_pay_redirect:
              $ref: '#/components/schemas/KakaoPayRedirection'
        - type: object
          title: MbWayRedirect
          required:
            - mb_way_redirect
          properties:
            mb_way_redirect:
              $ref: '#/components/schemas/MbWayRedirection'
        - type: object
          title: Mifinity
          required:
            - mifinity
          properties:
            mifinity:
              $ref: '#/components/schemas/MifinityData'
        - type: object
          title: MobilePayRedirect
          required:
            - mobile_pay_redirect
          properties:
            mobile_pay_redirect:
              $ref: '#/components/schemas/MobilePayRedirection'
        - type: object
          title: MomoRedirect
          required:
            - momo_redirect
          properties:
            momo_redirect:
              $ref: '#/components/schemas/MomoRedirection'
        - type: object
          title: PaypalRedirect
          required:
            - paypal_redirect
          properties:
            paypal_redirect:
              $ref: '#/components/schemas/PaypalRedirection'
        - type: object
          title: PaypalSdk
          required:
            - paypal_sdk
          properties:
            paypal_sdk:
              $ref: '#/components/schemas/PayPalWalletData'
        - type: object
          title: Paysera
          required:
            - paysera
          properties:
            paysera:
              $ref: '#/components/schemas/PayseraData'
        - type: object
          title: Paze
          required:
            - paze
          properties:
            paze:
              $ref: '#/components/schemas/PazeWalletData'
        - type: object
          title: RevolutPay
          required:
            - revolut_pay
          properties:
            revolut_pay:
              $ref: '#/components/schemas/RevolutPayData'
        - type: object
          title: SamsungPay
          required:
            - samsung_pay
          properties:
            samsung_pay:
              $ref: '#/components/schemas/SamsungPayWalletData'
        - type: object
          title: Skrill
          required:
            - skrill
          properties:
            skrill:
              $ref: '#/components/schemas/SkrillData'
        - type: object
          title: SwishQr
          required:
            - swish_qr
          properties:
            swish_qr:
              $ref: '#/components/schemas/SwishQrData'
        - type: object
          title: TouchNGoRedirect
          required:
            - touch_n_go_redirect
          properties:
            touch_n_go_redirect:
              $ref: '#/components/schemas/TouchNGoRedirection'
        - type: object
          title: TwintRedirect
          required:
            - twint_redirect
          properties:
            twint_redirect:
              type: object
              description: Wallet data for Twint Redirection
        - type: object
          title: VippsRedirect
          required:
            - vipps_redirect
          properties:
            vipps_redirect:
              type: object
              description: Wallet data for Vipps Redirection
        - type: object
          title: WeChatPayQr
          required:
            - we_chat_pay_qr
          properties:
            we_chat_pay_qr:
              $ref: '#/components/schemas/WeChatPayQr'
        - type: object
          title: WeChatPayRedirect
          required:
            - we_chat_pay_redirect
          properties:
            we_chat_pay_redirect:
              $ref: '#/components/schemas/WeChatPayRedirection'
    PayLaterData:
      oneOf:
        - type: object
          required:
            - klarna_redirect
          properties:
            klarna_redirect:
              type: object
              description: For KlarnaRedirect as PayLater Option
              properties:
                billing_email:
                  type: string
                  description: The billing email
                  nullable: true
                billing_country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
        - type: object
          required:
            - klarna_sdk
          properties:
            klarna_sdk:
              type: object
              description: For Klarna Sdk as PayLater Option
              required:
                - token
              properties:
                token:
                  type: string
                  description: The token for the sdk workflow
        - type: object
          required:
            - affirm_redirect
          properties:
            affirm_redirect:
              type: object
              description: For Affirm redirect as PayLater Option
        - type: object
          required:
            - afterpay_clearpay_redirect
          properties:
            afterpay_clearpay_redirect:
              type: object
              description: For AfterpayClearpay redirect as PayLater Option
              properties:
                billing_email:
                  type: string
                  description: The billing email
                  nullable: true
                billing_name:
                  type: string
                  description: The billing name
                  nullable: true
        - type: object
          required:
            - pay_bright_redirect
          properties:
            pay_bright_redirect:
              type: object
              description: For PayBright Redirect as PayLater Option
        - type: object
          required:
            - flexiti_redirect
          properties:
            flexiti_redirect:
              type: object
              description: For Flexiti Redirect as PayLater long term finance Option
        - type: object
          required:
            - walley_redirect
          properties:
            walley_redirect:
              type: object
              description: For WalleyRedirect as PayLater Option
        - type: object
          required:
            - alma_redirect
          properties:
            alma_redirect:
              type: object
              description: For Alma Redirection as PayLater Option
        - type: object
          required:
            - atome_redirect
          properties:
            atome_redirect:
              type: object
        - type: object
          required:
            - breadpay_redirect
          properties:
            breadpay_redirect:
              type: object
        - type: object
          required:
            - payjustnow_redirect
          properties:
            payjustnow_redirect:
              type: object
    BankRedirectData:
      oneOf:
        - type: object
          required:
            - bancontact_card
          properties:
            bancontact_card:
              type: object
              required:
                - card_number
                - card_exp_month
                - card_exp_year
                - card_holder_name
              properties:
                card_number:
                  type: string
                  description: The card number
                  example: '4242424242424242'
                card_exp_month:
                  type: string
                  description: The card's expiry month
                  example: '24'
                card_exp_year:
                  type: string
                  description: The card's expiry year
                  example: '24'
                card_holder_name:
                  type: string
                  description: The card holder's name
                  example: John Test
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
        - type: object
          required:
            - bizum
          properties:
            bizum:
              type: object
        - type: object
          required:
            - blik
          properties:
            blik:
              type: object
              properties:
                blik_code:
                  type: string
                  nullable: true
        - type: object
          required:
            - eps
          properties:
            eps:
              type: object
              required:
                - bank_name
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_name:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - giropay
          properties:
            giropay:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_account_bic:
                  type: string
                  description: Bank account bic code
                  nullable: true
                bank_account_iban:
                  type: string
                  description: Bank account iban
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - ideal
          properties:
            ideal:
              type: object
              required:
                - bank_name
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                bank_name:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - interac
          properties:
            interac:
              type: object
              properties:
                country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
                email:
                  type: string
                  example: john.doe@example.com
                  nullable: true
        - type: object
          required:
            - online_banking_czech_republic
          properties:
            online_banking_czech_republic:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_finland
          properties:
            online_banking_finland:
              type: object
              properties:
                email:
                  type: string
                  nullable: true
        - type: object
          required:
            - online_banking_poland
          properties:
            online_banking_poland:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_slovakia
          properties:
            online_banking_slovakia:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - open_banking_uk
          properties:
            open_banking_uk:
              type: object
              required:
                - issuer
                - country
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - przelewy24
          properties:
            przelewy24:
              type: object
              properties:
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
        - type: object
          required:
            - sofort
          properties:
            sofort:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankRedirectBilling'
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
                preferred_language:
                  type: string
                  description: The preferred language
                  example: en
                  nullable: true
        - type: object
          required:
            - trustly
          properties:
            trustly:
              type: object
              properties:
                country:
                  allOf:
                    - $ref: '#/components/schemas/CountryAlpha2'
                  nullable: true
        - type: object
          required:
            - online_banking_fpx
          properties:
            online_banking_fpx:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - online_banking_thailand
          properties:
            online_banking_thailand:
              type: object
              required:
                - issuer
              properties:
                issuer:
                  $ref: '#/components/schemas/BankNames'
        - type: object
          required:
            - local_bank_redirect
          properties:
            local_bank_redirect:
              type: object
        - type: object
          required:
            - eft
          properties:
            eft:
              type: object
              required:
                - provider
              properties:
                provider:
                  type: string
                  description: The preferred eft provider
                  example: ozow
        - type: object
          required:
            - open_banking
          properties:
            open_banking:
              type: object
    BankDebitData:
      oneOf:
        - type: object
          required:
            - ach_bank_debit
          properties:
            ach_bank_debit:
              type: object
              description: Payment Method data for Ach bank debit
              required:
                - account_number
                - routing_number
                - bank_account_holder_name
                - bank_name
                - bank_type
                - bank_holder_type
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for ach bank debit payment
                  example: '000123456789'
                routing_number:
                  type: string
                  description: Routing number for ach bank debit payment
                  example: '110000000'
                bank_account_holder_name:
                  type: string
                  example: John Doe
                bank_name:
                  type: string
                  example: ACH
                bank_type:
                  type: string
                  example: Checking
                bank_holder_type:
                  type: string
                  example: Personal
        - type: object
          required:
            - sepa_bank_debit
          properties:
            sepa_bank_debit:
              type: object
              required:
                - iban
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                iban:
                  type: string
                  description: International bank account number (iban) for SEPA
                  example: DE89370400440532013000
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - sepa_guarenteed_bank_debit
          properties:
            sepa_guarenteed_bank_debit:
              type: object
              required:
                - iban
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                iban:
                  type: string
                  description: International bank account number (iban) for SEPA
                  example: DE89370400440532013000
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - becs_bank_debit
          properties:
            becs_bank_debit:
              type: object
              required:
                - account_number
                - bsb_number
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for Becs payment method
                  example: '000123456'
                bsb_number:
                  type: string
                  description: Bank-State-Branch (bsb) number
                  example: '000000'
                bank_account_holder_name:
                  type: string
                  description: Owner name for bank debit
                  example: A. Schneider
                  nullable: true
        - type: object
          required:
            - bacs_bank_debit
          properties:
            bacs_bank_debit:
              type: object
              required:
                - account_number
                - sort_code
                - bank_account_holder_name
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for Bacs payment method
                  example: '00012345'
                sort_code:
                  type: string
                  description: Sort code for Bacs payment method
                  example: '108800'
                bank_account_holder_name:
                  type: string
                  description: holder name for bank debit
                  example: A. Schneider
        - type: object
          required:
            - eft_debit_order
          properties:
            eft_debit_order:
              type: object
              required:
                - account_number
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/BankDebitBilling'
                  nullable: true
                account_number:
                  type: string
                  description: Account number for eft bank debit payment
                  example: '000123456789'
                branch_code:
                  type: string
                  description: Branch code for eft bank debit payment
                  example: '110000000'
                  nullable: true
                bank_account_holder_name:
                  type: string
                  example: John Doe
                  nullable: true
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
                bank_type:
                  allOf:
                    - $ref: '#/components/schemas/BankType'
                  nullable: true
    BankTransferData:
      oneOf:
        - type: object
          required:
            - ach_bank_transfer
          properties:
            ach_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/AchBillingDetails'
                  nullable: true
        - type: object
          required:
            - sepa_bank_transfer
          properties:
            sepa_bank_transfer:
              type: object
              required:
                - country
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/SepaAndBacsBillingDetails'
                  nullable: true
                country:
                  $ref: '#/components/schemas/CountryAlpha2'
        - type: object
          required:
            - bacs_bank_transfer
          properties:
            bacs_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/SepaAndBacsBillingDetails'
                  nullable: true
        - type: object
          required:
            - multibanco_bank_transfer
          properties:
            multibanco_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/MultibancoBillingDetails'
                  nullable: true
        - type: object
          required:
            - permata_bank_transfer
          properties:
            permata_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bca_bank_transfer
          properties:
            bca_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bni_va_bank_transfer
          properties:
            bni_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - bri_va_bank_transfer
          properties:
            bri_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - cimb_va_bank_transfer
          properties:
            cimb_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - danamon_va_bank_transfer
          properties:
            danamon_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - mandiri_va_bank_transfer
          properties:
            mandiri_va_bank_transfer:
              type: object
              properties:
                billing_details:
                  allOf:
                    - $ref: '#/components/schemas/DokuBillingDetails'
                  nullable: true
        - type: object
          required:
            - pix
          properties:
            pix:
              type: object
              properties:
                pix_key:
                  type: string
                  description: Unique key for pix transfer
                  example: a1f4102e-a446-4a57-bcce-6fa48899c1d1
                  nullable: true
                cpf:
                  type: string
                  description: CPF is a Brazilian tax identification number
                  example: '10599054689'
                  nullable: true
                cnpj:
                  type: string
                  description: CNPJ is a Brazilian company tax identification number
                  example: '74469027417312'
                  nullable: true
                source_bank_account_id:
                  type: string
                  description: Source bank account number
                  example: 8b******-****-****-****-*******08bc5
                  nullable: true
                destination_bank_account_id:
                  type: string
                  description: >-
                    Partially masked destination bank account number
                    _Deprecated: Will be removed in next stable release._
                  deprecated: true
                  example: '********-****-460b-****-f23b4e71c97b'
                  nullable: true
                expiry_date:
                  type: string
                  description: >-
                    The expiration date and time for the Pix QR code in ISO 8601
                    format
                  example: '2025-09-10T10:11:12Z'
                  nullable: true
        - type: object
          required:
            - pix_automatico_qr
          properties:
            pix_automatico_qr:
              type: object
        - type: object
          required:
            - pix_automatico_push
          properties:
            pix_automatico_push:
              type: object
              properties:
                account_number:
                  type: string
                  description: Account number for Pix Automatico Push payment method
                  example: '550689'
                  nullable: true
                branch_code:
                  type: string
                  description: Branch code for Pix Automatico Push payment method
                  example: '2569'
                  nullable: true
                bank_identifier:
                  type: string
                  description: Bank identifier for Pix Automatico Push payment method
                  example: '91193552'
                  nullable: true
        - type: object
          required:
            - pse
          properties:
            pse:
              type: object
        - type: object
          required:
            - local_bank_transfer
          properties:
            local_bank_transfer:
              type: object
              properties:
                bank_code:
                  type: string
                  nullable: true
        - type: object
          required:
            - instant_bank_transfer
          properties:
            instant_bank_transfer:
              type: object
        - type: object
          required:
            - instant_bank_transfer_finland
          properties:
            instant_bank_transfer_finland:
              type: object
        - type: object
          required:
            - instant_bank_transfer_poland
          properties:
            instant_bank_transfer_poland:
              type: object
        - type: object
          required:
            - indonesian_bank_transfer
          properties:
            indonesian_bank_transfer:
              type: object
              properties:
                bank_name:
                  allOf:
                    - $ref: '#/components/schemas/BankNames'
                  nullable: true
    RealTimePaymentData:
      oneOf:
        - type: object
          required:
            - fps
          properties:
            fps:
              type: object
        - type: object
          required:
            - duit_now
          properties:
            duit_now:
              type: object
        - type: object
          required:
            - prompt_pay
          properties:
            prompt_pay:
              type: object
        - type: object
          required:
            - viet_qr
          properties:
            viet_qr:
              type: object
        - type: object
          required:
            - qris
          properties:
            qris:
              type: object
    CryptoData:
      type: object
      properties:
        pay_currency:
          type: string
          nullable: true
        network:
          type: string
          nullable: true
    UpiData:
      oneOf:
        - type: object
          required:
            - upi_collect
          properties:
            upi_collect:
              $ref: '#/components/schemas/UpiCollectData'
        - type: object
          required:
            - upi_intent
          properties:
            upi_intent:
              $ref: '#/components/schemas/UpiIntentData'
        - type: object
          required:
            - upi_qr
          properties:
            upi_qr:
              $ref: '#/components/schemas/UpiQrData'
    VoucherData:
      oneOf:
        - type: object
          required:
            - boleto
          properties:
            boleto:
              $ref: '#/components/schemas/BoletoVoucherData'
        - type: string
          enum:
            - efecty
        - type: string
          enum:
            - pago_efectivo
        - type: string
          enum:
            - red_compra
        - type: string
          enum:
            - red_pagos
        - type: object
          required:
            - alfamart
          properties:
            alfamart:
              $ref: '#/components/schemas/AlfamartVoucherData'
        - type: object
          required:
            - indomaret
          properties:
            indomaret:
              $ref: '#/components/schemas/IndomaretVoucherData'
        - type: string
          enum:
            - oxxo
        - type: object
          required:
            - seven_eleven
          properties:
            seven_eleven:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - lawson
          properties:
            lawson:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - mini_stop
          properties:
            mini_stop:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - family_mart
          properties:
            family_mart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - seicomart
          properties:
            seicomart:
              $ref: '#/components/schemas/JCSVoucherData'
        - type: object
          required:
            - pay_easy
          properties:
            pay_easy:
              $ref: '#/components/schemas/JCSVoucherData'
    GiftCardData:
      oneOf:
        - type: object
          required:
            - givex
          properties:
            givex:
              $ref: '#/components/schemas/GiftCardDetails'
        - type: object
          required:
            - pay_safe_card
          properties:
            pay_safe_card:
              type: object
        - type: object
          required:
            - bhn_card_network
          properties:
            bhn_card_network:
              $ref: '#/components/schemas/BHNGiftCardDetails'
    CardToken:
      type: object
      required:
        - card_holder_name
      properties:
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_cvc:
          type: string
          description: The CVC number for the card
          nullable: true
    OpenBankingData:
      oneOf:
        - type: object
          required:
            - open_banking_pis
          properties:
            open_banking_pis:
              type: object
    MobilePaymentData:
      oneOf:
        - type: object
          required:
            - direct_carrier_billing
          properties:
            direct_carrier_billing:
              type: object
              required:
                - msisdn
              properties:
                msisdn:
                  type: string
                  description: The phone number of the user
                  example: '1234567890'
                client_uid:
                  type: string
                  description: Unique user id
                  example: 02iacdYXGI9CnyJdoN8c7
                  nullable: true
    NetworkTokenData:
      type: object
      required:
        - network_token
        - token_exp_month
        - token_exp_year
        - token_cryptogram
        - card_holder_name
      properties:
        network_token:
          type: string
          description: The network token
          example: '4604000460040787'
        token_exp_month:
          type: string
          description: The token's expiry month
          example: '05'
        token_exp_year:
          type: string
          description: The token's expiry year
          example: '24'
        token_cryptogram:
          type: string
          description: The token cryptogram
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        card_type:
          type: string
          description: The type of the card such as Credit, Debit
          example: CREDIT
          nullable: true
        card_issuing_country:
          type: string
          description: The country in which the card was issued
          example: INDIA
          nullable: true
        bank_code:
          type: string
          description: The bank code of the bank that issued the card
          example: JP_AMEX
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
        card_issuer:
          type: string
          description: The name of the issuer of card
          example: chase
          nullable: true
        nick_name:
          type: string
          description: The card holder's nick name
          example: John Test
          nullable: true
        eci:
          type: string
          description: >-
            The ECI(Electronic Commerce Indicator) value for this
            authentication.
          nullable: true
        par:
          type: string
          description: The Payment Account Reference (PAR) for this card.
          nullable: true
    MandateAmountData:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          type: integer
          format: int64
          description: The maximum amount to be debited for the mandate transaction
          example: 6540
        currency:
          $ref: '#/components/schemas/Currency'
        start_date:
          type: string
          format: date-time
          description: Specifying start date of the mandate
          example: '2022-09-10T00:00:00Z'
          nullable: true
        end_date:
          type: string
          format: date-time
          description: Specifying end date of the mandate
          example: '2023-09-10T23:59:59Z'
          nullable: true
        metadata:
          type: object
          description: Additional details required by mandate
          nullable: true
    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
    SantanderPixAutomaticoData:
      oneOf:
        - type: object
          required:
            - cit
          properties:
            cit:
              $ref: '#/components/schemas/PixAutomaticoCitData'
        - type: object
          required:
            - mit
          properties:
            mit:
              $ref: '#/components/schemas/PixAutomaticoMitData'
      description: >-
        Represents the specific data for Santander Pix Automatico (recurring PIX
        payments)

        Split into CIT (Customer Initiated Transaction) and MIT (Merchant
        Initiated Transaction) variants
    PaymentLinkTransactionDetails:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: Key for the transaction details
          example: Policy-Number
          maxLength: 255
        value:
          type: string
          description: Value for the transaction details
          example: '297472368473924'
          maxLength: 255
        ui_configuration:
          allOf:
            - $ref: '#/components/schemas/TransactionDetailsUiConfiguration'
          nullable: true
    PaymentLinkBackgroundImageConfig:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          description: URL of the image
          example: https://hyperswitch.io/favicon.ico
        position:
          allOf:
            - $ref: '#/components/schemas/ElementPosition'
          nullable: true
        size:
          allOf:
            - $ref: '#/components/schemas/ElementSize'
          nullable: true
    PaymentLinkDetailsLayout:
      type: string
      enum:
        - layout1
        - layout2
    PaymentMethodsConfig:
      type: array
      items:
        $ref: '#/components/schemas/PaymentMethodConfig'
      description: List of custom T&C messages grouped by payment method
    PaymentLinkSdkLabelType:
      type: string
      enum:
        - above
        - floating
        - never
    PaymentLinkShowSdkTerms:
      type: string
      enum:
        - always
        - auto
        - never
    CardNetwork:
      type: string
      description: Indicates the card network.
      enum:
        - Visa
        - Mastercard
        - AmericanExpress
        - JCB
        - DinersClub
        - Discover
        - CartesBancaires
        - UnionPay
        - Interac
        - RuPay
        - Maestro
        - Star
        - Pulse
        - Accel
        - Nyce
    TokenSource:
      type: string
      description: Source of the token
      enum:
        - google_pay
        - apple_pay
      example: google_pay, apple_pay
    PaymentChargeType:
      oneOf:
        - type: object
          required:
            - Stripe
          properties:
            Stripe:
              $ref: '#/components/schemas/StripeChargeType'
    AdyenSplitItem:
      type: object
      description: Data for the split items
      required:
        - amount
        - split_type
        - reference
      properties:
        amount:
          type: integer
          format: int64
          description: The amount of the split item
          example: 6540
        split_type:
          $ref: '#/components/schemas/AdyenSplitType'
        account:
          type: string
          description: >-
            The unique identifier of the account to which the split amount is
            allocated.
          nullable: true
        reference:
          type: string
          description: Unique Identifier for the split item
        description:
          type: string
          description: >-
            Description for the part of the payment that will be allocated to
            the specified account.
          nullable: true
      additionalProperties: false
    XenditMultipleSplitRequest:
      type: object
      description: Fee information to be charged on the payment being collected via xendit
      required:
        - name
        - description
        - routes
      properties:
        name:
          type: string
          description: >-
            Name to identify split rule. Not required to be unique. Typically
            based on transaction and/or sub-merchant types.
        description:
          type: string
          description: Description to identify fee rule
        for_user_id:
          type: string
          description: The sub-account user-id that you want to make this transaction for.
          nullable: true
        routes:
          type: array
          items:
            $ref: '#/components/schemas/XenditSplitRoute'
          description: >-
            Array of objects that define how the platform wants to route the
            fees and to which accounts.
      additionalProperties: false
    XenditSplitSubMerchantData:
      type: object
      description: >-
        Fee information to be charged on the payment being collected for
        sub-merchant via xendit
      required:
        - for_user_id
      properties:
        for_user_id:
          type: string
          description: The sub-account user-id that you want to make this transaction for.
      additionalProperties: false
    PostCaptureVoidStatus:
      type: string
      description: The status of a post-capture void operation
      enum:
        - succeeded
        - pending
        - failed
    StripeSplitRefundRequest:
      type: object
      description: >-
        Charge specific fields for controlling the revert of funds from either
        platform or connected account for Stripe. Check sub-fields for more
        details.
      properties:
        revert_platform_fee:
          type: boolean
          description: >-
            Toggle for reverting the application fee that was collected for the
            payment.

            If set to false, the funds are pulled from the destination account.
          nullable: true
        revert_transfer:
          type: boolean
          description: >-
            Toggle for reverting the transfer that was made during the charge.

            If set to false, the funds are pulled from the main platform's
            account.
          nullable: true
      additionalProperties: false
    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
      properties:
        last4:
          type: string
          description: The last four digit of the network token
          nullable: true
        card_type:
          type: string
          description: The type of the card such as Credit, Debit
          nullable: true
        card_network:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        token_isin:
          type: string
          description: The ISIN of the token
          nullable: true
        card_issuer:
          type: string
          description: The name of the issuer of card
          nullable: true
        card_issuing_country:
          type: string
          description: The country in which the card was issued
          nullable: true
        token_exp_month:
          type: string
          description: The expiry month of the network token
          nullable: true
        token_exp_year:
          type: string
          description: The expiry year of the network token
          nullable: true
        card_holder_name:
          type: string
          description: The card holder's name
          nullable: true
        par:
          type: string
          description: The Payment Account Reference (PAR) for this card
          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
    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
    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
    UnifiedCode:
      type: string
      enum:
        - UE_1000
        - UE_2000
        - UE_3000
        - UE_4000
        - UE_9000
    StandardisedCode:
      type: string
      enum:
        - account_closed_or_invalid
        - authentication_failed
        - authentication_required
        - authorization_missing_or_revoked
        - card_lost_or_stolen
        - card_not_supported_restricted
        - cfg_pm_not_enabled_or_misconfigured
        - compliance_or_sanctions_restriction
        - configuration_issue
        - credit_limit_exceeded
        - currency_or_corridor_not_enabled
        - do_not_honor
        - downstream_technical_issue
        - duplicate_request
        - generic_unknown_error
        - incorrect_authentication_code
        - insufficient_funds
        - integ_cryptographic_issue
        - integration_issue
        - invalid_card_number
        - invalid_credentials
        - invalid_cvv
        - invalid_expiry_date
        - invalid_state
        - issuer_unavailable
        - merchant_inactive
        - missing_or_invalid_param
        - operation_not_allowed
        - payment_cancelled_by_user
        - payment_method_issue
        - payment_session_timeout
        - pm_address_mismatch
        - psp_acquirer_error
        - psp_fraud_engine_decline
        - rate_limit
        - stored_credential_or_mit_not_enabled
        - subscription_plan_inactive
        - suspected_fraud
        - three_ds_authentication_service_issue
        - three_ds_configuration_issue
        - three_ds_data_or_protocol_invalid
        - transaction_not_permitted
        - transaction_timed_out
        - velocity_limit_exceeded
        - wallet_or_token_config_issue
    RecommendedAction:
      type: string
      enum:
        - do_not_retry
        - retry_after_10_days
        - retry_after_1_hour
        - retry_after_24_hours
        - retry_after_2_days
        - retry_after_4_days
        - retry_after_6_days
        - retry_after_8_days
        - retry_after_instrument_update
        - retry_later
        - retry_with_different_payment_method_data
        - stop_recurring
    ApiNetworkErrorDetails:
      type: object
      description: Network-specific error details (e.g., Visa, Mastercard)
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/CardNetwork'
          nullable: true
        advice_code:
          type: string
          description: Network advice code
          nullable: true
        advice_message:
          type: string
          description: Network advice message
          nullable: true
    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
    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
    PixAutomaticoPushDetails:
      type: object
      required:
        - time
      properties:
        time:
          type: integer
          format: int32
          description: Time in seconds until which the push notification is valid
          example: 3600
          minimum: 0
    XenditMultipleSplitResponse:
      type: object
      description: Fee information charged on the payment being collected via xendit
      required:
        - split_rule_id
        - name
        - description
        - routes
      properties:
        split_rule_id:
          type: string
          description: Identifier for split rule created for the payment
        for_user_id:
          type: string
          description: The sub-account user-id that you want to make this transaction for.
          nullable: true
        name:
          type: string
          description: >-
            Name to identify split rule. Not required to be unique. Typically
            based on transaction and/or sub-merchant types.
        description:
          type: string
          description: Description to identify fee rule
        routes:
          type: array
          items:
            $ref: '#/components/schemas/XenditSplitRoute'
          description: >-
            Array of objects that define how the platform wants to route the
            fees and to which accounts.
      additionalProperties: false
    AliPayHkRedirection:
      type: object
    AliPayQr:
      type: object
    AliPayRedirection:
      type: object
    AmazonPayWalletData:
      type: object
      required:
        - checkout_session_id
      properties:
        checkout_session_id:
          type: string
          description: Checkout Session identifier
    AmazonPayRedirectData:
      type: object
    ApplePayWalletData:
      type: object
      required:
        - payment_data
        - payment_method
        - transaction_identifier
      properties:
        payment_data:
          $ref: '#/components/schemas/ApplePayPaymentData'
        payment_method:
          $ref: '#/components/schemas/ApplepayPaymentMethod'
        transaction_identifier:
          type: string
          description: The unique identifier for the transaction
    ApplePayRedirectData:
      type: object
    ApplePayThirdPartySdkData:
      type: object
      properties:
        token:
          type: string
          nullable: true
    CashappQr:
      type: object
    GcashRedirection:
      type: object
    GoPayRedirection:
      type: object
    GooglePayWalletData:
      type: object
      required:
        - type
        - description
        - info
        - tokenization_data
      properties:
        type:
          type: string
          description: The type of payment method
        description:
          type: string
          description: >-
            User-facing message to describe the payment method that funds this
            transaction.
        info:
          $ref: '#/components/schemas/GooglePayPaymentMethodInfo'
        tokenization_data:
          $ref: '#/components/schemas/GpayTokenizationData'
    GooglePayRedirectData:
      type: object
    GooglePayThirdPartySdkData:
      type: object
      properties:
        token:
          type: string
          nullable: true
    KakaoPayRedirection:
      type: object
    MbWayRedirection:
      type: object
      required:
        - telephone_number
      properties:
        telephone_number:
          type: string
          description: Telephone number of the shopper. Should be Portuguese phone number.
    MifinityData:
      type: object
      required:
        - date_of_birth
      properties:
        date_of_birth:
          type: string
          format: date
        language_preference:
          type: string
          nullable: true
    MobilePayRedirection:
      type: object
    MomoRedirection:
      type: object
    PaypalRedirection:
      type: object
      properties:
        email:
          type: string
          description: paypal's email address
          example: johntest@test.com
          nullable: true
          maxLength: 255
    PayPalWalletData:
      type: object
      required:
        - token
      properties:
        token:
          type: string
          description: Token generated for the Apple pay
    PayseraData:
      type: object
    PazeWalletData:
      type: object
      required:
        - complete_response
      properties:
        complete_response:
          type: string
    RevolutPayData:
      type: object
    SamsungPayWalletData:
      type: object
      required:
        - payment_credential
      properties:
        payment_credential:
          $ref: '#/components/schemas/SamsungPayWalletCredentials'
    SkrillData:
      type: object
    SwishQrData:
      type: object
    TouchNGoRedirection:
      type: object
    WeChatPayQr:
      type: object
    WeChatPayRedirection:
      type: object
    BankRedirectBilling:
      type: object
      required:
        - billing_name
        - email
      properties:
        billing_name:
          type: string
          description: The name for which billing is issued
          example: John Doe
        email:
          type: string
          description: The billing email for bank redirect
          example: example@example.com
    BankNames:
      type: string
      description: Name of banks supported by Hyperswitch
      enum:
        - absa
        - american_express
        - affin_bank
        - agro_bank
        - alliance_bank
        - am_bank
        - bank_of_america
        - bank_of_china
        - bank_islam
        - bank_muamalat
        - bank_rakyat
        - bank_simpanan_nasional
        - barclays
        - blik_p_s_p
        - capital_one
        - chase
        - citi
        - cimb_bank
        - discover
        - navy_federal_credit_union
        - pentagon_federal_credit_union
        - synchrony_bank
        - wells_fargo
        - abn_amro
        - asn_bank
        - bunq
        - handelsbanken
        - hong_leong_bank
        - hsbc_bank
        - ing
        - knab
        - kuwait_finance_house
        - moneyou
        - rabobank
        - regiobank
        - revolut
        - sns_bank
        - triodos_bank
        - van_lanschot
        - arzte_und_apotheker_bank
        - austrian_anadi_bank_ag
        - bank_austria
        - bank99_ag
        - bankhaus_carl_spangler
        - bankhaus_schelhammer_und_schattera_ag
        - bank_millennium
        - bank_p_e_k_a_o_s_a
        - bawag_psk_ag
        - bks_bank_ag
        - brull_kallmus_bank_ag
        - btv_vier_lander_bank
        - capital_bank_grawe_gruppe_ag
        - ceska_sporitelna
        - dolomitenbank
        - easybank_ag
        - e_platby_v_u_b
        - erste_bank_und_sparkassen
        - friesland_bank
        - hypo_alpeadriabank_international_ag
        - hypo_noe_lb_fur_niederosterreich_u_wien
        - hypo_oberosterreich_salzburg_steiermark
        - hypo_tirol_bank_ag
        - hypo_vorarlberg_bank_ag
        - hypo_bank_burgenland_aktiengesellschaft
        - komercni_banka
        - m_bank
        - marchfelder_bank
        - maybank
        - oberbank_ag
        - osterreichische_arzte_und_apothekerbank
        - ocbc_bank
        - pay_with_i_n_g
        - place_z_i_p_k_o
        - platnosc_online_karta_platnicza
        - posojilnica_bank_e_gen
        - postova_banka
        - public_bank
        - raiffeisen_bankengruppe_osterreich
        - rhb_bank
        - schelhammer_capital_bank_ag
        - standard_chartered_bank
        - schoellerbank_ag
        - sparda_bank_wien
        - sporo_pay
        - santander_przelew24
        - tatra_pay
        - viamo
        - volksbank_gruppe
        - volkskreditbank_ag
        - vr_bank_braunau
        - uob_bank
        - pay_with_alior_bank
        - banki_spoldzielcze
        - pay_with_inteligo
        - b_n_p_paribas_poland
        - bank_nowy_s_a
        - credit_agricole
        - pay_with_b_o_s
        - pay_with_citi_handlowy
        - pay_with_plus_bank
        - toyota_bank
        - velo_bank
        - e_transfer_pocztowy24
        - plus_bank
        - etransfer_pocztowy24
        - banki_spbdzielcze
        - bank_nowy_bfg_sa
        - getin_bank
        - blik
        - noble_pay
        - idea_bank
        - envelo_bank
        - nest_przelew
        - mbank_mtransfer
        - inteligo
        - pbac_z_ipko
        - bnp_paribas
        - bank_pekao_sa
        - volkswagen_bank
        - alior_bank
        - boz
        - bangkok_bank
        - krungsri_bank
        - krung_thai_bank
        - the_siam_commercial_bank
        - kasikorn_bank
        - open_bank_success
        - open_bank_failure
        - open_bank_cancelled
        - aib
        - bank_of_scotland
        - danske_bank
        - first_direct
        - first_trust
        - halifax
        - lloyds
        - monzo
        - nat_west
        - nationwide_bank
        - royal_bank_of_scotland
        - starling
        - tsb_bank
        - tesco_bank
        - ulster_bank
        - yoursafe
        - n26
        - nationale_nederlanden
    BankDebitBilling:
      type: object
      properties:
        name:
          type: string
          description: The billing name for bank debits
          example: John Doe
          nullable: true
        email:
          type: string
          description: The billing email for bank debits
          example: example@example.com
          nullable: true
        address:
          allOf:
            - $ref: '#/components/schemas/AddressDetails'
          nullable: true
    BankType:
      type: string
      enum:
        - checking
        - savings
    AchBillingDetails:
      type: object
      properties:
        email:
          type: string
          description: The Email ID for ACH billing
          example: example@me.com
          nullable: true
    SepaAndBacsBillingDetails:
      type: object
      properties:
        email:
          type: string
          description: The Email ID for SEPA and BACS billing
          example: example@me.com
          nullable: true
        name:
          type: string
          description: The billing name for SEPA and BACS billing
          example: Jane Doe
          nullable: true
    MultibancoBillingDetails:
      type: object
      properties:
        email:
          type: string
          example: example@me.com
          nullable: true
    DokuBillingDetails:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Doku
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Doku
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Doku billing
          example: example@me.com
          nullable: true
    UpiCollectData:
      type: object
      properties:
        vpa_id:
          type: string
          description: The Virtual Payment Address (VPA) for UPI collect payment
          example: successtest@iata
          nullable: true
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    UpiIntentData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
        app_name:
          type: string
          description: App name for UPI intent payment
          nullable: true
    UpiQrData:
      type: object
      properties:
        upi_source:
          allOf:
            - $ref: '#/components/schemas/UpiSource'
          nullable: true
    BoletoVoucherData:
      type: object
      properties:
        social_security_number:
          type: string
          description: The shopper's social security number (CPF or CNPJ)
          nullable: true
        bank_number:
          type: string
          description: The shopper's bank account number associated with the boleto
          nullable: true
        document_type:
          allOf:
            - $ref: '#/components/schemas/DocumentKind'
          nullable: true
        fine_percentage:
          type: string
          description: The fine percentage charged if payment is overdue
          nullable: true
        fine_quantity_days:
          type: string
          description: The number of days after the due date when the fine is applied
          nullable: true
        interest_percentage:
          type: string
          description: The interest percentage charged on late payments
          nullable: true
        write_off_quantity_days:
          type: string
          description: The number of days after which the boleto is written off (canceled)
          nullable: true
        messages:
          type: array
          items:
            type: string
          description: Custom messages or instructions to display on the boleto
          nullable: true
        due_date:
          type: string
          format: date
          example: '2025-08-22'
          nullable: true
    AlfamartVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    IndomaretVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Alfamart
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name for Alfamart
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Alfamart
          example: example@me.com
          nullable: true
    JCSVoucherData:
      type: object
      properties:
        first_name:
          type: string
          description: The billing first name for Japanese convenience stores
          example: Jane
          nullable: true
        last_name:
          type: string
          description: The billing second name Japanese convenience stores
          example: Doe
          nullable: true
        email:
          type: string
          description: The Email ID for Japanese convenience stores
          example: example@me.com
          nullable: true
        phone_number:
          type: string
          description: The telephone number for Japanese convenience stores
          example: '9123456789'
          nullable: true
    GiftCardDetails:
      type: object
      required:
        - number
        - cvc
      properties:
        number:
          type: string
          description: The gift card number
        cvc:
          type: string
          description: The card verification code.
    BHNGiftCardDetails:
      type: object
      required:
        - account_number
        - pin
        - cvv2
        - expiration_date
      properties:
        account_number:
          type: string
          description: The gift card or account number
        pin:
          type: string
          description: The security PIN for gift cards requiring it
        cvv2:
          type: string
          description: The CVV2 code for Open Loop/VPLN products
        expiration_date:
          type: string
          description: The expiration date in MMYYYY format for Open Loop/VPLN products
    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
    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
    PixAutomaticoCitData:
      type: object
      description: >-
        Data for Santander Pix Automatico CIT (Customer Initiated Transaction) -
        used during mandate setup
      properties:
        contract_id:
          type: string
          description: Contract ID to identify the recurring payment contract
          example: pm_16503867
          nullable: true
        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
    TransactionDetailsUiConfiguration:
      type: object
      properties:
        position:
          type: integer
          format: int32
          description: Position of the key-value pair in the UI
          example: 5
          nullable: true
        is_key_bold:
          type: boolean
          description: Whether the key should be bold
          default: false
          example: true
          nullable: true
        is_value_bold:
          type: boolean
          description: Whether the value should be bold
          default: false
          example: true
          nullable: true
    ElementPosition:
      type: string
      enum:
        - left
        - top left
        - top
        - top right
        - right
        - bottom right
        - bottom
        - bottom left
        - center
    ElementSize:
      oneOf:
        - type: object
          required:
            - Variants
          properties:
            Variants:
              $ref: '#/components/schemas/SizeVariants'
        - type: object
          required:
            - Percentage
          properties:
            Percentage:
              type: integer
              format: int32
              minimum: 0
        - type: object
          required:
            - Pixels
          properties:
            Pixels:
              type: integer
              format: int32
              minimum: 0
    PaymentMethodConfig:
      type: object
      description: Custom T&C messages for a specific payment method
      required:
        - payment_method
        - payment_method_types
      properties:
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_types:
          type: array
          items:
            $ref: '#/components/schemas/CustomTerms'
          description: Payment Method Types
          example:
            - message:
                display_mode: custom
                value: Sample message
              payment_method_type: credit
    StripeChargeType:
      type: string
      enum:
        - direct
        - destination
    AdyenSplitType:
      type: string
      enum:
        - BalanceAccount
        - AcquiringFees
        - PaymentFee
        - AdyenFees
        - AdyenCommission
        - AdyenMarkup
        - Interchange
        - SchemeFee
        - Commission
        - TopUp
        - Vat
    XenditSplitRoute:
      type: object
      description: Fee information to be charged on the payment being collected via xendit
      required:
        - currency
        - destination_account_id
        - reference_id
      properties:
        flat_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        percent_amount:
          type: integer
          format: int64
          description: Amount of payments to be split, using a percent rate as unit
          nullable: true
        currency:
          $ref: '#/components/schemas/Currency'
        destination_account_id:
          type: string
          description: ID of the destination account where the amount will be routed to
        reference_id:
          type: string
          description: Reference ID which acts as an identifier of the route itself
      additionalProperties: false
    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_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'
    InteracPaymentMethod:
      type: object
      properties:
        customer_info:
          type: object
          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'
    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'
    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
    CardTokenAdditionalData:
      type: object
      required:
        - card_holder_name
      properties:
        card_holder_name:
          type: string
          description: The card holder's name
          example: John Test
    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'
    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'
    ApplePaySessionResponse:
      oneOf:
        - $ref: '#/components/schemas/ThirdPartySdkSessionResponse'
        - $ref: '#/components/schemas/NoThirdPartySdkSessionResponse'
        - $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
    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
    RecurringPaymentIntervalUnit:
      type: string
      enum:
        - year
        - month
        - day
        - hour
        - minute
    ApplePayPaymentData:
      oneOf:
        - $ref: '#/components/schemas/ApplePayPredecryptData'
        - type: string
          description: >-
            This variant contains the encrypted Apple Pay payment data as a
            string.
      description: >-
        This enum is used to represent the Apple Pay payment data, which can
        either be encrypted or decrypted.
    ApplepayPaymentMethod:
      type: object
      required:
        - display_name
        - network
        - type
      properties:
        display_name:
          type: string
          description: The name to be displayed on Apple Pay button
        network:
          type: string
          description: The network of the Apple pay payment method
        type:
          type: string
          description: The type of the payment method
        card_exp_month:
          type: string
          description: The card's expiry month
          example: '12'
          nullable: true
        card_exp_year:
          type: string
          description: The card's expiry year
          example: '003925'
          nullable: true
        auth_code:
          type: string
          description: Unique authorisation code generated for the payment
          nullable: true
    GooglePayPaymentMethodInfo:
      type: object
      required:
        - card_network
        - card_details
      properties:
        card_network:
          type: string
          description: The name of the card network
        card_details:
          type: string
          description: The details of the card
        assurance_details:
          allOf:
            - $ref: '#/components/schemas/GooglePayAssuranceDetails'
          nullable: true
        card_funding_source:
          allOf:
            - $ref: '#/components/schemas/GooglePayCardFundingSource'
          nullable: true
    GpayTokenizationData:
      oneOf:
        - $ref: '#/components/schemas/GPayPredecryptData'
        - $ref: '#/components/schemas/GpayEcryptedTokenizationData'
      description: >-
        This enum is used to represent the Gpay payment data, which can either
        be encrypted or decrypted.
    SamsungPayWalletCredentials:
      oneOf:
        - $ref: '#/components/schemas/SamsungPayWebWalletData'
        - $ref: '#/components/schemas/SamsungPayAppWalletData'
    UpiSource:
      type: string
      description: >-
        The source type for UPI payments. This indicates what payment source is
        being used for the UPI transaction.
      enum:
        - UPI_CC
        - UPI_CL
        - UPI_ACCOUNT
        - UPI_CC_CL
        - UPI_PPI
        - UPI_VOUCHER
    PaymentProcessingDetails:
      type: object
      required:
        - payment_processing_certificate
        - payment_processing_certificate_key
      properties:
        payment_processing_certificate:
          type: string
        payment_processing_certificate_key:
          type: string
    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
    SantanderMandateDetails:
      type: object
      properties:
        amount:
          type: integer
          format: int64
          description: Maximum amount for each recurring charge
          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
    SizeVariants:
      type: string
      enum:
        - cover
        - contain
    CustomTerms:
      type: object
      description: Custom T&C message for a specific payment method type
      required:
        - payment_method_type
        - message
      properties:
        payment_method_type:
          $ref: '#/components/schemas/PaymentMethodType'
        message:
          $ref: '#/components/schemas/CustomMessage'
    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
    GivexGiftCardAdditionalData:
      type: object
      required:
        - last4
      properties:
        last4:
          type: string
          description: Last 4 digits of the gift card number
          example: '4242'
    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'
    NoThirdPartySdkSessionResponse:
      type: object
      required:
        - epoch_timestamp
        - expires_at
        - merchant_session_identifier
        - nonce
        - merchant_identifier
        - domain_name
        - display_name
        - signature
        - operational_analytics_identifier
        - retries
        - psp_id
      properties:
        epoch_timestamp:
          type: integer
          format: int64
          description: Timestamp at which session is requested
          minimum: 0
        expires_at:
          type: integer
          format: int64
          description: Timestamp at which session expires
          minimum: 0
        merchant_session_identifier:
          type: string
          description: The identifier for the merchant session
        nonce:
          type: string
          description: Apple pay generated unique ID (UUID) value
        merchant_identifier:
          type: string
          description: The identifier for the merchant
        domain_name:
          type: string
          description: The domain name of the merchant which is registered in Apple Pay
        display_name:
          type: string
          description: The name to be displayed on Apple Pay button
        signature:
          type: string
          description: A string which represents the properties of a payment
        operational_analytics_identifier:
          type: string
          description: The identifier for the operational analytics
        retries:
          type: integer
          format: int32
          description: The number of retries to get the session response
          minimum: 0
        psp_id:
          type: string
          description: The identifier for the connector transaction
    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
    ApplePayPredecryptData:
      type: object
      description: This struct represents the decrypted Apple Pay payment data
      required:
        - application_primary_account_number
        - application_expiration_month
        - application_expiration_year
        - payment_data
      properties:
        application_primary_account_number:
          type: string
          description: The primary account number
          example: '4242424242424242'
        application_expiration_month:
          type: string
          description: The application expiration date (PAN expiry month)
          example: '12'
        application_expiration_year:
          type: string
          description: The application expiration date (PAN expiry year)
          example: '24'
        payment_data:
          $ref: '#/components/schemas/ApplePayCryptogramData'
    GooglePayAssuranceDetails:
      type: object
      required:
        - card_holder_authenticated
        - account_verified
      properties:
        card_holder_authenticated:
          type: boolean
          description: indicates that Cardholder possession validation has been performed
        account_verified:
          type: boolean
          description: indicates that identification and verifications (ID&V) was performed
    GooglePayCardFundingSource:
      type: string
      enum:
        - CREDIT
        - DEBIT
        - PREPAID
        - UNKNOWN
    GPayPredecryptData:
      type: object
      description: This struct represents the decrypted Google Pay payment data
      required:
        - card_exp_month
        - card_exp_year
        - application_primary_account_number
        - cryptogram
        - eci_indicator
      properties:
        card_exp_month:
          type: string
          description: The card's expiry month
        card_exp_year:
          type: string
          description: The card's expiry year
        application_primary_account_number:
          type: string
          description: The Primary Account Number (PAN) of the card
          example: '4242424242424242'
        cryptogram:
          type: string
          description: Cryptogram generated by the Network
          example: AgAAAAAAAIR8CQrXcIhbQAAAAAA
        eci_indicator:
          type: string
          description: Electronic Commerce Indicator
          example: '07'
    GpayEcryptedTokenizationData:
      type: object
      description: This struct represents the encrypted Gpay payment data
      required:
        - type
        - token
      properties:
        type:
          type: string
          description: The type of the token
        token:
          type: string
          description: Token generated for the wallet
    SamsungPayWebWalletData:
      type: object
      required:
        - card_brand
        - card_last4digits
        - 3_d_s
      properties:
        method:
          type: string
          description: Specifies authentication method used
          nullable: true
        recurring_payment:
          type: boolean
          description: Value if credential is enabled for recurring payment
          nullable: true
        card_brand:
          $ref: '#/components/schemas/SamsungPayCardBrand'
        card_last4digits:
          type: string
          description: Last 4 digits of the card number
        3_d_s:
          $ref: '#/components/schemas/SamsungPayTokenData'
    SamsungPayAppWalletData:
      type: object
      required:
        - 3_d_s
        - payment_card_brand
        - payment_currency_type
        - payment_last4_fpan
      properties:
        3_d_s:
          $ref: '#/components/schemas/SamsungPayTokenData'
        payment_card_brand:
          $ref: '#/components/schemas/SamsungPayCardBrand'
        payment_currency_type:
          type: string
          description: Currency type of the payment
        payment_last4_dpan:
          type: string
          description: Last 4 digits of the device specific card number
          nullable: true
        payment_last4_fpan:
          type: string
          description: Last 4 digits of the card number
        merchant_ref:
          type: string
          description: Merchant reference id that was passed in the session call request
          nullable: true
        method:
          type: string
          description: Specifies authentication method used
          nullable: true
        recurring_payment:
          type: boolean
          description: Value if credential is enabled for recurring payment
          nullable: true
    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
    CustomMessage:
      type: object
      description: Custom T&C message content and display mode
      required:
        - value
      properties:
        value:
          type: string
          description: The text to be shown per payment method type
          example: I authorize Novalnet AG to debit my account.
        display_mode:
          $ref: '#/components/schemas/SdkDisplayMode'
    BankHolderType:
      type: string
      enum:
        - personal
        - business
    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
    ApplePayCryptogramData:
      type: object
      description: This struct represents the cryptogram data for Apple Pay transactions
      required:
        - online_payment_cryptogram
        - eci_indicator
      properties:
        online_payment_cryptogram:
          type: string
          description: The online payment cryptogram
          example: A1B2C3D4E5F6G7H8
        eci_indicator:
          type: string
          description: The ECI (Electronic Commerce Indicator) value
          example: '05'
    SamsungPayCardBrand:
      type: string
      enum:
        - visa
        - mastercard
        - amex
        - discover
        - unknown
    SamsungPayTokenData:
      type: object
      required:
        - version
        - data
      properties:
        type:
          type: string
          description: 3DS type used by Samsung Pay
          nullable: true
        version:
          type: string
          description: 3DS version used by Samsung Pay
        data:
          type: string
          description: Samsung Pay encrypted payment credential data
    SdkDisplayMode:
      type: string
      description: Display mode options for controlling how messages are shown.
      enum:
        - default_sdk_message
        - custom_message
        - hidden
    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: api-key
      description: >-
        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.
    publishable_key:
      type: apiKey
      in: header
      name: api-key
      description: >-
        Publishable keys are a type of keys that can be public and have limited
        scope of usage.

````