---
title: "Subscription - Update"
method: PUT
path: "/subscriptions/{subscription_id}/update"
tags: ["Subscriptions"]
---

# Subscription - Update

`PUT /subscriptions/{subscription_id}/update`

Updates an existing subscription.

## Path parameters

- `subscription_id` string, required

## Headers

- `X-Profile-Id` string, required

## Request body

- UpdateSubscriptionRequest
  - `plan_id` string, required — Identifier for the associated plan_id.
  - `item_price_id` string, required — Identifier for the associated item_price_id for the subscription.

## Response `200`

Subscription updated successfully

- SubscriptionResponse — Response payload returned after successfully creating a subscription. Includes details such as subscription ID, status, plan, merchant, and customer info.
  - `id` string, required — A type for subscription_id that can be used for subscription ids
  - `merchant_reference_id` string, nullable — Merchant specific Unique identifier.
  - `status` 'active' | 'created' | 'in_active' | 'pending' | 'trial' | 'paused' | 'unpaid' | 'onetime' | 'cancelled' | 'failed', required — Possible states of a subscription lifecycle. - `Created`: Subscription was created but not yet activated. - `Active`: Subscription is currently active. - `InActive`: Subscription is inactive. - `Pending`: Subscription is pending activation. - `Trial`: Subscription is in a trial period. - `Paused`: Subscription is paused. - `Unpaid`: Subscription is unpaid. - `Onetime`: Subscription is a one-time payment. - `Cancelled`: Subscription has been cancelled. - `Failed`: Subscription has failed.
  - `plan_id` string, nullable — Identifier for the associated subscription plan.
  - `item_price_id` string, nullable — Identifier for the associated item_price_id for the subscription.
  - `profile_id` string, required — A type for profile_id that can be used for business profile ids
  - `client_secret` string, nullable — This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
  - `merchant_id` string, required — A type for merchant_id that can be used for merchant ids
  - `coupon_code` string, nullable — Optional coupon code applied to this subscription.
  - `customer_id` string, required — A type for customer_id that can be used for customer ids
  - `payment` PaymentResponseData
    - `payment_id` string, required — A type for payment_id that can be used for payment ids
    - `status` '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', required — 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).
    - `amount` integer, required — This Unit struct represents MinorUnit in which core amount works
    - `currency` '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', required — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
    - `profile_id` string — A type for profile_id that can be used for business profile ids
    - `connector` string, nullable
    - `payment_method_id` string, nullable — Identifier for Payment Method
    - `return_url` string, nullable — The url to which user must be redirected to after completion of the purchase
    - `next_action` union
      - object — Contains the url for redirection flow
        - `redirect_to_url` string, required
        - `type` 'redirect_to_url', required
      - object — Informs the next steps for bank transfer and also contains the charges details (ex: amount received, amount charged etc)
        - `bank_transfer_steps_and_charges_details` union, required
          - object
            - `doku_bank_transfer_instructions` DokuBankTransferInstructions, required
              - …
            - `receiver` ReceiverDetails
              - …
          - object
            - `ach_credit_transfer` AchTransfer, required
              - …
            - `receiver` ReceiverDetails
              - …
          - object
            - `sepa_bank_instructions` SepaBankTransferInstructions, required
              - …
            - `receiver` ReceiverDetails
              - …
          - object
            - `bacs_bank_instructions` BacsBankTransferInstructions, required
              - …
            - `receiver` ReceiverDetails
              - …
          - object
            - `multibanco` MultibancoTransferInstructions, required
              - …
            - `receiver` ReceiverDetails
              - …
        - `type` 'display_bank_transfer_information', required
      - object — Contains third party sdk session token response
        - `session_token` union
          - object
            - `delayed_session_token` boolean, required — Identifier for the delayed session response
            - `connector` string, required — The name of the connector
            - `sdk_next_action` SdkNextAction, required
              - …
            - `wallet_name` 'google_pay', required
          - object
            - `merchant_info` GpayMerchantInfo, required
              - …
            - `shipping_address_required` boolean, required — Is shipping address required
            - `email_required` boolean, required — Is email required
            - `shipping_address_parameters` GpayShippingAddressParameters, required
              - …
            - `allowed_payment_methods` GpayAllowedPaymentMethods[], required — List of the allowed payment methods
              - …
            - `transaction_info` GpayTransactionInfo, required
              - …
            - `delayed_session_token` boolean, required — Identifier for the delayed session response
            - `connector` string, required — The name of the connector
            - `sdk_next_action` SdkNextAction, required
              - …
            - `secrets` SecretInfoToInitiateSdk
              - …
            - `wallet_name` 'google_pay', required
          - object
            - `version` string, required — Samsung Pay API version
            - `service_id` string, required — Samsung Pay service ID to which session call needs to be made
            - `order_number` string, required — Order number of the transaction
            - `merchant` SamsungPayMerchantPaymentInformation, required
              - …
            - `amount` SamsungPayAmountDetails, required
              - …
            - `protocol` 'PROTOCOL3DS', required
            - `allowed_brands` string[], required — List of supported card brands
            - `billing_address_required` boolean, required — Is billing address required to be collected from wallet
            - `shipping_address_required` boolean, required — Is shipping address required to be collected from wallet
            - `wallet_name` 'samsung_pay', required
          - object
            - `session_token` string, required — The session token for Klarna
            - `session_id` string, required — The identifier for the session
            - `wallet_name` 'klarna', required
          - object
            - `connector` string, required — Name of the connector
            - `session_token` string, required — The session token for PayPal
            - `sdk_next_action` SdkNextAction, required
              - …
            - `client_token` string, nullable — Authorization token used by client to initiate sdk
            - `transaction_info` PaypalTransactionInfo
              - …
            - `data_user_id_token` string, nullable — User token required for returning customer flow, used by client to initiate sdk
            - `currency` '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' — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
            - `intent` 'capture' | 'authorize'
            - `wallet_name` 'paypal', required
          - object
            - `session_token_data` union
              - …
            - `payment_request_data` ApplePayPaymentRequest
              - …
            - `connector` string, required — The session token is w.r.t this connector
            - `delayed_session_token` boolean, required — Identifier for the delayed session response
            - `sdk_next_action` SdkNextAction, required
              - …
            - `connector_reference_id` string, nullable — The connector transaction id
            - `connector_sdk_public_key` string, nullable — The public key id is to invoke third party sdk
            - `connector_merchant_id` string, nullable — The connector merchant id
            - `wallet_name` 'apple_pay', required
          - object
            - `open_banking_session_token` string, required — The session token for OpenBanking Connectors
            - `wallet_name` 'open_banking', required
          - object
            - `client_id` string, required — Paze Client ID
            - `client_name` string, required — Client Name to be displayed on the Paze screen
            - `client_profile_id` string, required — Paze Client Profile ID
            - `transaction_currency_code` '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', required — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
            - `transaction_amount` string, required — The transaction amount
            - `email_address` string, nullable — Email Address
            - `wallet_name` 'paze', required
          - object
            - `dpa_id` string, required
            - `dpa_name` string, required
            - `locale` string, required
            - `card_brands` CardNetwork[], required
            - `acquirer_bin` string, required
            - `acquirer_merchant_id` string, required
            - `merchant_category_code` string, nullable
            - `merchant_country_code` string, required
            - `transaction_amount` string, required
            - `transaction_currency_code` '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', required — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
            - `phone_number` string, nullable
            - `email` string, nullable
            - `phone_country_code` string, nullable
            - `provider` 'visa' | 'mastercard'
            - `dpa_client_id` string, nullable
            - `wallet_name` 'click_to_pay', required
          - object
            - `merchant_id` string, required — Amazon Pay merchant account identifier
            - `ledger_currency` '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', required — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
            - `store_id` string, required — Amazon Pay store ID
            - `payment_intent` 'Confirm' | 'Authorize' | 'AuthorizeWithCapture', required
            - `total_shipping_amount` string, required — The total shipping costs
            - `total_tax_amount` string, required — The total tax amount for the order
            - `total_base_amount` string, required — The total amount for items in the cart
            - `delivery_options` AmazonPayDeliveryOptions[], required — The delivery options available for the provided address
              - …
            - `wallet_name` 'amazon_pay', required
          - object
            - `wallet_name` 'no_session_token_received', required
        - `type` 'third_party_sdk_session_token', required
      - object — Contains url for Qr code image, this qr code has to be shown in sdk
        - `image_data_url` string, required — Hyperswitch generated image data source url
        - `display_to_timestamp` integer, nullable
        - `qr_code_url` string, required — The url for Qr code given by the connector
        - `display_text` string, nullable
        - `border_color` string, nullable
        - `raw_qr_data` string, nullable — The raw QR code data (EMV copy and paste) used for Brazilian payment methods like Pix
        - `type` 'qr_code_information', required
      - object — Contains url to fetch Qr code data
        - `qr_code_fetch_url` string, required
        - `type` 'fetch_qr_code_information', required
      - object
        - `sdk_uri` string, required
        - `display_from_timestamp` integer, required
        - `display_to_timestamp` integer, nullable
        - `poll_config` PollConfig
          - `delay_in_secs` integer, required — Interval of the poll
          - `frequency` integer, required — Frequency of the poll
        - `type` 'invoke_upi_intent_sdk', required
      - object
        - `qr_code_url` string, required
        - `display_from_timestamp` integer, required
        - `display_to_timestamp` integer, nullable
        - `poll_config` PollConfig
          - `delay_in_secs` integer, required — Interval of the poll
          - `frequency` integer, required — Frequency of the poll
        - `type` 'invoke_upi_qr_flow', required
      - object — Contains the download url and the reference number for transaction
        - `voucher_details` string, required
        - `type` 'display_voucher_information', required
      - object — Contains duration for displaying a wait screen, wait screen with timer is displayed by sdk
        - `display_from_timestamp` integer, required
        - `display_to_timestamp` integer, nullable
        - `poll_config` PollConfig
          - `delay_in_secs` integer, required — Interval of the poll
          - `frequency` integer, required — Frequency of the poll
        - `type` 'wait_screen_information', required
      - object — Contains the information regarding three_ds_method_data submission, three_ds authentication, and authorization flows
        - `three_ds_data` ThreeDsData, required
          - `three_ds_authentication_url` string, required — ThreeDS authentication url - to initiate authentication
          - `three_ds_authorize_url` string, required — ThreeDS authorize url - to complete the payment authorization after authentication
          - `three_ds_method_details` ThreeDsMethodData, required
            - `three_ds_method_data_submission` boolean, required — Whether ThreeDS method data submission is required
            - `three_ds_method_data` string, nullable — ThreeDS method data
            - `three_ds_method_url` string, nullable — ThreeDS method url
            - `three_ds_method_key` 'threeDSMethodData' | 'JWT'
            - `consume_post_message_for_three_ds_method_completion` boolean, required — Indicates whether to wait for Post message after 3DS method data submission
          - `poll_config` PollConfigResponse, required
            - `poll_id` string, required — Poll Id
            - `delay_in_secs` integer, required — Interval of the poll
            - `frequency` integer, required — Frequency of the poll
          - `message_version` string, nullable — Message Version
          - `directory_server_id` string, nullable — Directory Server ID
          - `card_network` 'Visa' | 'Mastercard' | 'AmericanExpress' | 'JCB' | 'DinersClub' | 'Discover' | 'CartesBancaires' | 'UnionPay' | 'Interac' | 'RuPay' | 'Maestro' | 'Star' | 'Pulse' | 'Accel' | 'Nyce' | 'Prop' | 'PrivateLabel' | 'Dinacard' — Indicates the card network.
          - `three_ds_connector` string, nullable — Preferred 3ds Connector
        - `type` 'three_ds_invoke', required
      - object
        - `next_action_data` SdkNextActionData, required
          - `next_action` union, required
            - 'post_session_tokens' — The next action call is Post Session Tokens
            - 'confirm' — The next action call is confirm
            - 'sync' — The next action call is sync
            - 'complete_authorize' — The next action call is Complete Authorize
            - 'await_merchant_callback' — The next action is to await for a merchant callback
            - object
              - …
            - 'eligibility_check' — The next action is to perform eligibility check
          - `order_id` string, nullable
        - `type` 'invoke_sdk_client', required
      - object — Contains consent to collect otp for mobile payment
        - `consent_data_required` 'consent_required' | 'consent_not_required' | 'consent_optional', required
        - `type` 'collect_otp', required
      - object — Contains data required to invoke hidden iframe
        - `iframe_data` IframeData, required
          - `three_ds_method_url` string, required — ThreeDS method url
          - `three_ds_method_data_submission` boolean, required — Whether ThreeDS method data submission is required
          - `three_ds_method_data` string, nullable — ThreeDS method data
          - `directory_server_id` string, required — ThreeDS Server ID
          - `message_version` string, nullable — ThreeDS Protocol version
          - `method_key` 'threeDSMethodData', required
        - `type` 'invoke_hidden_iframe', required
      - object — The data required to trigger the DDC (Device Data Collection) flow by rendering the provided URL in a hidden iframe.
        - `ddc_data` DDCData, required
          - `iframe_url` string, required
          - `timeout_ms` integer, nullable
        - `type` 'invoke_ddc', required
    - `payment_experience` 'redirect_to_url' | 'invoke_sdk_client' | 'display_qr_code' | 'one_click' | 'link_wallet' | 'invoke_payment_app' | 'display_wait_screen' | 'collect_otp' — To indicate the type of payment experience that the customer would go through
    - `error_code` string, nullable
    - `error_message` string, nullable
    - `payment_method_type` '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' — Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.
    - `client_secret` string, nullable — This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK
    - `billing` Address
      - `address` AddressDetails — Address details
        - `city` string, nullable — The city, district, suburb, town, or village of the address.
        - `country` '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'
        - `line1` string, nullable — The first line of the street address or P.O. Box.
        - `line2` string, nullable — The second line of the street address or P.O. Box (e.g., apartment, suite, unit, or building).
        - `line3` string, nullable — The third line of the street address, if applicable.
        - `zip` string, nullable — The zip/postal code for the address
        - `state` string, nullable — The address state
        - `first_name` string, nullable — The first name for the address
        - `last_name` string, nullable — The last name for the address
        - `origin_zip` string, nullable — The zip/postal code of the origin
      - `phone` PhoneDetails
        - `number` string, nullable — The contact number
        - `country_code` string, nullable — The country code attached to the number
      - `email` string, nullable
    - `shipping` Address
      - `address` AddressDetails — Address details
        - `city` string, nullable — The city, district, suburb, town, or village of the address.
        - `country` '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'
        - `line1` string, nullable — The first line of the street address or P.O. Box.
        - `line2` string, nullable — The second line of the street address or P.O. Box (e.g., apartment, suite, unit, or building).
        - `line3` string, nullable — The third line of the street address, if applicable.
        - `zip` string, nullable — The zip/postal code for the address
        - `state` string, nullable — The address state
        - `first_name` string, nullable — The first name for the address
        - `last_name` string, nullable — The last name for the address
        - `origin_zip` string, nullable — The zip/postal code of the origin
      - `phone` PhoneDetails
        - `number` string, nullable — The contact number
        - `country_code` string, nullable — The country code attached to the number
      - `email` string, nullable
    - `payment_type` 'normal' | 'new_mandate' | 'setup_mandate' | 'recurring_mandate' | 'installment' — The type of the payment that differentiates between normal and various types of mandate payments. Use 'setup_mandate' in case of zero auth flow.
    - `payment_token` string, nullable
  - `invoice` Invoice
    - `id` string, required — A type for invoice_id that can be used for invoice ids
    - `subscription_id` string, required — A type for subscription_id that can be used for subscription ids
    - `merchant_id` string, required — A type for merchant_id that can be used for merchant ids
    - `profile_id` string, required — A type for profile_id that can be used for business profile ids
    - `merchant_connector_id` string, required — A type for merchant_connector_id that can be used for merchant_connector_account ids
    - `payment_intent_id` string — A type for payment_id that can be used for payment ids
    - `payment_method_id` string, nullable — Identifier for Payment Method
    - `customer_id` string, required — A type for customer_id that can be used for customer ids
    - `amount` integer, required — This Unit struct represents MinorUnit in which core amount works
    - `currency` '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', required — The three-letter ISO 4217 currency code (e.g., "USD", "EUR") for the payment amount. This field is mandatory for creating a payment.
    - `status` 'invoice_created' | 'payment_pending' | 'payment_pending_timeout' | 'payment_succeeded' | 'payment_failed' | 'payment_canceled' | 'invoice_paid' | 'manual_review' | 'voided', required
    - `billing_processor_invoice_id` string, nullable — billing processor invoice id

## Other responses

- `400` — Invalid update data
- `404` — Subscription not found

---

[API](https://skmtc.net/hyperswitch/apis/dynamic-routing-openapi-3-0.md) · [All operations](https://skmtc.net/hyperswitch/apis/dynamic-routing-openapi-3-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperswitch/dynamic-routing-openapi-3-0/versions/8fbf69ab2597/schema)
