This article applies to Classic Commerce. (Looking for Contextual Commerce documentation?)
On-Demand subscriptions give you the ability to charge at your own schedule instead of a pre-defined schedule such as monthly. This is especially useful for services which are credit based, and have variable usage of the product / service over time. You keep track of the usage and simply call our API (https://github.com/fastspring/fastspring-api) if a renewal is due.
- Email sending service where the customer pays per email, or block of emails (e.g. http://www.postmarkapp.com)
- Stock photo service where the customer pays per photo, or block of photos (e.g. http://www.istockphoto.com)
- Communication service where the customer pays per minute, or block of minutes (e.g. http://www.skype.com)
While On-Demand subscriptions may be used for billing after activity has occurred, the recommended use is to bill the customer for an allotment of activity (emails, photos, minutes) before they've used the service. This eliminates business risk versus providing service before guaranteeing customer payment.
Depending on your case, On-Demand subscriptions are also useful when coupled with our "Update Subscription" API (https://github.com/fastspring/fastspring-api). Using the update API you can optionally update the quantity / units (and therefore total cost of renewal), prior to calling the renew API.
Limitations: Renewals are limited to 1 per day, and 4 successful renewals per 30 days. Depending on your specific scenario these limits may require that you aggregate usage within your system.
Create Subscription Product
Choose “Create Subscription Product” inside “Product and Pages” and select “On Demand” as the period length.
A good explanation of your re-charge / renew conditions helps the buyer to understand what he’s agreeing to. Put this explanation into the subscription's product description.
We will automatically renew when you use up 90% of the credits purchased. You're able to cancel this auto-renew at any time.
1+2) Signing up for the On-Demand subscription will create an order and activates the subscription.
3) Alvin's Service will receive a "Subscription Activated" and a "Order" notification if configured. Go to Notifications Overview to learn how to configure it.
4) "Subscription Activated” notification contains a subscription reference. That reference can be used to call our Renew API function (https://github.com/fastspring/fastspring-api).
The response to the renew function will be either "201 Created" or "422 Unprocessable entity". If the payment wasn't successful (422), the subscription will fall automatically into pre-defined payment followup steps. Go to Payment Follow-up Notifications and Reminders to learn how to configure them.
From that point in time, FastSpring manages the following up process. The Renew API function (https://github.com/fastspring/fastspring-api) won't be accessible until the payment was successful - see 5). If FastSpring wasn't able to bill the charge, the subscription will be cancelled - see 6).
5) Alvin's Service will receive an order notification if the payment was successful.
6) If John or Alvin did cancel the subscription or if it was cancelled due to a Non-Payment, FastSpring sends a "Subscription Deactivated" notification to Alvin's Service. Go to Notification Overview to learn how to configure it.
Switching to/from a regular subscription
Changing an On-Demand subscription is basically like changing a regular one. It can either be done through SpringBoard or via API calls (https://github.com/fastspring/fastspring-api).
There's only one thing to keep in mind. You need to call Renew once more after changing from an On-Demand subscription to a regular one (e.g. monthly). This will charge the fee of the regular subscription and puts it into the queue. Afterwards you don’t need to call Renew anymore.
Prorated upgrades/downgrades are only supported if coming from a regular subscription. If you'd like to upgrade/downgrade from an On-Demand subscription you need to do the refund manually.