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

> **Update a payment intent object**

You will require the 'API - Key' from the Hyperswitch dashboard to make the call.



## OpenAPI

````yaml put /v2/payments/{id}/update-intent
openapi: 3.0.3
info:
  title: Hyperswitch - API Documentation
  description: >

    ## Get started


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

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


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


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

    affecting production data.

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

    and will be available soon.

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


    ### Environment


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


    | Environment   |  Base URL                          |

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

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

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


    ## Authentication


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

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

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

    the request Authorization header.


    | Key             | 
    Description                                                                                 
    |

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

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

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


    Never share your secret api keys. Keep them guarded and secure.
  contact:
    name: Hyperswitch Support
    url: https://hyperswitch.io
    email: support.global@juspay.io
  license:
    name: Apache-2.0
  version: 0.1.0
servers:
  - url: https://sandbox.hyperswitch.io
    description: Sandbox Environment
security: []
tags:
  - name: Merchant Account
    description: Create and manage merchant accounts
  - name: Profile
    description: Create and manage profiles
  - name: Merchant Connector Account
    description: Create and manage merchant connector accounts
  - name: Payments
    description: Create and manage one-time payments, recurring payments and mandates
  - name: Refunds
    description: Create and manage refunds for successful payments
  - name: Mandates
    description: Manage mandates
  - name: Customers
    description: Create and manage customers
  - name: Payment Methods
    description: Create and manage payment methods of customers
  - name: Disputes
    description: Manage disputes
  - name: API Key
    description: Create and manage API Keys
  - name: Payouts
    description: Create and manage payouts
  - name: payment link
    description: Create payment link
  - name: Routing
    description: Create and manage routing configurations
  - name: Event
    description: Manage events
paths:
  /v2/payments/{id}/update-intent:
    put:
      tags:
        - Payments
      summary: Payments - Update Intent
      description: >-
        **Update a payment intent object**


        You will require the 'API - Key' from the Hyperswitch dashboard to make
        the call.
      operationId: Update a Payment Intent
      parameters:
        - name: id
          in: path
          description: The unique identifier for the Payment Intent
          required: true
          schema:
            type: string
        - name: X-Profile-Id
          in: header
          description: Profile ID associated to the payment intent
          required: true
          schema:
            type: string
          example: pro_abcdefghijklmnop
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentsUpdateIntentRequest'
            examples:
              Update a payment intent with minimal fields:
                value:
                  amount_details:
                    currency: USD
                    order_amount: 6540
        required: true
      responses:
        '200':
          description: Payment Intent Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsIntentResponse'
        '404':
          description: Payment Intent Not Found
      security:
        - api_key: []
components:
  schemas:
    PaymentsUpdateIntentRequest:
      type: object
      properties:
        amount_details:
          allOf:
            - $ref: '#/components/schemas/AmountDetailsUpdate'
          nullable: true
        routing_algorithm_id:
          type: string
          description: The routing algorithm id to be used for the payment
          nullable: true
        capture_method:
          allOf:
            - $ref: '#/components/schemas/CaptureMethod'
          nullable: true
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          default: no_three_ds
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        customer_present:
          allOf:
            - $ref: '#/components/schemas/PresenceOfCustomerDuringPayment'
          nullable: true
        description:
          type: string
          description: A description for the payment
          example: It's my first payment request
          nullable: true
        return_url:
          type: string
          description: >-
            The URL to which you want the user to be redirected after the
            completion of the payment operation
          example: https://hyperswitch.io
          nullable: true
        setup_future_usage:
          allOf:
            - $ref: '#/components/schemas/FutureUsage'
          nullable: true
        apply_mit_exemption:
          allOf:
            - $ref: '#/components/schemas/MitExemptionRequest'
          nullable: true
        statement_descriptor:
          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: 22
        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
        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
        metadata:
          type: object
          description: >-
            Metadata is useful for storing additional, unstructured information
            on an object. This metadata will override the metadata that was
            passed in payments
          nullable: true
        connector_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadata'
          nullable: true
        feature_metadata:
          allOf:
            - $ref: '#/components/schemas/FeatureMetadata'
          nullable: true
        payment_link_config:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkConfigRequest'
          nullable: true
        request_incremental_authorization:
          allOf:
            - $ref: '#/components/schemas/RequestIncrementalAuthorization'
          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, if not sent it will be taken from profile
            config

            (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:
          allOf:
            - $ref: '#/components/schemas/External3dsAuthenticationRequest'
          nullable: true
        set_active_attempt_id:
          allOf:
            - $ref: '#/components/schemas/UpdateActiveAttempt'
          nullable: true
        enable_partial_authorization:
          type: boolean
          description: Allow partial authorization for this payment
          default: false
          nullable: true
      additionalProperties: false
    PaymentsIntentResponse:
      type: object
      required:
        - id
        - status
        - amount_details
        - client_secret
        - profile_id
        - capture_method
        - customer_id
        - customer_present
        - setup_future_usage
        - apply_mit_exemption
        - payment_link_enabled
        - request_incremental_authorization
        - split_txns_enabled
        - expires_on
        - request_external_three_ds_authentication
        - payment_type
      properties:
        id:
          type: string
          description: Global Payment Id for the payment
        status:
          $ref: '#/components/schemas/IntentStatus'
        amount_details:
          $ref: '#/components/schemas/AmountDetailsResponse'
        client_secret:
          type: string
          description: It's a token used for client side verification.
          example: cs_0195b34da95d75239c6a4bf514458896
        profile_id:
          type: string
          description: >-
            The identifier for the profile. This is inferred from the
            `x-profile-id` header
        merchant_reference_id:
          type: string
          description: >-
            Unique identifier for the payment. This ensures idempotency for
            multiple payments

            that have been done by a single merchant.
          example: pay_mbabizu24mvu3mela5njyhpit4
          nullable: true
          maxLength: 30
          minLength: 30
        routing_algorithm_id:
          type: string
          description: The routing algorithm id to be used for the payment
          nullable: true
        capture_method:
          $ref: '#/components/schemas/CaptureMethod'
        authentication_type:
          allOf:
            - $ref: '#/components/schemas/AuthenticationType'
          nullable: true
        billing:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        shipping:
          allOf:
            - $ref: '#/components/schemas/Address'
          nullable: true
        customer_id:
          type: string
          description: The identifier for the customer
          example: 0a_cus_01926c58bc6e77c09e809964e72af8c8
          maxLength: 64
          minLength: 32
        customer_present:
          $ref: '#/components/schemas/PresenceOfCustomerDuringPayment'
        description:
          type: string
          description: A description for the payment
          example: It's my first payment request
          nullable: true
        return_url:
          type: string
          description: >-
            The URL to which you want the user to be redirected after the
            completion of the payment operation
          example: https://hyperswitch.io
          nullable: true
        setup_future_usage:
          $ref: '#/components/schemas/FutureUsage'
        apply_mit_exemption:
          $ref: '#/components/schemas/MitExemptionRequest'
        statement_descriptor:
          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: 22
        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
        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
        metadata:
          type: object
          description: >-
            Metadata is useful for storing additional, unstructured information
            on an object.
          nullable: true
        connector_metadata:
          allOf:
            - $ref: '#/components/schemas/ConnectorMetadata'
          nullable: true
        feature_metadata:
          allOf:
            - $ref: '#/components/schemas/FeatureMetadata'
          nullable: true
        payment_link_enabled:
          $ref: '#/components/schemas/EnablePaymentLinkRequest'
        payment_link_config:
          allOf:
            - $ref: '#/components/schemas/PaymentLinkConfigRequest'
          nullable: true
        request_incremental_authorization:
          $ref: '#/components/schemas/RequestIncrementalAuthorization'
        split_txns_enabled:
          allOf:
            - $ref: '#/components/schemas/SplitTxnsEnabled'
          default: skip
        expires_on:
          type: string
          format: date-time
          description: >-
            Will be used to expire client secret after certain amount of time to
            be supplied in seconds
        frm_metadata:
          type: object
          description: >-
            Additional data related to some frm(Fraud Risk Management)
            connectors
          nullable: true
        request_external_three_ds_authentication:
          $ref: '#/components/schemas/External3dsAuthenticationRequest'
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        enable_partial_authorization:
          type: boolean
          description: Allow partial authorization for this payment
          default: false
          nullable: true
      additionalProperties: false
    AmountDetailsUpdate:
      type: object
      properties:
        order_amount:
          type: integer
          format: int64
          description: >-
            The payment amount. Amount for the payment in the lowest
            denomination of the currency, (i.e) in cents for USD denomination,
            in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and
            1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the
            Decimal and Non-Decimal
            Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)
          example: 6540
          nullable: true
          minimum: 0
        currency:
          allOf:
            - $ref: '#/components/schemas/Currency'
          nullable: true
        shipping_cost:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        order_tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        skip_external_tax_calculation:
          allOf:
            - $ref: '#/components/schemas/TaxCalculationOverride'
          nullable: true
        skip_surcharge_calculation:
          allOf:
            - $ref: '#/components/schemas/SurchargeCalculationOverride'
          nullable: true
        surcharge_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        tax_on_surcharge:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    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
    PresenceOfCustomerDuringPayment:
      type: string
      description: >-
        Set to `present` to indicate that the customer is in your checkout flow
        during this payment, and therefore is able to authenticate. This
        parameter should be `absent` when merchant's doing merchant initiated
        payments and customer is not present while doing the payment.
      enum:
        - present
        - absent
    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
    MitExemptionRequest:
      type: string
      enum:
        - Apply
        - Skip
    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
    PaymentMethodType:
      type: string
      description: >-
        Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay'
        for wallets.
      enum:
        - ach
        - affirm
        - afterpay_clearpay
        - alfamart
        - ali_pay
        - ali_pay_hk
        - alma
        - amazon_pay
        - paysera
        - apple_pay
        - atome
        - bacs
        - bancontact_card
        - becs
        - benefit
        - bizum
        - blik
        - bluecode
        - boleto
        - bca_bank_transfer
        - bni_va
        - breadpay
        - bri_va
        - bhn_card_network
        - card_redirect
        - cimb_va
        - classic
        - credit
        - crypto_currency
        - cashapp
        - dana
        - danamon_va
        - debit
        - duit_now
        - efecty
        - eft
        - eft_debit_order
        - eps
        - flexiti
        - fps
        - evoucher
        - giropay
        - givex
        - google_pay
        - go_pay
        - gcash
        - ideal
        - interac
        - indomaret
        - klarna
        - kakao_pay
        - local_bank_redirect
        - mandiri_va
        - knet
        - mb_way
        - mobile_pay
        - momo
        - momo_atm
        - multibanco
        - online_banking_thailand
        - online_banking_czech_republic
        - online_banking_finland
        - online_banking_fpx
        - online_banking_poland
        - online_banking_slovakia
        - oxxo
        - pago_efectivo
        - permata_bank_transfer
        - open_banking_uk
        - pay_bright
        - payjustnow
        - paypal
        - paze
        - pix
        - pix_key
        - pix_emv
        - pix_qr
        - pix_automatico_qr
        - pix_automatico_push
        - pay_safe_card
        - przelewy24
        - prompt_pay
        - pse
        - qris
        - red_compra
        - red_pagos
        - samsung_pay
        - sepa
        - sepa_bank_transfer
        - sepa_guarenteed_debit
        - skrill
        - sofort
        - swish
        - touch_n_go
        - trustly
        - twint
        - upi_collect
        - upi_intent
        - upi_qr
        - vipps
        - viet_qr
        - venmo
        - walley
        - we_chat_pay
        - seven_eleven
        - lawson
        - mini_stop
        - family_mart
        - seicomart
        - pay_easy
        - local_bank_transfer
        - mifinity
        - open_banking_pis
        - direct_carrier_billing
        - instant_bank_transfer
        - instant_bank_transfer_finland
        - instant_bank_transfer_poland
        - revolut_pay
        - indonesian_bank_transfer
        - open_banking
        - network_token
    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
    FeatureMetadata:
      type: object
      description: additional data that might be required by hyperswitch
      properties:
        redirect_response:
          allOf:
            - $ref: '#/components/schemas/RedirectResponse'
          nullable: true
        search_tags:
          type: array
          items:
            type: string
          description: Additional tags to be used for global search
          nullable: true
        apple_pay_recurring_details:
          allOf:
            - $ref: '#/components/schemas/ApplePayRecurringDetails'
          nullable: true
        revenue_recovery:
          allOf:
            - $ref: '#/components/schemas/PaymentRevenueRecoveryMetadata'
          nullable: true
        pix_additional_details:
          allOf:
            - $ref: '#/components/schemas/PixAdditionalDetails'
          nullable: true
        boleto_additional_details:
          allOf:
            - $ref: '#/components/schemas/BoletoAdditionalDetails'
          nullable: true
        pix_automatico_additional_details:
          allOf:
            - $ref: '#/components/schemas/PixAutomaticoAdditionalDetails'
          nullable: true
        finix_additional_details:
          allOf:
            - $ref: '#/components/schemas/FinixAdditionalDetails'
          nullable: true
    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
        show_merchant_name:
          type: boolean
          description: Flag to display the merchant name in the payment link
          default: true
          example: true
          nullable: true
    RequestIncrementalAuthorization:
      type: string
      enum:
        - 'true'
        - 'false'
        - default
    External3dsAuthenticationRequest:
      type: string
      description: Whether 3ds authentication is requested or not
      enum:
        - Enable
        - Skip
    UpdateActiveAttempt:
      oneOf:
        - type: object
          required:
            - Set
          properties:
            Set:
              type: string
              description: Request to set the active attempt id
              nullable: true
        - type: string
          description: To unset the active attempt id
          enum:
            - Unset
      description: Whether active attempt is to be set/unset
    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
    AmountDetailsResponse:
      type: object
      required:
        - order_amount
        - currency
        - external_tax_calculation
        - surcharge_calculation
      properties:
        order_amount:
          type: integer
          format: int64
          description: >-
            The payment amount. Amount for the payment in the lowest
            denomination of the currency, (i.e) in cents for USD denomination,
            in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and
            1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the
            Decimal and Non-Decimal
            Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)
          example: 6540
          minimum: 0
        currency:
          $ref: '#/components/schemas/Currency'
        shipping_cost:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        order_tax_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        external_tax_calculation:
          $ref: '#/components/schemas/TaxCalculationOverride'
        surcharge_calculation:
          $ref: '#/components/schemas/SurchargeCalculationOverride'
        surcharge_amount:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        tax_on_surcharge:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
        amount_captured:
          allOf:
            - $ref: '#/components/schemas/MinorUnit'
          nullable: true
    EnablePaymentLinkRequest:
      type: string
      description: >-
        Whether payment link is requested to be enabled or not for this
        transaction
      enum:
        - Enable
        - Skip
    SplitTxnsEnabled:
      type: string
      enum:
        - enable
        - skip
    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
    Currency:
      type: string
      description: >-
        The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the
        payment amount. This field is mandatory for creating a payment.
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLE
        - SLL
        - SOS
        - SRD
        - SSP
        - STD
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
    MinorUnit:
      type: integer
      format: int64
      description: This Unit struct represents MinorUnit in which core amount works
    TaxCalculationOverride:
      type: string
      enum:
        - skip
        - calculate
    SurchargeCalculationOverride:
      type: string
      enum:
        - skip
        - calculate
    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
    ProductType:
      type: string
      enum:
        - physical
        - digital
        - travel
        - ride
        - event
        - accommodation
    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
    RedirectResponse:
      type: object
      properties:
        param:
          type: string
          nullable: true
        json_payload:
          type: object
          nullable: true
    ApplePayRecurringDetails:
      type: object
      required:
        - payment_description
        - regular_billing
        - management_url
      properties:
        payment_description:
          type: string
          description: >-
            A description of the recurring payment that Apple Pay displays to
            the user in the payment sheet
        regular_billing:
          $ref: '#/components/schemas/ApplePayRegularBillingDetails'
        billing_agreement:
          type: string
          description: >-
            A localized billing agreement that the payment sheet displays to the
            user before the user authorizes the payment
          nullable: true
        management_url:
          type: string
          description: >-
            A URL to a web page where the user can update or delete the payment
            method for the recurring payment
          example: https://hyperswitch.io
    PaymentRevenueRecoveryMetadata:
      type: object
      required:
        - total_retry_count
        - billing_connector_id
        - active_attempt_payment_connector_id
        - billing_connector_payment_details
        - payment_method_type
        - payment_method_subtype
        - connector
        - billing_connector_payment_method_details
      properties:
        total_retry_count:
          type: integer
          format: int32
          description: >-
            Total number of billing connector + recovery retries for a payment
            intent.
          example: '1'
          minimum: 0
        payment_connector_transmission:
          allOf:
            - $ref: '#/components/schemas/PaymentConnectorTransmission'
          nullable: true
        billing_connector_id:
          type: string
          description: Billing Connector Id to update the invoices
          example: mca_1234567890
        active_attempt_payment_connector_id:
          type: string
          description: Payment Connector Id to retry the payments
          example: mca_1234567890
        billing_connector_payment_details:
          $ref: '#/components/schemas/BillingConnectorPaymentDetails'
        payment_method_type:
          $ref: '#/components/schemas/PaymentMethod'
        payment_method_subtype:
          $ref: '#/components/schemas/PaymentMethodType'
        connector:
          $ref: '#/components/schemas/Connector'
        billing_connector_payment_method_details:
          $ref: '#/components/schemas/BillingConnectorPaymentMethodDetails'
        invoice_next_billing_time:
          type: string
          format: date-time
          description: Invoice Next billing time
          nullable: true
        invoice_billing_started_at_time:
          type: string
          format: date-time
          description: Invoice Next billing time
          nullable: true
        first_payment_attempt_pg_error_code:
          type: string
          description: First Payment Attempt Payment Gateway Error Code
          example: card_declined
          nullable: true
        first_payment_attempt_network_decline_code:
          type: string
          description: First Payment Attempt Network Error Code
          example: '05'
          nullable: true
        first_payment_attempt_network_advice_code:
          type: string
          description: First Payment Attempt Network Advice Code
          example: '02'
          nullable: true
    PixAdditionalDetails:
      oneOf:
        - type: object
          required:
            - immediate
          properties:
            immediate:
              $ref: '#/components/schemas/ImmediateExpirationTime'
        - type: object
          required:
            - scheduled
          properties:
            scheduled:
              $ref: '#/components/schemas/ScheduledExpirationTime'
    BoletoAdditionalDetails:
      type: object
      properties:
        due_date:
          type: string
          description: Due Date for the Boleto
          example: '2026-12-31'
          nullable: true
        document_kind:
          allOf:
            - $ref: '#/components/schemas/BoletoDocumentKind'
          nullable: true
        payment_type:
          allOf:
            - $ref: '#/components/schemas/BoletoPaymentType'
          nullable: true
        covenant_code:
          type: string
          example: '3568253'
          nullable: true
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
        discount_rules:
          allOf:
            - $ref: '#/components/schemas/SantanderPaymentDiscountRules'
          nullable: true
        penalties:
          allOf:
            - $ref: '#/components/schemas/PenaltyRules'
          nullable: true
        collection_actions:
          allOf:
            - $ref: '#/components/schemas/CollectionActions'
          nullable: true
        payment_constraints:
          allOf:
            - $ref: '#/components/schemas/BoletoPaymentTypeConstraints'
          nullable: true
        beneficiary:
          allOf:
            - $ref: '#/components/schemas/BeneficiaryDetails'
          nullable: true
    PixAutomaticoAdditionalDetails:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoPushData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_push
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoQrData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_qr
        - allOf:
            - $ref: '#/components/schemas/PixAutomaticoMitData'
            - type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - pix_automatico_mit
      description: >-
        Represents the specific data for Santander Pix Automatico (recurring PIX
        payments)

        Split into CIT (Customer Initiated Transaction) and MIT (Merchant
        Initiated Transaction) variants
      discriminator:
        propertyName: type
    FinixAdditionalDetails:
      type: object
      properties:
        fraud_session_id:
          type: string
          description: The fraud session ID used for Finix fraud detection
          example: 1234567890abcdef
          nullable: true
    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
    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
    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
    ApplePayRegularBillingDetails:
      type: object
      required:
        - label
      properties:
        label:
          type: string
          description: >-
            The label that Apple Pay displays to the user in the payment sheet
            with the recurring details
        recurring_payment_start_date:
          type: string
          format: date-time
          description: The date of the first payment
          example: '2023-09-10T23:59:59Z'
          nullable: true
        recurring_payment_end_date:
          type: string
          format: date-time
          description: The date of the final payment
          example: '2023-09-10T23:59:59Z'
          nullable: true
        recurring_payment_interval_unit:
          allOf:
            - $ref: '#/components/schemas/RecurringPaymentIntervalUnit'
          nullable: true
        recurring_payment_interval_count:
          type: integer
          format: int32
          description: The number of interval units that make up the total payment interval
          nullable: true
    PaymentConnectorTransmission:
      type: string
      enum:
        - ConnectorCallUnsuccessful
        - ConnectorCallSucceeded
    BillingConnectorPaymentDetails:
      type: object
      required:
        - payment_processor_token
        - connector_customer_id
      properties:
        payment_processor_token:
          type: string
          description: Payment Processor Token to process the Revenue Recovery Payment
        connector_customer_id:
          type: string
          description: Billing Connector's Customer Id
    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
    Connector:
      type: string
      enum:
        - absa_sanlam
        - authipay
        - adyenplatform
        - stripe_billing_test
        - phonypay
        - fauxpay
        - pretendpay
        - stripe_test
        - adyen_test
        - checkout_test
        - paypal_test
        - aci
        - adyen
        - affirm
        - airwallex
        - amazonpay
        - archipel
        - authorizedotnet
        - bambora
        - bamboraapac
        - bankofamerica
        - barclaycard
        - billwerk
        - bitpay
        - bluesnap
        - blackhawknetwork
        - calida
        - boku
        - braintree
        - breadpay
        - cardinal
        - cashtocode
        - celero
        - chargebee
        - checkbook
        - checkout
        - coinbase
        - coingate
        - custombilling
        - cryptopay
        - ctp_mastercard
        - ctp_visa
        - cybersource
        - cybersourcedecisionmanager
        - datatrans
        - deutschebank
        - digitalvirgo
        - dlocal
        - dwolla
        - ebanx
        - envoy
        - elavon
        - facilitapay
        - finix
        - fiserv
        - fiservemea
        - fiservcommercehub
        - fiuu
        - flexiti
        - forte
        - getnet
        - gigadat
        - globalpay
        - globepay
        - gocardless
        - gpayments
        - hipay
        - helcim
        - hyperpg
        - hyperswitch_vault
        - interpayments
        - inespay
        - iatapay
        - imerchantsolutions
        - itaubank
        - jpmorgan
        - juspaythreedsserver
        - klarna
        - loonio
        - mifinity
        - mollie
        - moneris
        - multisafepay
        - netcetera
        - nexinets
        - nexixpay
        - nmi
        - nomupay
        - noon
        - nordea
        - novalnet
        - nuvei
        - opennode
        - paybox
        - payload
        - payme
        - payone
        - paypal
        - paysafe
        - paystack
        - paytm
        - payconex
        - payu
        - peachpayments
        - payjustnow
        - payjustnowinstore
        - phonepe
        - placetopay
        - powertranz
        - prophetpay
        - rapyd
        - razorpay
        - recurly
        - redsys
        - revolv3
        - santander
        - shift4
        - silverflow
        - square
        - stax
        - stripe
        - stripebilling
        - taxjar
        - threedsecureio
        - tesouro
        - tokenex
        - tokenio
        - trustly
        - truelayer
        - trustpay
        - trustpayments
        - tsys
        - vgs
        - volt
        - wellsfargo
        - wise
        - worldline
        - worldpay
        - worldpayvantiv
        - worldpayxml
        - worldpaymodular
        - signifyd
        - plaid
        - riskified
        - xendit
        - zen
        - zift
        - zsl
    BillingConnectorPaymentMethodDetails:
      oneOf:
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - card
            value:
              $ref: '#/components/schemas/BillingConnectorAdditionalCardInfo'
      discriminator:
        propertyName: type
    ImmediateExpirationTime:
      type: object
      required:
        - time
      properties:
        time:
          type: integer
          format: int32
          description: Expiration time in seconds
          minimum: 0
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
    ScheduledExpirationTime:
      type: object
      required:
        - date
      properties:
        date:
          type: string
          description: 'Expiration time in terms of date, format: YYYY-MM-DD'
          example: '2026-07-08'
        validity_after_expiration:
          type: integer
          format: int32
          description: Days after expiration date for which the QR code remains valid
          example: 10
          nullable: true
          minimum: 0
        pix_key:
          allOf:
            - $ref: '#/components/schemas/PixKey'
          nullable: true
    BoletoDocumentKind:
      type: string
      enum:
        - commercial_invoice
        - service_invoice
        - promissory_note
        - rural_promissory_note
        - receipt
        - insurance_policy
        - credit_card_invoice
        - proposal
        - deposit_or_funding
        - cheque
        - direct_promissory_note
        - other
    BoletoPaymentType:
      type: string
      enum:
        - fixed_amount
        - flexible_amount
        - installment
    PixKey:
      oneOf:
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - cpf
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - cnpj
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - email
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - phone
            value:
              type: string
        - type: object
          required:
            - type
            - value
          properties:
            type:
              type: string
              enum:
                - evp_token
            value:
              type: string
      discriminator:
        propertyName: type
    SantanderPaymentDiscountRules:
      type: object
      description: >-
        Defines the type of discount applied to a payment, such as whether it's
        a fixed date discount, a daily calendar discount, or a daily business
        discount.
      required:
        - tiers
      properties:
        discount_type:
          allOf:
            - $ref: '#/components/schemas/DiscountType'
          nullable: true
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/DiscountTier'
          description: A generic vector of discount tiers
    PenaltyRules:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        fixed_penalty:
          allOf:
            - $ref: '#/components/schemas/PenaltyDetail'
          nullable: true
        interest:
          allOf:
            - $ref: '#/components/schemas/InterestDetail'
          nullable: true
    CollectionActions:
      type: object
      description: >-
        Represents the legal or administrative actions that may be taken for
        non-payment, such as protest rules and automatic write-off timelines.
      properties:
        legal_protest:
          allOf:
            - $ref: '#/components/schemas/ProtestRules'
          nullable: true
        auto_write_off_days:
          type: integer
          format: int32
          description: Days after which the bill is automatically cancelled/written off
          example: 60
          nullable: true
          minimum: 0
    BoletoPaymentTypeConstraints:
      oneOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - fixed_amount
        - type: object
          required:
            - type
            - details
          properties:
            type:
              type: string
              enum:
                - flexible_amount
            details:
              $ref: '#/components/schemas/FlexibleAmountDetails'
        - type: object
          required:
            - type
            - details
          properties:
            type:
              type: string
              enum:
                - installment
            details:
              $ref: '#/components/schemas/InstallmentDetails'
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      discriminator:
        propertyName: type
    BeneficiaryDetails:
      type: object
      description: Represents the end-recipient of a payout or fund transfer.
      properties:
        name:
          type: string
          description: The full legal name of the individual or entity receiving the funds.
          example: João da Silva
          nullable: true
        document_number:
          type: string
          description: >-
            The customer's unique identification number (e.g., Tax ID, SSN,
            Passport Number).

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

            Length of the document number depends upon the document_type.

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

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

            Maps to ajuste_dia_util in Santander API. Defaults to true if not
            provided.
          example: true
          nullable: true
    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
    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
    RecurringPaymentIntervalUnit:
      type: string
      enum:
        - year
        - month
        - day
        - hour
        - minute
    BillingConnectorAdditionalCardInfo:
      type: object
      required:
        - card_network
      properties:
        card_network:
          $ref: '#/components/schemas/CardNetwork'
        card_issuer:
          type: string
          description: Card Issuer
          example: JP MORGAN CHASE
          nullable: true
    DiscountType:
      type: string
      description: >-
        Defines the type of discount applied to a payment, such as whether it's
        a fixed date discount, a daily calendar discount, or a daily business
        discount.
      enum:
        - standard
        - fixed_date
        - daily_calendar
        - daily_business
    DiscountTier:
      type: object
      properties:
        amount:
          type: string
          description: The discount value (e.g., "5.50").
          example: '5.50'
          nullable: true
        end_date:
          type: string
          description: The ISO-8601 date until which this discount is valid
          example: '2027-12-31'
          nullable: true
    PenaltyDetail:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        value:
          type: string
          description: The numeric value (as a string to preserve decimal precision)
          example: '2.00'
          nullable: true
        grace_period_days:
          type: integer
          format: int32
          description: 'Grace period: Days after due date before this applies'
          example: 1
          nullable: true
          minimum: 0
    InterestDetail:
      type: object
      description: >-
        Represents the rules for applying discounts to a payment, such as a
        percentage discount or a fixed amount discount, along with any
        applicable grace periods.
      properties:
        interest_percentage:
          type: string
          description: 'Percentage of Juros (Interest). Pattern: ^[0-9]{1,3}\.[0-9]{2}$'
          example: '5.00'
          nullable: true
        iof_percentage:
          type: string
          description: |-
            Percentage of IOF (Financial Operations Tax). Pattern: \d{3}$\.\d{5}
            Only provided if the agreement is "Cobra IOF na Barra ou Cadastro"
          example: '32.45325'
          nullable: true
    ProtestRules:
      type: object
      required:
        - protest_type
        - days_after_due_date
      properties:
        protest_type:
          $ref: '#/components/schemas/ProtestType'
        days_after_due_date:
          type: integer
          format: int32
          description: Number of days after the due date to initiate the protest
          example: 30
          minimum: 0
    FlexibleAmountDetails:
      type: object
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      properties:
        min_value:
          type: string
          description: Minimum value allowed (e.g., "10.00")
          example: '38.02'
          nullable: true
        max_value:
          type: string
          description: Maximum value allowed (e.g., "5000.00")
          example: '38.02'
          nullable: true
        value_type:
          allOf:
            - $ref: '#/components/schemas/CalculationType'
          nullable: true
    InstallmentDetails:
      type: object
      description: >-
        Represents the rules for legal protest (official debt registration) for
        non-payment, including the type of protest and the number of days after
        which the protest is initiated.
      properties:
        max_partial_payments:
          type: integer
          format: int32
          description: Maximum number of partial payments allowed (Up to 99 for Santander).
          example: 99
          nullable: true
          minimum: 0
        value_type:
          allOf:
            - $ref: '#/components/schemas/CalculationType'
          nullable: true
    DocumentKind:
      type: string
      description: Represents the type of identification document used for validation.
      enum:
        - cpf
        - cnpj
        - psn
        - other
    SantanderMandateDetails:
      type: object
      properties:
        fixed_recurring_amount:
          type: integer
          format: int64
          description: >-
            Fixed amount for each recurring charge in minor units (e.g., cents).
            If not provided, the mandate will allow variable amounts.
          example: 6540
          nullable: true
          minimum: 0
        min_recurring_amount:
          type: integer
          format: int64
          description: >-
            Minimum amount for each recurring charge in minor units (e.g.,
            cents). If not provided, there will be no minimum limit on the
            amount.
          example: 6540
          nullable: true
          minimum: 0
        start_date:
          type: string
          description: >-
            Start date for the recurring charges. Format: YYYY-MM-DD. If not
            provided, the mandate will be valid immediately.
          example: '2026-12-31'
          nullable: true
        end_date:
          type: string
          description: >-
            End date for the recurring charges. Format: YYYY-MM-DD. If not
            provided, the mandate will be valid indefinitely.
          example: '2026-12-31'
          nullable: true
        periodicity:
          allOf:
            - $ref: '#/components/schemas/SantanderMandatePeriodicity'
          nullable: true
    SantanderPixAutomaticoReceiverDetails:
      type: object
      description: >-
        Represents the receiver details for Santander Pix Automatico recurring
        charges
      properties:
        branch_code:
          type: string
          description: Branch code (agencia) of the receiver's bank account
          example: '0001'
          nullable: true
        account_number:
          type: string
          description: Account number (conta) of the receiver
          example: '130333323'
          nullable: true
        account_type:
          allOf:
            - $ref: '#/components/schemas/AccountType'
          nullable: true
    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'
    PaymentProcessingDetails:
      type: object
      required:
        - payment_processing_certificate
        - payment_processing_certificate_key
      properties:
        payment_processing_certificate:
          type: string
        payment_processing_certificate_key:
          type: string
    CardNetwork:
      type: string
      description: Indicates the card network.
      enum:
        - Visa
        - Mastercard
        - AmericanExpress
        - JCB
        - DinersClub
        - Discover
        - CartesBancaires
        - UnionPay
        - Interac
        - RuPay
        - Maestro
        - Star
        - Pulse
        - Accel
        - Nyce
    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'
    SdkDisplayMode:
      type: string
      description: Display mode options for controlling how messages are shown.
      enum:
        - default_sdk_message
        - custom_message
        - hidden
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Format: `api-key=<api_key>`


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

````