A subscription billing platform that drives growth.
billforward Logo


Billforward is a subscription and recurring revenue billing platform, helping businesses sign up customers, collect recurring payments, and manage their subscriptions.
Billforward supports an array of billing use cases - from the simplest to the most complex ones. Billforward strongly believes that customers' business models shouldn't have to adjust to accommodate the billing platform. It's the billing platform's role to accommodate the company's business model.
A comprehensive billing automation tool which gives the ability to merchants to sell and manage subscriptions, generate reports, connect to payment gateways and to apply sophisticated discounting and coupons to subscriptions.
The platform is highly flexible and configurable and can support a wide variety of subscription use cases from both B2B and B2C in multiple industry verticals, including retail and wholesale of physical product, SaaS, media, telecoms, professional services, visitor attractions and membership clubs.

Description of the Integration

Parts of the system:

  • In the browser there will be a Storefront, possibly including Billforward-JS which is a library designed to simplify the process of tokenising a card number and adding it to an account in the Billforward API.

  • A Store API will front the system in order to marshal calls to commercetools

  • commercetools

  • The Integration system

  • Billforward

  • Payment Service Provider (PSP)

Starting from the administration of the system:

  1. Administrator will create a plan or contract type in the Billforward UI or using the Billforward API (the UI is just a cut-down front to the API)

  2. Billforward will asynchronously create a change notification which will be used, either via a MQ or a WebHook to call the Integration in order to update products in commercetools.

Then a user buying products:

  1. The user views products which are supplied by the Store API. Potentially cached or fetched from commercetools.

  2. When a product is added to the basket, a call is made via the Store API to create a basket in commercetools.

    1. Optionally, the Integration could perform a “Create Quote” operation on Billforward to ensure the exact prices are shown - for example if a customer sells items on a per-calendar-month basis and we’re part way through the month or the customer has already got a subscription for the item and they’re increasing volume.

  3. The user enters their details and these are sent via the Store API to commercetools.

  4. The integration sends the user details to Billforward, optionally looking up a BF account or simply creating a new one.

  5. The user enters their credit card details which are sent directly to the PSP and a token is returned.

  6. The returned token is directly added to the Billforward account and optionally set as the default payment method.

  7. An order is created from the basket via the Store API in commercetools. The Integration picks up this order and creates the relevant subscriptions and/or one-off invoices for the items in the order.

  8. Payment is made asynchronous by the PSP from Billforward

  9. A notification is sent to the Integration so that the payments are added to Commercetools and the order is completed.

  10. Notification can be sent to the end user that the order is complete.

For refunds

  1. Refunds are initiated by an administrator and a request is sent to commercetools

  2. The Integration picks up the request and requests Billforward to perform the refund using the relevant PSP

  3. Information about the refund is returned to commercetools and the administrator.

For recurring payments

  1. This is handled between Billforward and the PSP

  2. If the customer wishes to track physical delivery and orders in commercetools, this will be done asynchronously via the Integration.
    Stock control is not required by any current customers.


  1. The user can cancel via the Store API or an administrator can request cancellation

The cancellation request is received by Billforward and the subscription is cancelled.