Managed Subscriptions and Usage-Based Billing
This article discusses use cases and implementation of managed subscriptions, which are subscriptions that do not involve any automatic or regularly-scheduled charges at all.
A typical example of subscription-based billing involves regular, automatic (or manual) recurring charges to the customer's payment account (e.g., a credit card). FastSpring refers to these as standard subscriptions. However, FastSpring also supports managed subscriptions, which do not involve any automatic or regularly-scheduled charges at all.
In this context, the term "managed" refers to the fact that you have direct control over when FastSpring charges the customer's payment account. Rather than automatically charging the customer's payment account on a specific pre-defined schedule, FastSpring waits to rebill the customer until you trigger a new charge on demand. You can trigger a charge on a managed subscription via a call to the /subscriptions endpoint of the FastSpring API, or via the CHARGE command on the subscription's detail page in the Dashboard.
With a managed subscription, the customer provides payment account details such as the credit card number and expiration date at the time of the initial subscription transaction, via a Web Storefront or a Popup Storefront. After the initial purchase, FastSpring securely stores the resulting payment account token provided by our payment gateway, which uniquely identifies the customer's payment account. (We do not store the full credit card number). After that, you can request that FastSpring trigger managed subscription charges on demand. For these on-demand charges, the customer does not have to enter any information at all with FastSpring. The charge happens automatically, just as if it had been scheduled in advance.
By default, the amount charged to the customer's payment account for each managed subscription billing is the price of the subscription product that was purchased. However, if you need to change the charge amount, you can update the pricing info of the subscription instance via a POST to the /subscriptions endpoint of the API. You can also edit the price info of a subscription instance in Dashboard. As long as you make this change before triggering the managed subscription rebill, FastSpring will charge the customer for the new price. Updating the subscription also means that FastSpring will charge the new amount for each future billing (but you can always change it again, as needed).
- Usage-Based Billing
- Creating a Managed Subscription
- Triggering Managed Subscription Billings
- Other References
For software-as-a-service (saas) and certain other types of products and services, you may want to implement usage-based billing. With this approach, the customer may be purchasing a certain amount or number of uses rather than a more standard subscription, such as a flat monthly fee with recurring charges. With all products and subscriptions, you define what you are selling to the customer. With managed subscriptions, you also define how you sell it.
For example, a software publisher with a library of utility software may offer download access to the library, and charge customers for a certain number of individual downloads. In a scenario like this, the publisher may offer packages with varying numbers of downloads at different price points. (The strategy might be to sell more downloads by offering a lower price per download when purchased in bulk). A customer might purchase a five-download package, and then if the customer wants a sixth download, the publisher needs to charge the customer for additional downloads (e.g., perhaps another five-download package). The publisher might offer the customer an interface to purchase additional downloads with a single click.
As another example, suppose you have an online reference service, and you sell access to your service based on the number of login events allowed. Customers might purchase a certain number of logins, or perhaps a certain number of logins per month. You would keep track of how many times your customer's staff log in to the service. When the customer is approaching their login limit, you might proactively contact the customer to let them know they are approaching the limit, and offer to sell additional access/logins at that time. For some business-to-business scenarios, your customer success managers or account managers might use the FastSpring API to trigger new billings for additional access manually, with the customer's approval, but without the customer ever having to see an interface or click to purchase anything.
These two fictitious examples only begin to illustrate some of the possible scenarios in which usage-based billing might be a useful approach.
It is important to note that FastSpring does not keep track of the number of uses purchased, used, or remaining to the customers. FastSpring can notify you when a transaction has successfully occurred, via webhooks. Such notifications include what products or services were purchased. Beyond that, all other data would have to be tracked by you, along with things like customer access credentials and the actual service itself. FastSpring's managed subscriptions simply allow you to trigger new charges to the customer's payment account method on an as-needed basis.
Creating a Managed Subscription
- To set up a managed subscription via the Dashboard, select the Products menu and the Subscriptions tab.
- Click CREATE SUBSCRIPTION.
- Enter the Subscription Name. The Product Path is filled in automatically. You can optionally click the language drop-down and enter the name in other languages.
- Enter a Summary description of the subscription product. You can optionally click the language drop-down and enter the description in other languages.
- Leave the Billing Cycle set to its default value; this will not apply once you have changed the Subscription Type to Managed, below.
- Enter the price to be charged for each transaction. You can optionally enter the price in currencies other than your Store's base currency; just click ALL CURRENCIES. You can change the customer's subscription price later via the Activity menu in the Dashboard or the /subscriptions API endpoint, as needed.
- Click CREATE.
- On the list of subscriptions, click the card for the newly created subscription product. The subscription product's details page opens.
- Click anywhere in the Pricing field to open the Pricing popup window.
- In the very first field at the top of the Pricing dialog, select Managed for the Subscription Type.
- Make any other adjustments as needed, and then click SAVE. The Pricing field on the subscription product's details is updated with the word Adhoc to indicate that this is a managed subscription.
For more information about the fields of the subscription details, please see About Subscriptions.
For more information about the Pricing popup dialog, please see Subscription Pricing.
Triggering Managed Subscription Billings
With managed subscriptions, you may present customers with your own unique UI to trigger additional charges. Alternatively, you may charge customers (with their approval) without ever requiring them to see or click anything. For example, your staff may obtain verbal approval or an email message from the customer.
Regardless, there are two methods you can use to trigger a managed subscription charge: using the FastSpring API, or via the subscription's detail page in Dashboard.
Using the FastSpring API
POST to the /subscriptions/charge endpoint of the FastSpring API with the customer's FastSpring subscription ID, and FastSpring takes care of the rest.
For more information, please see /subscriptions.
Via the Subscription's Detail Page in Dashboard
- On the Activity tab of the Dashboard, look up the subscription and drill into its details. (Note: The easiest method might be to locate the original subscription charge and then click the View Subscription link in the Items section of the order details.)
- On the subscription's detail page, click the CHARGE command at the bottom left-hand corner of the top section.
- The new charge occurs immediately; you can verify it and view its details in the Charges section of the subscription's detail page.
You can find more information about managed subscriptions in Subscription Integration.