Subscriptions
Gain a better understanding of Digital River's subscription service along with how to define a business model and set up free trials
Digital River offers a PSD2 and SCA-compliant subscription management service that automatically schedules and processes recurring payments. The service allows you to offer customers free trials and numerous ways to fund recurring transactions.
On this page, you'll find information on:
How you do subscription acquisitions depends on the checkout solution(s) you've selected. Use the following table to access the appropriate article:
Once you create the acquisition order containing the subscription, you must activate the subscription, fulfill the goods, and manage renewals. For details on how to handle these and other processes, refer to the Managing a subscription page.
Defining a business model
You can share digital products among plans in the subscription service. We recommend not relying on SKUs to model subscription entitlements. We also suggest using different plans for your offerings since you can use them to model cohorts for reporting purposes.
Digital River's subscription service models recurring billing. It's not intended to model subscription access or entitlements. As a result, you cannot call the service to determine a customer's current access level.
Subscription metadata and client data linked to the subscription are useful for modeling details irrelevant to Digital River and within the plan's terms.
Setting up subscription-based products
With Digital River's subscription service, you can either use SKUs or productDetails
to define the basic and compliance data of any digital product you intend to offer on a subscription basis.
For more details, refer to Managing SKUs and Using product details.
Defining plans
Once you've built a product catalog, you should set up plans that define the behavior of your subscriptions.
At a minimum, you should specify a plan's name and terms, designate its contract length and billing frequency, set up renewal reminders, and configure its billing offset days and collection period days.
The following diagram shows how plans define the behavior of subscriptions that belong to them.

Creating and activating plans
When you create a plan using the POST /plans
request, you can set state
to draft
or active
. If you're using Digital River as the system of record before deployment, you may decide creating draft
plans is beneficial. We will generate one for you if you don't specify a unique id
in the create plan request.
curl --location --request POST 'https://api.digitalriver.com/plans' \
...
--data-raw '{
"name": "Example Plan",
"terms": "These are the terms...",
"contractBindingDays": 365,
"interval": "year",
"intervalCount": 1,
"reminderOffsetDays": 30,
"billingOffsetDays": 5,
"collectionPeriodDays":30,
"state": "draft"
}'
A 201 Created
response contains a unique plan identifier. The request also triggers an event with a type
of plan.created
. If the plan's state
is draft
when you're ready to launch, send its identifier as a path parameter in a POST /plans/{planId}
and use the request's body to set state
to active
.
curl --location --request POST 'https://api.digitalriver.com/plans/173577b2-6edc-4f68-9297-7f7bc2ca6e58' \
...
--data-raw '{
"state": "active"
}'
The plan must be active
before you can add subscriptions to it. For details, refer to the Lifecycle of a plan and Subscription lifecycle.
Discontinuing and deactivating plans
When managing plans within the Digital River system, it's important to understand the implications of discontinuing and deactivating them. Discontinuing a plan allows subscription renewals to continue, but you cannot add new ones. In contrast, deactivating a plan terminates all associated active subscriptions on their nextInvoiceDate
. This section will guide you through adjusting a plan's state and highlight the differences between these two actions.
When you want to discontinue or deactivate a plan, specify the desired state
in the payload of a POST /plans/{planId}
request.
curl --location --request POST 'https://api.digitalriver.com/plans/173577b2-6edc-4f68-9297-7f7bc2ca6e58' \
...
--data-raw '{
"state": "discontinued"
}'
If you attempt to create subscriptions that belong to discontinued
or deactivated
plans, an error is thrown during the acquisition checkout.
{
"type": "bad_request",
"errors": [
{
"code": "plan_not_active",
"parameter": "planId",
"message": "Plan 86a05e42-3b94-4ee5-b2a5-267efd8b3704 is not active."
}
]
}
Refer to the Lifecycle of a plan and Subscription lifecycle for details on how discontinuing or deactivating a plan affects its associated subscriptions.
Setting up free trials
You can configure a customer's subscription to include a free trial period. This section provides information on defining trial and paid plans before deployment. How you handle subscription acquisitions that involve free trials depends on the checkout solution(s) you've selected. Use the following table to access the relevant content:
Once you create the acquisition order containing the subscription, you must convert it from trial to paid. For details, refer to Trial subscription management.
Defining trial and paid plans
Before offering free trials, you must configure and deploy plans for your trial subscriptions.
Refer to Defining plans for general information on plans and their relationship to subscriptions.
For each subscription you intend to offer on a trial basis, you should define a trial and paid period plan. The following diagram shows how you might set up two plans that result in a seven-day free trial period followed by a monthly, recurring billing cycle:

Trial period plans
Your trial period plan controls the subscription's behavior during its first billing cycle.
The plan's interval
and intervalCount
determine the trial period's length. If, for example, you want to offer a 31-day free trial period, set interval
to day
and intervalCount
to 31
.
For free trial plans, set billingOffsetDays
to 0
. This configuration results in a subscription whose initial billing cycle has the same nextInvoiceDate
and currentPeriodEndDate
, thereby ensuring that the first payment capture attempt occurs after the trial period ends.
The value you give reminderOffsetDays
determines when the subscription.reminder
event is created. For example, a reminderOffsetDays
of 3
results in creating a subscription.reminder
event three days before the trial period's conclusion.
Use collectionPeriodDays
to define the number of days when Digital River will attempt to capture payment. Once the trial period ends, Digital River will initially attempt to charge the customer's designated payment source. If this proves unsuccessful, our billing optimization service will continue making capture attempts for the number of days you specify.
{
"id": "186cf07e-a1ea-4ec0-9d9a-8aa93b3af43a",
"createdTime": "2022-02-11T14:41:43Z",
"updatedTime": "2022-02-11T14:41:43Z",
"terms": "7-day free trial plan terms",
"contractBindingDays": 7,
"interval": "day",
"intervalCount": 7,
"name": "7-day SaaS free trial",
"billingOptimization": true,
"billingOffsetDays": 0,
"collectionPeriodDays": 4,
"reminderOffsetDays": 3,
"state": "active",
"stateTransitions": {
"activated": "2022-02-11T14:41:43Z"
},
"liveMode": false
}
Paid period plans
You must also define a paid period plan that governs the subscription after its trial conversion. The following plan bills customers monthly, and in every billing cycle, Digital River makes the first payment capture attempt three days before the end period date.
{
"id": "f55d07a2-a78f-406a-b6c6-ad8e1cc1531b",
"createdTime": "2022-02-11T14:42:53Z",
"updatedTime": "2022-02-11T14:42:53Z",
"terms": "The terms of a one-year plan that is billed monthly,"
"contractBindingDays": 365,
"interval": "month",
"intervalCount": 1,
"name": "SaaS monthly billing plan",
"billingOptimization": true,
"billingOffsetDays": 3,
"collectionPeriodDays": 7,
"reminderOffsetDays": 4,
"state": "active,"",
"stateTransitions": {
"activated": "2022-02-11T14:42:53Z"
},
"liveMode": false
}
Supported payment methods with subscriptions
When setting up a payment in acquisitions or modifying a subscription's payment source, customers must select the payment methods they want to use for recurring transactions.
Refer to the Supported payment methods page for a complete list of such payment methods.
In acquisition checkouts, you can combine a reusable primary source with one or more secondary sources. Refer to the Managing sources page for details on combining primary and secondary payment sources.
Next steps
To learn more about how you interact with subscriptions during checkouts, use the following table to access the appropriate article:
Last updated