> For the complete documentation index, see [llms.txt](https://docs.navigaglobal.com/naviga-subscribe/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.navigaglobal.com/naviga-subscribe/subscribe-features/new-starts-and-restarts/restarts-matrix.md).

# Restarts (Matrix)

The Restart feature allows an end-user/CSR to restart a stopped subscription that will be processed in the Matrix Circulation system. The restarting can be done through either Self-Service (SubCon Site) or SubCon Admin (One CSR Portal). A stopped subscription can be restarted only if the subscription meets a set of eligibility criteria.

### &#x20;Pre-requisites

To avail of the Restarts feature depicted below, the client should have

* Subscribe 3.17.0 or above
* Matrix 38.00.034.ITSP9 or above

### Eligibility Criteria of a stopped subscription for Restarting <a href="#eligibility-criteria-of-a-stopped-subscription-for-restarting" id="eligibility-criteria-of-a-stopped-subscription-for-restarting"></a>

A stopped subscription (that will be processed in the Matrix circulation system) can be restarted only if the subscription

* is already *Stopped*
* is *stopped within a certain number of days* (the number of days can be configured using the MG2 Control key **Restart.MaxStoppedDays**)
* is *not* a *Trial subscription*
* is *not* a *Complimentary subscription*
* does *not have any Payment events in the last 24 hours*
* does *not have an already pending Restart event (with a DateEffective of today or future)*

{% hint style="info" %}
This information is returned by the *CheckRestartAvailability* endpoint of Subscribe.
{% endhint %}

### From 3.16.3

The Mail Order Telephone Order (MOTO) transaction flow is enabled in both SA and SP which is specific to the Stripe payment vendor. This feature allows users to make payments without 3DS confirmation. Consequently, users can complete payments using both 3D and non-3D Stripe cards without encountering the 3DS pop-up window for authentication. As a result, even cards that typically require 3DS confirmation can now function without it.

### &#x20;Prior 3.17.0

#### Restart Date <a href="#restart-date" id="restart-date"></a>

When an eligible user opts for restarting a stopped subscription, Subscribe MicroAPI defaults the restarting date to the current date in the client’s time zone. However, the restarting happens only after the sync job and the restarting request is processed at the Matrix end.

### From 3.17.0 <a href="#from-3.17.0" id="from-3.17.0"></a>

#### Restart Date <a href="#restart-date.1" id="restart-date.1"></a>

It is possible for a user to opt for a future date for restarting a stopped subscription from 3.17.0. However, the user will not be permitted to select a restart date earlier than the current date in this flow.

When a Matrix user completes the payment for a stopped subscription that is intended to be restarted on a future date, the status of the subscription changes from ‘Stopped’ to ‘Active’ immediately in Subscribe. Even if the subscription status changes to 'Active' immediately, as per the Matrix settings, the subscription will ideally start for the user only on the selected date.

Please note that, even when the user is opting ‘Restart immediately’ option, the restarting will be in effect only after the sync process at Matrix end.

**Note**: MatrixAPI will receive a parameter named RestartDate as part of the "Suborderrestartid" request. This endpoint is called during the processing of the RESTARTSUBSCRIPTION (1149) event when restarting a subscription.

#### Configurable Credit Balance <a href="#configurable-credit-balance" id="configurable-credit-balance"></a>

Starting from version 3.17.0, the Credit balance of a subscription is configurable for both SubCon Site (Self-Service) and SubCon Admin. This is achieved through the introduction of a new MG2 Control API setting key called '**Restart.ApplyCreditBalance**', which has a default value of 0.

When this setting key is turned on (value 1) and the subscription has a credit balance (meaning the user owes money to the publisher), that balance will be displayed in the UI and will be deducted from the total restart subscription amount to be paid. However, if the setting is turned off (key value 0) and the subscription has a credit balance, then the balance will NOT be displayed in the UI, and the restart subscription amount remains the same without any deduction.

On the other hand, if the subscription has a negative balance (meaning the customer owes money to the publisher), the balance amount will always be added to the restart subscription amount irrespective of the value of the setting key. In this case, the total amount (negative balance + restart subscription amount) should be paid in the Restart payment transaction.

\
Restart Workflow in Self-Service and SubCon Admin
-------------------------------------------------

{% tabs %}
{% tab title="Self-Service" %}

### Restart Workflow - Implementation Details <a href="#restart-workflow-implementation-details" id="restart-workflow-implementation-details"></a>

The Restart workflow in SS starts when the end-user clicks on the ‘***Restart***’ hyperlink on the Dashboard page.

{% hint style="info" %}
The visibility of the ‘Restart’ hyperlink is determined solely by the CMS link restrictions.
{% endhint %}

When the user clicks the ‘**Restart**’ hyperlink,

1. Subscribe calls the *CheckRestartAvailability* endpoint. The endpoint verifies whether the subscription is eligible for a restart by checking each of the [eligibility criteria](https://app.gitbook.com/o/-LXJkK7tFJY9DjO_rmf3/s/-MHtWY24ZsNeJjetCpNF/~/changes/1377/subscribe-features/new-starts-and-restarts/restarts-matrix#eligibility-criteria-of-a-stopped-subscription-for-restarting).
2. If the value returned by the endpoint is ‘true’, it means that the subscription is eligible for a restart.
3. If the value returned by the endpoint is ‘false’, it means that one or more eligibility conditions are not met, and the subscription is not eligible for a restart. The user will be displayed an error message stating the reason (ex: “Subscription has been stopped for too long.”) for not opening the restart page. The user will be redirected to the Dashboard page.
4. When the Restart page is loading, the `getOptions` call is made to populate the Rate grid with all available Rate options. Each Rate option includes a ‘Term’ (the validity period for the subscription in weeks, days, or months) and an ‘Amount’ (the rate amount that needs to be paid for the corresponding term length).
5. If the `getOptions` call fails, the end-user will be redirected to the Subscription Panel where the currently existing offers will be displayed.\
   \&#xNAN;*Note*: The `getOptions` call might just fail due to a bad configuration in the Circ system. In some instances, there may be no available rates to be displayed on the page leading to the failure of the `getOptions` call.
6. If the `getOptions` call succeeds, the Rate Grid will be displayed on the Restart page.
7. When the `getOptions` call succeeds, the `getAvailableDates` API is called to fetch the available dates for the restart.

If all the API calls are successful, the Restart page will be completely loaded for the user.

***

### **List of Error messages displayed to the user if the Restart page will not be loaded:**

| Error message                                                                 | Message displayed when/if                                                                                                                                              |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *Subscription is not stopped.*                                                | the sub\_status is not “S” (subscription is not stopped)                                                                                                               |
| *The subscription is trial.*                                                  | the subscription kind is Trial.                                                                                                                                        |
| *The subscription is COMP. Payment is not allowed.*                           | <p>the isComp field of the subscription table is true.<br>(Subscription is complimentary)<br>Note: This is not yet updated to check the subscription kind = ‘comp’</p> |
| *Subscription has been stopped for too long. A new subscription is required.* | the number of days passed after stopping the subscription is greater than the value in **Restart.MaxStoppedDays** MG2 Control App setting                              |
| *The subscriber already made a payment over the last 24 hours.*               | any of these events 'PAYMENTCC', 'PAYMENTACH', 'RESRTPAYMENTACH', 'RESRTPAYMENTCC', 'PAYMENTNEWSTART' have been created for the subscription in the last 24 hours      |
| *The subscription has pending restart transactions*                           | there is a "RESTART" event for the subscription with a DateEffective in the future                                                                                     |

{% hint style="info" %}
**Note**: All of these error messages can be customized in CMS.
{% endhint %}

***

### Restart Workflow - UI

**Step 1**: Click the **Restart** hyperlink on the Dashboard page.

<figure><img src="/files/5ePnhGd5zlSdPRpdMpem" alt=""><figcaption><p><em>Restart</em> hyperlink on the Dashboard page</p></figcaption></figure>

**Step 2**: Select the desired Rate option on the Restart page.

<figure><img src="/files/UJNqxMtKkwNcFLwwgYfZ" alt=""><figcaption><p>Rate Grid </p></figcaption></figure>

**Note**: The credit balance feature is configurable from 3.17.0 with the setting key Restart.ApplyCreditBalance. If a subscription account has a credit balance, it will be displayed in the field **CREDIT,** only if the MG2 control setting Restart.ApplyCreditBalance is turned on with the value '1'. On the other hand, if the account has a Debit balance, irrespective of the value of the setting key, the negative balance will be displayed on the UI and will be added to the restart subscription amount.

**Step 3**: By default, the option ‘RESTART IMMEDIATELY’ is selected. If the restart is immediate, the first AvailableDate returned by the `getAvailableDates` API will be used as the restart date.

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td>If the restarting has to occur at a future date, uncheck the box. </td><td>Click the calendar icon to display all the possible restart dates. Select a desired date.</td><td><p></p><p><img src="/files/WUKcMdUOJQKb8IcZ6q1P" alt="" data-size="original"></p></td></tr></tbody></table>

**Step 4**: Select the payment method **Credit card**. Click the **Next** button. (Refer to the Rate Grid image above).

**Step 5**: On the next page, the Payment Information will be displayed. Enter the credit card details in the following Payment Details section.

<figure><img src="/files/1aqg11TVhjGtvutWxZA8" alt=""><figcaption></figcaption></figure>

**Step 6**: Click the **SAVE** button. A success message will be displayed.

The Restart workflow is completed.
{% endtab %}

{% tab title="SubCon Admin" %}

#### Restart Workflow - Implementation Details <a href="#restart-workflow-implementation-details" id="restart-workflow-implementation-details"></a>

* Restarting a subscription through the One CSR portal is possible only if the ‘**Restart’** button is visible on the Account Information tab of a stopped subscription account. The Restart button will be visible only if the API ***api/CheckRestartAvailability/subscriptionId*** returns true after verifying the [eligibility criteria](https://app.gitbook.com/o/-LXJkK7tFJY9DjO_rmf3/s/-MHtWY24ZsNeJjetCpNF/~/changes/1377/subscribe-features/new-starts-and-restarts/restarts-matrix/~/overview#eligibility-criteria-of-a-stopped-subscription-for-restarting).
* From Subscribe version 3.17.0, new Payments API endpoints are used for the payment transactions while restarting a stopped subscription.
* Clicking on ‘**Restart’** button initiates a series of API calls as listed below:
  * To get the restart offer rates from the Matrix system, Subscribe calls the API `GetBillingInformation/options{SubscriptionId}`, and the Restart offer rate options will be displayed on the Rate grid. Term, Rate, Other costs (if any), Tax, etc. are the details available in the rate grid for each offer.
  * The `api/paymentProvider/getSettings` call gets the details of the Payment provider, in this case, it is Stripe.
  * The `api/GetBillingInformation/{SubscriptionId` call gets the details of the current payment balance and displays the total amount to be paid.
* After selecting the offer rate from the rate grid, selecting a restart date (immediate or a future date), and entering the credit card details, clicking on ‘**Save**’ button initiates a series of calls as stated below:
  * In the API call `api/common/Billing/PaymentSession/StartPaymentSession` Subscription Id, Account number, Subscriber Id, PaymentMethod, etc. are sent to Stripe. This call returns the `paymentIntentId`. `paymentIntentId` refers to the unique identifier assigned to a Payment Intent object. A Payment Intent represents the payment attempt and its current status, including any errors or actions required to complete the payment. This can also be used to track the state of the payment.
  * `api/common/Billing/PaymentSession/EndPaymentSession` - Along with the Subscription Id, Account number, and Subscriber Id, the `paymentIntentId` is also sent to Stripe and as a response, all the authenticated card details of the customer along with the status of the transaction are returned.
  * The API call `api/PaymentMethod` is used to create a payment method that will return the "PaymentMethodId” as a response. This “PaymentMethodId” will be then used in the `api/RestartPayment` call that finally completes the payment transaction.

### &#x20;Restart Workflow - UI

**Step 1**: Select a stopped subscription account from the Subscription search result grid and click **Start call** button. If the selected account has a negative balance, it will be displayed to the user.

<figure><img src="/files/EBSk0gNmACBZiDPzJHZm" alt=""><figcaption><p>Negative balance in the account</p></figcaption></figure>

**Step 2**: Click **OK**. The Account information tab details are available to the user. If the selected account is eligible for a restart, then the Restart button will be visible at the bottom right corner of the Account information tab.

<figure><img src="/files/xGEjtIb8lgVGYllkpX3b" alt=""><figcaption><p>Account information tab with Restart button</p></figcaption></figure>

**Note**: Regardless of whether the account has a negative or positive balance, if the conditions specified in the eligibility criteria for restarting a stopped subscription are not met, the Restart button will not be available for the user to initiate the Restart flow.

**Step 3**: Click the **Restart** button. The user is directed to the **Payment/Billing** tab. The current Payment information is displayed. The current offer rates from Matrix are populated in the Rate grid. Select any offer.

<figure><img src="/files/joB7cLnfHHQ8KBvnu15d" alt=""><figcaption><p>Payment/Billing tab</p></figcaption></figure>

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><p>If the restart has to happen on a future date, uncheck the checkbox. Click the calendar icon and select the date of your choice from the pool of available dates.</p><p><br></p></td><td><p></p><p><img src="/files/KNqP9ggjOEbXiLMhNA8n" alt="" data-size="original"></p></td><td><strong>Note</strong>: By default, ‘<strong>Restart immediately</strong>’ option is selected. </td></tr></tbody></table>

\
If the selected account has a Debit balance (negative), it will be added to the selected restart offer rate. If the account has a credit balance (positive balance), then the publisher owes the user money. Deduction of credit balance from the offer rate is configurable using the MG2 control key Restart.ApplyCreditBalance. If the setting key is configured for the Matrix client, then the positive balance of the user will be deducted from the offer amount.

**Step 4**: Click the **Pay with credit card** button. The credit card fields will be displayed. Fill in the details.

<figure><img src="/files/DiFK62S9yrCKrK2yLExH" alt=""><figcaption><p>Credit card details</p></figcaption></figure>

**Step 5**: Click the **Save** button. The payment with the credit card will be processed by the payment gateway and vendor. If the payment is a success, the final success message will be displayed. The financial transaction will be displayed in the below table as well.

<figure><img src="/files/ybH8gHGTJ4hIK1EUfVPc" alt=""><figcaption><p>Final success message</p></figcaption></figure>
{% endtab %}
{% endtabs %}

\ <br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.navigaglobal.com/naviga-subscribe/subscribe-features/new-starts-and-restarts/restarts-matrix.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
