# Switch product

By using this method, merchants can <a href="https://docs.solidgate.com/billing/subscriptions/subscriptions-1.0/manage-subscription/switch-subscription-product/" target="_blank">update the product</a> in the active subscription with a new one. After the switch request is made, a callback confirms the update and includes the new subscription product. The updated settings take effect on the next billing date.
<blockquote>
<p>The switch is subject to <a href="https://docs.solidgate.com/billing/subscriptions/subscriptions-1.0/manage-subscription/switch-subscription-product/#product-price" target="_blank">conditions</a> related to currency and location compatibility between the current and new products.</p>
</blockquote>

Endpoint: POST /subscription/switch-subscription-product
Version: 1.0.0
Security: MerchantID

## Header parameters:

  - `merchant` (string, required)

  - `signature` (string, required)

## Request fields (application/json):

  - `subscription_id` (string, required)
    Unique subscription identifier.
    Example: 83b19018-cbc4-45f0-899a-dda84fd2705e

  - `new_product_id` (string, required)
    Unique product identifier to apply to the specified subscription.
    Example: ac43b415-5522-4373-b026-a365462f9657

## Response 200 fields (application/json):

  - `status` (string)
    Product has been switched.
    Example: ok

  - `error` (object)
    Error object.

  - `error.code` (string, required)
    Error code that identifies the validation failure.
This code is returned when the input data does not meet the expected criteria.
    Enum: "2.01"

## Response 400 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code.
    Example: 2.01

  - `error.message` (string, required)
    Error message.
    Example: Validation error

## Response 401 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code indicating the specific authorization failure.
    Example: 1.01

  - `error.message` (string, required)
    Descriptive message providing more details about the authorization failure.
    Example: Authorization failed

## Response 403 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code indicating that access to the service is denied.
    Example: 1.02

  - `error.message` (string, required)
    Message informing that the service is not allowed for the account.
    Example: Access denied

## Response 404 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code.
    Example: 2.01

  - `error.message` (string, required)
    Error message.
    Example: {entityName} not found with id: {entityId}

