# Subscription upgrade

The object below is returned directly or within a successful response from the following API requests:

<a href="/pages/b9d25b5f18036a994b01a13272051510a41c0842" class="button primary" data-icon="folder-check">Retrieve options</a>

## Subscription upgrade object

<table><thead><tr><th width="305.7333984375">Parameter</th><th>Type / Description</th></tr></thead><tbody><tr><td><code>ProductInfo</code></td><td><strong>Object</strong><br>Details below.</td></tr><tr><td><code>ProductInfo.ProductId</code></td><td><strong>Int</strong><br>Unique, system-generated product identifier belonging to the upgrade product.</td></tr><tr><td><code>ProductInfo.ProductCode</code></td><td><strong>String</strong><br>Unique product identifier that you control belonging to the upgrade product.</td></tr><tr><td><code>ProductInfo.ProductName</code></td><td><strong>String</strong><br>Product name</td></tr><tr><td><code>ProductInfo.ProductVersion</code></td><td><p><strong>String</strong></p><p>The product version number that you control.</p></td></tr><tr><td><code>ProductInfo.ProductEnabled</code></td><td><p><strong>Boolean</strong><br>Possible values:</p><p><strong>0</strong> – You disabled this product.</p><p><strong>1</strong> – You enabled this product.</p></td></tr><tr><td><code>ProductInfo.ProductType</code></td><td><strong>String</strong><br>REGULAR or BUNDLE</td></tr><tr><td><code>ProductInfo.Currency</code></td><td><strong>String</strong><br>The currency for prices. The currency ISO code used for the payment - ISO 4217.</td></tr><tr><td><code>ProductInfo.DefaultCurrency</code></td><td><strong>String</strong><br>The product's default currency which is set in the Control Panel. The currency ISO code to be used for the payment - ISO 4217.</td></tr><tr><td><code>ProductInfo.Price</code></td><td><strong>Double</strong><br>Product price. Can be null for flat pricing schemes. You need to call <strong>getPrice</strong> with <code>Quantity</code>, <code>Currency</code> and <code>Price Options</code> parameters to get a valid price.</td></tr><tr><td><code>ProductInfo.GiftOption</code></td><td><strong>String</strong><br>True or false depending on whether the product can be gifted or not.</td></tr><tr><td><code>ProductInfo.IdGroup</code></td><td><strong>Int</strong><br>Product Group ID number.</td></tr><tr><td><code>ProductInfo.GroupName</code></td><td><strong>String</strong><br>The name of the Product Group.</td></tr><tr><td><code>ProductInfo.ShortDescription</code></td><td><strong>String</strong><br>The product's short description.</td></tr><tr><td><code>ProductInfo.ProductImage</code></td><td><strong>String</strong><br> URLs to the product images uploaded into the Avangate platform.</td></tr><tr><td><code>ProductInfo.Languages</code></td><td><strong>Array of strings</strong><br>Array of ISO language codes for the product - ISO 639-1.</td></tr><tr><td><code>ProductInfo.PriceIntervals</code></td><td><strong>Array of objects</strong><br>Pricing intervals.</td></tr><tr><td><code>ProductInfo.PriceTypea</code></td><td><strong>String</strong><br>NET or GROSS</td></tr><tr><td><code>ProductInfo.PriceSchema</code></td><td><strong>String</strong><br>FLAT or DYNAMIC</td></tr><tr><td><code>Quantity</code></td><td><strong>Int</strong><br>Number of units available for the upgrade order.</td></tr><tr><td><code>PriceOptions</code></td><td><strong>Array of objects</strong><br>Details below.</td></tr><tr><td><code>PriceOptions.Id</code></td><td><strong>String</strong><br>Pricing options ID.</td></tr><tr><td><code>PriceOptions.Name</code></td><td><strong>String</strong><br>Pricing options group name.</td></tr><tr><td><code>PriceOptions.Description</code></td><td><strong>String</strong><br>The description of the Pricing options group</td></tr><tr><td><code>PriceOptions.Required</code></td><td><strong>Boolean</strong><br><strong>True</strong> or <strong>false</strong> depending on whether you set the Pricing options group as <strong>required</strong> or not.</td></tr><tr><td><code>PriceOptions.Type</code></td><td><p><strong>String</strong></p><p>Pricing options group type:</p><ul><li>COMBO</li><li>CHECKBOX</li><li>RADIO</li><li>INTERVAL</li></ul></td></tr><tr><td><code>PriceOptions.Options</code></td><td><strong>Array of objects</strong><br>Details below.</td></tr><tr><td><code>PriceOptions.Options.Name</code></td><td><strong>String</strong><br>The name of the option inside the Pricing options group</td></tr><tr><td><code>PriceOptions.Options.Value</code></td><td><strong>String</strong><br>The code of the option inside the Pricing options group</td></tr><tr><td><code>PriceOptions.Options.Default</code></td><td><strong>Boolean</strong><br>True or false.</td></tr><tr><td><code>PriceOptions.Options.Description</code></td><td><strong>String</strong><br>The description of the option inside the Pricing options group.</td></tr><tr><td><code>PriceOptions.Options.MinValue</code></td><td><strong>Int</strong><br>Start value of a scale interval.</td></tr><tr><td><code>PriceOptions.Options.MaxValue</code></td><td><strong>Int</strong><br>End value of a scale interval.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.2checkout.com/soap-api-reference/soap-api-6.0/api-responses/subscription-upgrade.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
