# ConvertPlus renewal flow

## Overview

Enable your customers to order on-demand renewals for their subscriptions using custom **Buy-Links** on ConvertPlus ordering flow.

{% hint style="info" icon="lightbulb" %}

#### Recommended resources

ConvertPlus is a full-stack solution that enables you to increase conversion rates with faster loading time and optimized flows. Download this solution brief to learn more!

<a href="https://www.2checkout.com/lp/2checkout_convertplus_cart.html" class="button primary" data-icon="book-open-lines">Learn more</a>
{% endhint %}

## Availability

ConvertPlus renewal flow is available only to 2Checkout merchants that have activated ConvertPlus in their accounts. Contact [2Checkout](https://secure.avangate.com/cpanel/contact.php) for activation.

## Requirements

Custom on-demand renewals buy links can be generated manually, and they work for active and past-due subscriptions (excluding trials and non-recurring/lifetime subscriptions). They can also be set from the Subscription page in Control Panel (*Orders and customers* > *Subscriptions* > *Edit subscription details* > *Renew subscription*).

Subscriptions can be renewed automatically ahead of their expiry deadline with 90 to 3000 days. The default platform renewal option is 370 days. Contact [2Checkout](https://secure.avangate.com/cpanel/contact.php) directly if you wish to customize this limitation.

## Scenarios covered

* Renew **Subscription A** belonging to **Product A** (source product) keeping it under **Product A** (target product).
* Renew **Subscription A** belonging to **Product A** (source product) and moving/upgrading the customer to **Product B** (target product).

## Workflow

Use this feature to enable your customers to renew their active and past-due subscriptions on demand, bypassing the upcoming renewal operation scheduled in the 2Checkout system.

Custom on-demand subscription renewals are performed:

1. From the moment when the items were scheduled to renew/expire. For example, let's assume that **Subscription A** (a monthly subscription), scheduled to expire June 30th, 2019, is renewed through the use of an on-demand link with a period of 10 days on June 22nd. **Subscription A's** lifetime will be prolonged with 10 days starting with June 30th, and the renewal/expiry deadline moved to July 10th. Moving forward, **Subscription A** will be renewed a month after the July 10threnewal, per its monthly renewal cycle.
2. By overriding the subscription billing cycle settings. However, following the custom on-demand renewal, the subscription will be governed by the renewal settings and pricing configuration of the product it's associated with.

## Create a custom renewal link

Use the following parameters to generate ConvertPlus renewal links.

<table><thead><tr><th width="130">Parameter</th><th width="154">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>merchant</code></td><td>Required</td><td>Your merchant identification code. The merchant code is available in Settings → Edit system settings, under the <strong>System settings</strong> tab.</td></tr><tr><td><code>subscription</code></td><td>Required</td><td>Unique system-generated identifier of your subscriptions. The subscription reference is available on Orders and customers → Subscriptions → Edit subscription details.</td></tr><tr><td><code>prod</code></td><td>Optional</td><td><p>Identifier of the product used in the renewal process. The product code is available on Setup → Products → Column code in the product listing.<br>By default, the renewal process uses the product from the original order. Use a different product code to renew a subscription to a different target product.</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>When included in renewal links, this parameter needs to be <a href="/pages/b67ce4637670029d1cbe97a61caeec07bfd207f7">signed</a> as well.</p></div></td></tr><tr><td><code>qty</code></td><td>Optional</td><td>The number of units (quantity) for the renewed product.</td></tr><tr><td><code>opt</code></td><td>Optional</td><td><p>Control the pricing option used in the renewal process.</p><ul><li><p>1 product with 1 price option with 1 value (includes scale option type)</p><ul><li>prod=code1&#x26;opt=gr1:val1</li></ul></li><li><p>1 product with 1 price option with multiple values</p><ul><li>prod=code1&#x26;opt=gr1:val1;val2</li></ul></li></ul></td></tr><tr><td><code>language</code></td><td>Optional</td><td>Control the language used in the renewal process. Available values for language codes are displayed in <a href="/spaces/CbqTuG2SOk3yrkX5eirC/pages/ff5533634451b368de09054d417a00499c544c47">this</a> article.</td></tr><tr><td><code>recurrence</code></td><td>Optional</td><td>The interval of time that will be added to the subscription lifetime starting with the current renewal/expiry deadline. For example 10:day</td></tr></tbody></table>

## Examples

#### Renew the subscription with the same product and a specific pricing option

For this example, let's assume that we need a custom on-demand renewal link for **Subscription A** (monthly subscription expiring on June 30th, 2019 with the reference **9E0BAD7B5C**) associated with **Product A** with the **code product\_a**.

Use the following parameters to generate the renewal link:

* **merchant=2COTEST**
* **subscription=9E0BAD7B5C**
* **prod=product\_a**
* **opt=group\_name:option\_value**

The resulting renewal link is:

```
https://secure.2checkout.com/checkout/renew/?merchant=2COTEST&subscription=9E0BAD7B5C&prod=product_a&opt=group_name:option_value
```

#### Renew a subscription with a different product

For this example, let's assume that we need a custom on-demand renewal link for **Subscription A** (monthly subscription expiring on June 30th, 2019 with the reference **9E0BAD7B5C**) associated with **Product A** with the **code product\_a**. In the renewal process, the customer will also be upgraded from **Product A** to **Product B** ( **code product\_b**).

Use the following parameters to generate the renewal link:

* **merchant=2COTEST**
* **subscription=9E0BAD7B5C**
* **prod=product\_b**

The resulting renewal link is:

```
https://secure.2checkout.com/checkout/renew/?merchant=2COTEST&subscription=9E0BAD7B5C&prod=product_b
```

## Domain use

* **secure.2checkout.com** domain - If your account is using the 2Checkout's **secure.2checkout.com** domain, then this is what you need to include in your custom on-demand renewal links served to your customers, namely [**https://secure.2checkout.com/renewal/**](https://secure.avangate.com/renewal/)**?**.
* Custom domains such as **store.YourDomain.com -** If your account is using a custom domain such as **store.YourDomain.com**, then this is what you need to include in your custom on-demand renewal links served to your customers, namely [**https://store.YourDomain.com**](https://store.yourdomain.com/) **/renewal/?**

## Control the ordering experience

You can control some aspects of the ordering experience for customers using early renewal links by appending the following parameters to the buy link created.

<table><thead><tr><th width="140.99993896484375">Parameter</th><th width="171">Required / Optional</th><th>Description</th></tr></thead><tbody><tr><td><code>order-ext-ref</code></td><td>Optional</td><td>Use this parameter to set an external reference to the order.</td></tr><tr><td><code>src</code></td><td>Optional</td><td><p>Control the order source identifier.</p><p>You can track the source page by entering the following parameters: </p><p>src=prodpage for the product page or src=dldpage for the link on the download page <br><br>(dldpage and prodpage are example strings only, you can use any combination).</p></td></tr><tr><td><code>coupon</code></td><td>Optional</td><td>Promotion coupon code discounting the price of a product added to checkout. You can send multiple values separated by a semicolon when standalone coupons discount different products added to checkout. <br><br><em>For example [...]&#x26;coupon=voucher1;voucher2[...]</em></td></tr><tr><td><code>style</code></td><td>Optional</td><td><p>Control the cart template used during the renewal process.</p><p>Each template defined in the <a href="https://secure.avangate.com/cpanel/design.php">Interface</a><a href="https://secure.avangate.com/cpanel/design.php"> Templates area</a> of the Control Panel has a unique identifier associated which is visible in the browser address bar when previewing the shopping cart.</p></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/shopping-carts/convertplus/convertplus-renewal-flow.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.
