Subscription_Management

Subscription management: six steps to simple billing of flexible tariffs

,

When using digital services, customers are increasingly deciding against a one-off purchase and instead opting for a model that focuses on actual use - and therefore only charges for this. A subscription model is also frequently chosen. Many companies are responding to this and are increasingly offering their services and products via flexible usage and pricing models. We have seen a real boom in this area over the last ten years: Netflix, Amazon Prime, Uber, Spotify and Salesforce are just a few prominent examples.

However, many companies from more traditional industries that would not be directly associated with subscriptions are also switching to such models. For example, machine manufacturers are lending their devices to customers and only charge for their use (pay per use). Also Automobile manufacturer invest in Mobility services such as car sharing and no longer just in pure car sales. These services are also typically offered in a pay-per-use or subscription model.

Thanks to subcription management, pay-per-use or subscription models can be easily billed

At doubleSlash, we have experienced in customer projects that a great deal of effort is made to ensure that the to enable the existing IT infrastructure toso that it can be used to offer and bill digital services in a pay-per-use or subscription model.
But it can also be done with less effort. Because there are Modern subscription management systemsthat deal with integrate into the existing IT infrastructure with manageable effort leave.

This blog post uses the example of the billing and payment provider Stripe to show how easily such an integration can be implemented in just a few steps.

With Stripe is a payment platform founded in 2011 which, according to its own statement, is aimed specifically at developers. This is particularly evident in the very good documentation and provision of the development interfaces (APIs for Application Programming Interfaces). The Stripe portfolio, which originally only comprised a payment service, has since been expanded to include other services such as subscription management. As it is a "Software as a Service" (short SaaS) Offer in which the platform is addressed via defined REST web services, is No local installation of the platform necessary.

The following is an overview of the steps required to create and bill subscriptions with Stripe.

Stripe Subscription Creation

 

Figure 1 - 6 steps to billing subscriptions
Note: only relative paths for the REST web services are specified below. The base path is https://api.stripe.com in all cases

 

1. registration with Stripe

First, the user registers with Stripe and creates a Account to. The company that wants to bill for its services via Stripe is referred to as a Buinsess Partner at Stripe. Stripe provides a portal for business partners for this purpose.
Stripe then automatically provides the API keys for your live and test environment.

 

2. create customer

The following end point can then be used to Customer account for which a subscription is to be billed.

Relative path/v1/customers
HTTP methodPOST
Request parametersDescription
descriptionAny character string that can be attached to a customer object. The description is displayed for the customer in the dashboard.
emailThe customer's e-mail address, which is displayed for the customer in the dashboard and can be helpful for searching and tracking.
AnswerDescription
Customer objectThe returned object contains information about subscriptions, discounts and payment methods (e.g. credit card) for the customer.

 

3. create credit card and link to customer

In a further step, a Payment method and these are linked to a previously created customer.

Create credit card
A credit card can be stored as a payment method via the following REST endpoint, which can be used in Form of a token is stored at the respective client.
The advantage: the customer does not have to be certified to store credit cards.

Relative path/v1/tokens
HTTP methodPOST
Request parametersDescription
card.numberCredit card number of the customer.
card.exp_monthTwo-digit number indicating the expiry month of the card.
card.exp_yearTwo- or four-digit number indicating the year in which the card expires.
card.cvcSecurity code of the card.
AnswerDescription
Token objectNewly created token matching the credit card.

Create source object
A so-called source object is required to link the credit card with the previously created customer.

Relative path/v1/sources
HTTP methodPOST

In the following case, a credit card is to be used as the customer's future payment method. However, it would also be possible to create one-off payment methods such as vouchers.

Request parametersDescription
type = cardType of source to be created (e.g. credit card).
tokenCredit card token
usage = reusable"reusable" indicates whether this source (credit card) should be reusable or not.
AnswerDescription
Source objectThe returned object contains information about newly created credit cards.

Linking the source with the customer
Finally, the source must be linked to the customer:

Relative path/v1/customers/{customerID}
HTTP methodPOST
Request parametersDescription
SourceIDThe ID of the source (e.g. credit card) to be linked.
AnswerDescription
Source ObjectThe attached source object is returned together with the customer ID.

As this is the first payment method created, it is also directly marked as Standard payment method is stored for the customer. This means that if a payment method is not explicitly specified for a payment transaction, this method is automatically used.

 

4. define tariff

Now that the customer has been created and linked to a payment method, a tariff must be defined that is used for the Customers billed should be:

Relative path/v1/plans
HTTP methodPOST
Request parametersDescription
product.idID of the product for which the subscription is created.
currencyISO currency code with three letters in lower case.
amountAmount to be paid
intervalThe billing frequency (e.g. day, week, month or year).
AnswerDescription
Plan objectThe object contains all attributes associated with the plan (e.g. status, currency, amount, interval).

 

5. create a subscription for the customer

Finally, only the actual subscription needs to be created for the customer.

Relative path/v1/subscriptions
HTTP methodPOST
Request parametersDescription
customer id
collection_method= charge_automaticallyStripe will attempt to bill this subscription at the end of the cycle using the default payment method on file.
itemsList of items to be invoiced, each with an attached plan ID.
AnswerDescription
Subscription objectThe newly created subscription with the corresponding attributes.

Internally, Stripe now creates a subscription including a SubscriptionItem for the customer.

Depending on the interval defined in the tariff model (plan), Stripe will now Invoicing is triggered automatically.
Stripe customers can track the status in a dashboard.

 

6. retrieve invoice data

Of course, with Stripe it is also possible to retrieve the billing data for each customer.

Relative path/v1/invoices
HTTP methodPOST
Request parametersDescription
CustomerIDOnly the invoices for this customer are retrieved with the transferred customer number.
AnswerDescription
Invoice objectThe returned object contains all invoices belonging to the customer number, which are sorted by creation date.

 

Conclusion: Integration of subscription management solutions saves time and money

Stripe makes it easy for its customers through a modern API with helpful documentation very easily their Platform for processing invoices and payments connect. As Stripe's platform is provided via the cloud, there is no need to install it in the customer's infrastructure. This saves time and money compared to the time-consuming adjustments to customers' existing traditional billing systems. Providers of other subscription management systems have already followed this approach or will do so in the not too distant future.

 

What do I need to consider when choosing a subscription management system? Download free whitepaper here


Sources:

  • Bachelor thesis "Concept for connecting service providers to a connected bike backend", 2018, Myriam Müller
  • API Docs Stripe: https://stripe.com/docs/api

 

Linda Teufel

About ME

Linda Teufel studied Software Product Management (B.Sc.) and is qualified as a Professional Software Architect. She has been working as an IT consultant and product owner at doubleSlash since 2016 - primarily for customers in the automotive industry. Her focus is on the conception of holistic software solutions as well as the functional and technical support of the entire development process through to implementation.

All contributions from Linda Teufel

Learn more

Further information on our website and in our newsletter

Arrow up