---
title: "Update Subscription Item"
method: POST
path: "/subscription/updatesubscriptionitem"
tags: ["Subscription API"]
---

# Update Subscription Item

`POST /subscription/updatesubscriptionitem`

Modifies an existing subscription or creates a preview of a modified subscription. You can add a coupon code, adjust the quantity of a subscription item, bill a customer in arrears for usage, replace one product with another product, change the product name, and even change the billing interval of a subscription (by exchanging the product). This endpoint also allows you to update the price of an item.<br /> For XML examples and schemas, see the [Additional Examples - Update Subscription Item](https://dev.cleverbridge.com/page/additional-examples-update-subscription-item).

## Headers

- `Accept` 'application/json' | 'application/xml'
- `Content-Type` 'application/json' | 'application/xml'

## Request body

- CleverbridgeBackEndRestApiSubscriptionClassesUpdateSubscriptionItemRequest
  - `AlignmentSettings` CleverbridgeBackEndRestApiSubscriptionClassesSubscriptionAlignmentSettings — Define the behavior when adding or updating a subscription item. For more information, see [Alignment Settings](https://dev.cleverbridge.com/docs/subscription-api-get-started#alignment-settings).
    - `AlignToCurrentInterval` boolean, required — Set to <code>true</code> if you want the customer to be charged immediately for the updated item (for example, a quantity increase). Otherwise, the customer will be charged at the next renewal.
    - `ExtendInterval` boolean — Set to <code>true</code> if you want to charge a full interval for the updated item (for example, a quantity increase). Otherwise, the customer will be charged a pro-rated amount for the updated item that corresponds to the time between the update and the next renewal. Important: <code>AlignToCurrentInterval</code> must be set to <code>true</code> if <code>ExtendInterval</code> is set to <code>true</code>.
    - `GetCustomerPricePreviewOnly` boolean, required — Set to <code>true</code> if you only want to obtain preview data in the response. You can use this data to display a price preview to a customer or for testing purposes.
  - `CouponCode` string — Coupon code for a promotion. The customer will be given a discount on the next renewal or a future renewal, depending on the configuration of the coupon code.
  - `CustomerPrice` CleverbridgeBackEndRestApiSubscriptionClassesCustomerPrice — Pricing information that the customer receives during the purchase process.
    - `CurrencyId` string — Currency code in capital letters, see [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
    - `IsGross` boolean — Set to <code>true</code> if taxes should be included in the item price. Set to <code>false</code> if taxes should be added on top of the item price. For more information, see [Using the IsGross Subparameter](https://dev.cleverbridge.com/docs/subscription-api-get-started#using-the-isgross-subparameter).
    - `Value` number, double — New price to be paid by the customer.
  - `GenerateMail` boolean — Set to <code>false</code> if you want to suppress the automatically generated email that informs the customer about the subscription update. Important: If set to <code>false</code>, you must send the email yourself. For more information, see [Best Practices: Obtaining Customer Consent](https://docs.cleverbridge.com/public/all/using-the-platform/best-practices-obtain-customer-consent.htm?utm_source=developer-docs&amp;utm_medium=api-reference).
  - `ProductId` integer, required — ID of the new product you want to replace the existing product with.
  - `ProductName` string — New product name to be used in customer communication.
  - `ProductNameEn` string — New English product name. Only used in internal communication and for reporting purposes.
  - `ProductNameExtension` string — New product description. Corresponds to the <b>Additional name information</b> in the Cleverbridge platform.
  - `Quantity` integer, required — Total number of items after the update. If you want to only increase the item quantity, use <code>/subscription/increasesubscriptionitemquantity</code> instead.
  - `RecommendationsetId` integer — ID of the 'recommendation set' to which the product belongs. Corresponds to the <b>Recommendation ID</b> in the Cleverbridge platform. Used for reporting purposes only.
  - `RunningNumber` integer, required — Running number of the item in the subscription.
  - `SubscriptionId` string, required — Unique ID of the subscription, with or without an initial 'S'.
  - `TriggerImmediateRenewal` boolean — Triggers a renewal immediately. As a result, it also extends the next billing cycle by remaining time of current cycle. You should use this with caution because it is not a standard action for subscription upgrades. Renewals are allowed between start of current billing interval and next billing date. For more information, see [Renew a Manual-Renewal Subscription Ahead of Schedule](https://dev.cleverbridge.com/docs/renew-a-manual-renewal-subscription-ahead-of-schedule).
  - `ResetBillingInterval` boolean — Set to <code>true</code> to immediately start the new billing interval. If you use this option, you must also set TriggerImmediateRenewal to <code>true</code>. Can be used when the customer has reached their data limit and you want to offer them to upgrade to a higher-value plan. For more information, see [Combine an Upgrade with an Early Renewal at Full Price](https://dev.cleverbridge.com/docs/combine-an-upgrade-with-an-early-custom-price-renewal-of-a-data-limited-subscription).
  - `UpdateAction` 'Update' | 'Upgrade' | 'Downgrade', required — Type of update. This is used for reporting only. It does not affect the subscription.
  - `ForcePriceRecalculation` boolean — Set to <code>true</code> if you want to update the price of the subscription item based on the current product price. You can use the parameter independent of any other price-relevant updates, such as a quantity or product change. For more information, see [Use Case: Update Existing Subscription with New Product Pricing](https://dev.cleverbridge.com/docs/update-existing-subscription-with-new-product-pricing).

## Response `200`

OK

- CleverbridgeBackEndRestApiSubscriptionClassesUpdateSubscriptionItemResponse
  - `ContinueUrl` string — URL of web page with transaction details or payment instructions.
  - `NextBillingDate` string, date-time — Next billing date and time according to [RFC3339](https://www.rfc-editor.org/info/rfc3339). Specified in UTC.
  - `NextRenewalDate` string, date-time — Next renewal date and time according to [RFC3339](https://www.rfc-editor.org/info/rfc3339). Specified in UTC.
  - `TransactionStatus` string — Status of the renewal transaction. Possible values are <code>Success</code>, <code>Error</code>, <code>Rejected</code>, <code>Pending</code>, <code>Unknown</code>. See [Transaction Status](https://dev.cleverbridge.com/reference/purchase-status#transaction-status) for explanations to those values.
  - `AlignmentCustomerGrossPrice` number, double — Total gross price for alignment interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `AlignmentCustomerNetPrice` number, double — Total net price for alignment interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `AlignmentCustomerVatPrice` number, double — Total VAT amount for alignment interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextBillingCustomerGrossPrice` number, double — Total gross price for next billing interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextBillingCustomerNetPrice` number, double — Total net price next billing interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextBillingCustomerVatPrice` number, double — Total VAT amount for next billing interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextRenewalCustomerGrossPrice` number, double — Total gross price for next subscription interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextRenewalCustomerNetPrice` number, double — Total net price next subscription interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `NextRenewalCustomerVatPrice` number, double — Total VAT amount for next subscription interval. Only for <code>CustomerPricePreview-Mode</code>.
  - `PriceCurrencyId` string — Currency code in capital letters, see [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
  - `ResultMessage` string — Optional result or error message.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/cleverbridge/apis/backend-rest-apis.md) · [All operations](https://skmtc.net/cleverbridge/apis/backend-rest-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cleverbridge/backend-rest-apis/versions/b7007b62f4c0/schema)
