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

# Update Subscription

`PUT /subscriptions/{subscriptionId}`

## Request

- Base URL: `https://api.pax8.com/v1`
- URL: `https://api.pax8.com/v1/subscriptions/{subscriptionId}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://token-manager.pax8.com/oauth/token`

Updates a subscription. Currently NOT supported for subscriptions with a future date. At least one of the following fields are required: Price, BillingTerm, Quantity, StartDate

## Path parameters

- `subscriptionId` string, required

## Request body

- union
  - object
    - `id` string, uuid: The original subscription ID for this lineage. This value is stable for the life of the subscription and is not changed by modifications, so prefer it when storing a reference. It may differ from the `subscriptionId` supplied in a request path when that ID belongs to a later record in the same lineage.
    - `parentSubscriptionId` string, uuid: The original subscription ID of this subscription's parent, for products that use a parent/child structure. Omitted when the subscription has no parent.
    - `currentSubscriptionId` string, uuid: The subscription ID of the record currently active in this lineage — the one with no end date, or whose end date has not yet passed. Because `id` above is always the lineage's *original* subscription ID, use `currentSubscriptionId` to tell at a glance whether the record you looked up is still the one in effect. Equals `id` when the subscription has never been modified.
    - `companyId` string, uuid
    - `productId` string, uuid
    - `vendorSubscriptionId` string: The vendor's unique identifier for this subscription
    - `quantity` number
    - `startDate` string, date-time
    - `endDate` string, date-time
    - `createdDate` string, date-time: The date the *original* subscription in this lineage was created. Because the remaining fields describe the most recent record in the lineage, `createdDate` can be earlier than `startDate` for a subscription that has been modified.
    - `updatedDate` string, date-time
    - `billingStart` string, date
    - `status` 'Active' | 'Cancelled' | 'PendingManual' | 'PendingAutomated' | 'PendingCancel' | 'WaitingForDetails' | 'Trial' | 'Converted' | 'PendingActivation' | 'Activated': Subscription Status : * `Active` - Provisioning request complete * `Cancelled` - Deprovisioning request complete * `PendingManual` - An associated manual provisioning task isn't started/completed * `PendingAutomated` - An associated automated provisioning task isn't started/completed * `PendingCancel` - Deprovisioning request pending * `WaitingForDetails` - Provisioning details are missing * `Trial` - Trial subscriptions offer free or discounted access for a limited time. * `Converted` - Converted from trial * `PendingActivation` - Requires Activation but has not yet been activated * `Activated` - Requires Activation and has been activated Activation is required for a small subset of products. Billing services do not begin for these products until "activation" is complete.
    - `price` number, required: The price for the customer.
    - `currencyCode` string: The currency ISO 4217 code
    - `partnerCost` number: The price for the Partner.
    - `productName` string: The name of the product associated with this subscription
    - `billingTerm` 'Monthly' | 'Annual' | '2-Year' | '3-Year' | 'One-Time' | 'Trial' | 'Activation'
    - `provisioningDetails` ProvisioningDetail[]
      - `label` string: The label to display
      - `key` string: The key
      - `values` string[]: A list of values based on the ```valuetype``` and ```possibleValues```
      - `description` string: Instructions and context to help enter the required provisioning information
      - `valueType` 'Input' | 'Single-Value' | 'Multi-Value': Provisioning Detail Value Type: * `Input` - A value that is supplied by a user * `Single-Value` - A single value that is picked from the `possibleValues` list * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list
      - `possibleValues` string[]: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
    - `commitmentTerm` SubscriptionCommitment
      - `id` string, uuid: Unique identifier for the commitment record
      - `term` string: Duration of the commitment
      - `endDate` string, date-time
    - `usageEligible` boolean: Indicates whether this subscription's product supports usage-based billing
    - `vendorSkuId` string: The vendor's unique identifier for the sku associated with this subscription
  - object
    - `id` string, uuid: The original subscription ID for this lineage. This value is stable for the life of the subscription and is not changed by modifications, so prefer it when storing a reference. It may differ from the `subscriptionId` supplied in a request path when that ID belongs to a later record in the same lineage.
    - `parentSubscriptionId` string, uuid: The original subscription ID of this subscription's parent, for products that use a parent/child structure. Omitted when the subscription has no parent.
    - `currentSubscriptionId` string, uuid: The subscription ID of the record currently active in this lineage — the one with no end date, or whose end date has not yet passed. Because `id` above is always the lineage's *original* subscription ID, use `currentSubscriptionId` to tell at a glance whether the record you looked up is still the one in effect. Equals `id` when the subscription has never been modified.
    - `companyId` string, uuid
    - `productId` string, uuid
    - `vendorSubscriptionId` string: The vendor's unique identifier for this subscription
    - `quantity` number
    - `startDate` string, date-time
    - `endDate` string, date-time
    - `createdDate` string, date-time: The date the *original* subscription in this lineage was created. Because the remaining fields describe the most recent record in the lineage, `createdDate` can be earlier than `startDate` for a subscription that has been modified.
    - `updatedDate` string, date-time
    - `billingStart` string, date
    - `status` 'Active' | 'Cancelled' | 'PendingManual' | 'PendingAutomated' | 'PendingCancel' | 'WaitingForDetails' | 'Trial' | 'Converted' | 'PendingActivation' | 'Activated': Subscription Status : * `Active` - Provisioning request complete * `Cancelled` - Deprovisioning request complete * `PendingManual` - An associated manual provisioning task isn't started/completed * `PendingAutomated` - An associated automated provisioning task isn't started/completed * `PendingCancel` - Deprovisioning request pending * `WaitingForDetails` - Provisioning details are missing * `Trial` - Trial subscriptions offer free or discounted access for a limited time. * `Converted` - Converted from trial * `PendingActivation` - Requires Activation but has not yet been activated * `Activated` - Requires Activation and has been activated Activation is required for a small subset of products. Billing services do not begin for these products until "activation" is complete.
    - `price` number: The price for the customer.
    - `currencyCode` string: The currency ISO 4217 code
    - `partnerCost` number: The price for the Partner.
    - `productName` string: The name of the product associated with this subscription
    - `billingTerm` 'Monthly' | 'Annual' | '2-Year' | '3-Year' | 'One-Time' | 'Trial' | 'Activation', required
    - `provisioningDetails` ProvisioningDetail[]
      - `label` string: The label to display
      - `key` string: The key
      - `values` string[]: A list of values based on the ```valuetype``` and ```possibleValues```
      - `description` string: Instructions and context to help enter the required provisioning information
      - `valueType` 'Input' | 'Single-Value' | 'Multi-Value': Provisioning Detail Value Type: * `Input` - A value that is supplied by a user * `Single-Value` - A single value that is picked from the `possibleValues` list * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list
      - `possibleValues` string[]: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
    - `commitmentTerm` SubscriptionCommitment
      - `id` string, uuid: Unique identifier for the commitment record
      - `term` string: Duration of the commitment
      - `endDate` string, date-time
    - `usageEligible` boolean: Indicates whether this subscription's product supports usage-based billing
    - `vendorSkuId` string: The vendor's unique identifier for the sku associated with this subscription
  - object
    - `id` string, uuid: The original subscription ID for this lineage. This value is stable for the life of the subscription and is not changed by modifications, so prefer it when storing a reference. It may differ from the `subscriptionId` supplied in a request path when that ID belongs to a later record in the same lineage.
    - `parentSubscriptionId` string, uuid: The original subscription ID of this subscription's parent, for products that use a parent/child structure. Omitted when the subscription has no parent.
    - `currentSubscriptionId` string, uuid: The subscription ID of the record currently active in this lineage — the one with no end date, or whose end date has not yet passed. Because `id` above is always the lineage's *original* subscription ID, use `currentSubscriptionId` to tell at a glance whether the record you looked up is still the one in effect. Equals `id` when the subscription has never been modified.
    - `companyId` string, uuid
    - `productId` string, uuid
    - `vendorSubscriptionId` string: The vendor's unique identifier for this subscription
    - `quantity` number, required
    - `startDate` string, date-time
    - `endDate` string, date-time
    - `createdDate` string, date-time: The date the *original* subscription in this lineage was created. Because the remaining fields describe the most recent record in the lineage, `createdDate` can be earlier than `startDate` for a subscription that has been modified.
    - `updatedDate` string, date-time
    - `billingStart` string, date
    - `status` 'Active' | 'Cancelled' | 'PendingManual' | 'PendingAutomated' | 'PendingCancel' | 'WaitingForDetails' | 'Trial' | 'Converted' | 'PendingActivation' | 'Activated': Subscription Status : * `Active` - Provisioning request complete * `Cancelled` - Deprovisioning request complete * `PendingManual` - An associated manual provisioning task isn't started/completed * `PendingAutomated` - An associated automated provisioning task isn't started/completed * `PendingCancel` - Deprovisioning request pending * `WaitingForDetails` - Provisioning details are missing * `Trial` - Trial subscriptions offer free or discounted access for a limited time. * `Converted` - Converted from trial * `PendingActivation` - Requires Activation but has not yet been activated * `Activated` - Requires Activation and has been activated Activation is required for a small subset of products. Billing services do not begin for these products until "activation" is complete.
    - `price` number: The price for the customer.
    - `currencyCode` string: The currency ISO 4217 code
    - `partnerCost` number: The price for the Partner.
    - `productName` string: The name of the product associated with this subscription
    - `billingTerm` 'Monthly' | 'Annual' | '2-Year' | '3-Year' | 'One-Time' | 'Trial' | 'Activation'
    - `provisioningDetails` ProvisioningDetail[]
      - `label` string: The label to display
      - `key` string: The key
      - `values` string[]: A list of values based on the ```valuetype``` and ```possibleValues```
      - `description` string: Instructions and context to help enter the required provisioning information
      - `valueType` 'Input' | 'Single-Value' | 'Multi-Value': Provisioning Detail Value Type: * `Input` - A value that is supplied by a user * `Single-Value` - A single value that is picked from the `possibleValues` list * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list
      - `possibleValues` string[]: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
    - `commitmentTerm` SubscriptionCommitment
      - `id` string, uuid: Unique identifier for the commitment record
      - `term` string: Duration of the commitment
      - `endDate` string, date-time
    - `usageEligible` boolean: Indicates whether this subscription's product supports usage-based billing
    - `vendorSkuId` string: The vendor's unique identifier for the sku associated with this subscription
  - object
    - `id` string, uuid: The original subscription ID for this lineage. This value is stable for the life of the subscription and is not changed by modifications, so prefer it when storing a reference. It may differ from the `subscriptionId` supplied in a request path when that ID belongs to a later record in the same lineage.
    - `parentSubscriptionId` string, uuid: The original subscription ID of this subscription's parent, for products that use a parent/child structure. Omitted when the subscription has no parent.
    - `currentSubscriptionId` string, uuid: The subscription ID of the record currently active in this lineage — the one with no end date, or whose end date has not yet passed. Because `id` above is always the lineage's *original* subscription ID, use `currentSubscriptionId` to tell at a glance whether the record you looked up is still the one in effect. Equals `id` when the subscription has never been modified.
    - `companyId` string, uuid
    - `productId` string, uuid
    - `vendorSubscriptionId` string: The vendor's unique identifier for this subscription
    - `quantity` number
    - `startDate` string, date-time, required
    - `endDate` string, date-time
    - `createdDate` string, date-time: The date the *original* subscription in this lineage was created. Because the remaining fields describe the most recent record in the lineage, `createdDate` can be earlier than `startDate` for a subscription that has been modified.
    - `updatedDate` string, date-time
    - `billingStart` string, date
    - `status` 'Active' | 'Cancelled' | 'PendingManual' | 'PendingAutomated' | 'PendingCancel' | 'WaitingForDetails' | 'Trial' | 'Converted' | 'PendingActivation' | 'Activated': Subscription Status : * `Active` - Provisioning request complete * `Cancelled` - Deprovisioning request complete * `PendingManual` - An associated manual provisioning task isn't started/completed * `PendingAutomated` - An associated automated provisioning task isn't started/completed * `PendingCancel` - Deprovisioning request pending * `WaitingForDetails` - Provisioning details are missing * `Trial` - Trial subscriptions offer free or discounted access for a limited time. * `Converted` - Converted from trial * `PendingActivation` - Requires Activation but has not yet been activated * `Activated` - Requires Activation and has been activated Activation is required for a small subset of products. Billing services do not begin for these products until "activation" is complete.
    - `price` number: The price for the customer.
    - `currencyCode` string: The currency ISO 4217 code
    - `partnerCost` number: The price for the Partner.
    - `productName` string: The name of the product associated with this subscription
    - `billingTerm` 'Monthly' | 'Annual' | '2-Year' | '3-Year' | 'One-Time' | 'Trial' | 'Activation'
    - `provisioningDetails` ProvisioningDetail[]
      - `label` string: The label to display
      - `key` string: The key
      - `values` string[]: A list of values based on the ```valuetype``` and ```possibleValues```
      - `description` string: Instructions and context to help enter the required provisioning information
      - `valueType` 'Input' | 'Single-Value' | 'Multi-Value': Provisioning Detail Value Type: * `Input` - A value that is supplied by a user * `Single-Value` - A single value that is picked from the `possibleValues` list * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list
      - `possibleValues` string[]: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
    - `commitmentTerm` SubscriptionCommitment
      - `id` string, uuid: Unique identifier for the commitment record
      - `term` string: Duration of the commitment
      - `endDate` string, date-time
    - `usageEligible` boolean: Indicates whether this subscription's product supports usage-based billing
    - `vendorSkuId` string: The vendor's unique identifier for the sku associated with this subscription

## Response `200`

Successful operation

- Subscription
  - `id` string, uuid: The original subscription ID for this lineage. This value is stable for the life of the subscription and is not changed by modifications, so prefer it when storing a reference. It may differ from the `subscriptionId` supplied in a request path when that ID belongs to a later record in the same lineage.
  - `parentSubscriptionId` string, uuid: The original subscription ID of this subscription's parent, for products that use a parent/child structure. Omitted when the subscription has no parent.
  - `currentSubscriptionId` string, uuid: The subscription ID of the record currently active in this lineage — the one with no end date, or whose end date has not yet passed. Because `id` above is always the lineage's *original* subscription ID, use `currentSubscriptionId` to tell at a glance whether the record you looked up is still the one in effect. Equals `id` when the subscription has never been modified.
  - `companyId` string, uuid
  - `productId` string, uuid
  - `vendorSubscriptionId` string: The vendor's unique identifier for this subscription
  - `quantity` number
  - `startDate` string, date-time
  - `endDate` string, date-time
  - `createdDate` string, date-time: The date the *original* subscription in this lineage was created. Because the remaining fields describe the most recent record in the lineage, `createdDate` can be earlier than `startDate` for a subscription that has been modified.
  - `updatedDate` string, date-time
  - `billingStart` string, date
  - `status` 'Active' | 'Cancelled' | 'PendingManual' | 'PendingAutomated' | 'PendingCancel' | 'WaitingForDetails' | 'Trial' | 'Converted' | 'PendingActivation' | 'Activated': Subscription Status : * `Active` - Provisioning request complete * `Cancelled` - Deprovisioning request complete * `PendingManual` - An associated manual provisioning task isn't started/completed * `PendingAutomated` - An associated automated provisioning task isn't started/completed * `PendingCancel` - Deprovisioning request pending * `WaitingForDetails` - Provisioning details are missing * `Trial` - Trial subscriptions offer free or discounted access for a limited time. * `Converted` - Converted from trial * `PendingActivation` - Requires Activation but has not yet been activated * `Activated` - Requires Activation and has been activated Activation is required for a small subset of products. Billing services do not begin for these products until "activation" is complete.
  - `price` number: The price for the customer.
  - `currencyCode` string: The currency ISO 4217 code
  - `partnerCost` number: The price for the Partner.
  - `productName` string: The name of the product associated with this subscription
  - `billingTerm` 'Monthly' | 'Annual' | '2-Year' | '3-Year' | 'One-Time' | 'Trial' | 'Activation'
  - `provisioningDetails` ProvisioningDetail[]
    - `label` string: The label to display
    - `key` string: The key
    - `values` string[]: A list of values based on the ```valuetype``` and ```possibleValues```
    - `description` string: Instructions and context to help enter the required provisioning information
    - `valueType` 'Input' | 'Single-Value' | 'Multi-Value': Provisioning Detail Value Type: * `Input` - A value that is supplied by a user * `Single-Value` - A single value that is picked from the `possibleValues` list * `Multi-Value` - One or multiple values that are picked from the `possibleValues` list
    - `possibleValues` string[]: A list of possible values. `possibleValues` will be null when `valueType` is `Input`
  - `commitmentTerm` SubscriptionCommitment
    - `id` string, uuid: Unique identifier for the commitment record
    - `term` string: Duration of the commitment
    - `endDate` string, date-time
  - `usageEligible` boolean: Indicates whether this subscription's product supports usage-based billing
  - `vendorSkuId` string: The vendor's unique identifier for the sku associated with this subscription

## Other responses

- `404`: Subscription not found
- `422`: Invalid Subscription Update

---

[API](https://skmtc.dev/pax8/apis/partner-endpoints.md) - [All operations](https://skmtc.dev/pax8/apis/partner-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/pax8/apis/partner-endpoints/revisions/f90cec5b4720?raw)
