Thursday, February 13, 2025

Introducing Subscriptions

Tobias Lønnerød Madsen

Moonbase Founder

Tobias is the technical founder of Moonbase, with a long history of building e-commerce for software companies.

A consistent feature request we've heard from our customers is the ability to sell software through subscriptions. It's practically a must-have for any modern software e-commerce, and so it's high time we roll out our own.

Through the last months, we've been building, testing and improving our subscriptions feature, and in this article you can learn everything you need to get started.

Getting started

Subscriptions in Moonbase are set up through pricing variations on your products and bundles. Start by switching from one-off purchases to a recurring payment schedule in the configuration of one of your pricing variations:

Once you have a pricing variation set up, link to it from your website or update your code to add the new variation to your Moonbase-powered cart. Our embedded storefront and other SDKs have been updated to support subscriptions, along with a myriad of improvements to support multiple variations.

How they work

Subscriptions manage payment cycles between you and your customers, with a configurable length per variation (monthly or yearly). Each cycle, Moonbase will attempt to automatically renew the subscription, charging the payment method stored by the customer during the first purchase. If successful, we send out order receipts, and fulfill the new cycle of the subscription by extending licenses or issuing new key codes depending on your license generator setup.

If a subscription renewal fails, the subscription expires, and Moonbase will attempt to get updated payment information from the customer that owns the subscription. The customer may also choose to cancel their subscriptions at any time, at which point we will not automatically charge them for a new subscription cycle.

Interaction with discounts and coupons

When starting new subscriptions, customers will benefit from all the discounts you have set up on your products and bundles. These discounts will carry over to all subsequent payments for new subscriptions. If you want to limit discounts to avoid discounting subscriptions, you can restrict discounts to specific variations:

Coupons on the other hand, are only applied to the initial purchase, and will not be carried over to subsequent payments. This is useful in case you want to offer discounts on the first cycle of new subscriptions. We're intending to expand the possibilities of coupon and product discounts together with subscriptions in the future, based on your feedback.

Discount segmentation for subscriptions

One of the most unique features in Moonbase is our ability to segment discounts by what the customer owns. More specifically, we can say that discounts only apply to customers that own a specific set of products. Now that subscription licenses will start to appear, you will have the option to include or exclude subscription licenses in these segments:

Analytics

Sales for subscriptions, both the initial purchase as well as renewals, are all counted as unit sales in your analytics dashboards. However, if you wish to separate recurring and one-off payments, you may use the new payment type filter in your dashboards:

It's also possible to break down by payment type in cases where you want to compare the performance of subscription payments vs normal one-off payments.

Marketing attribution

To better understand your revenue streams, we support marketing attribution for sales done through Moonbase. In the case of subscriptions, any attribution done on the initial purchase of a new subscription will be carried on to every subsequent renewal payment. This way, you can better analyze the lifetime earnings of your marketing campaigns, and get a better picture of what works for your business.

Overriding licensing configuration

Depending on the way you set up and use subscription variations, you may want to change the licenses created by these variations. Offline activations is something we've heard from merchants that is undesired when licenses are attached to subscriptions, since they would have an expiry date when offline activations are supposed to be permanent.

This is now possible for all pricing variations, also non-subscription based variations, by heading over to the new "Licensing" tab of the pricing variation:

Any settings added here will override the base product settings, and make sure subscription licenses are providing the best experience possible.

Using subscriptions with external licensing platforms

If you are using external licensing platforms together with Moonbase subscription, we will re-fulfill licenses for each cycle. In the case of key codes, customers will receive a new key code with each renewal, and in the case of remote API delivery, we will call the API on each renewal to get a new license.

Remote API fulfillment requests will include an expiry date on license requests so that you can create scoped keys to the cycle length of the subscription.

Webhook support

Should you want to react to subscription events yourself, you can set up webhooks to inform your APIs about changes in subscriptions.

We support the following events:

  • SubscriptionStarted
  • SubscriptionRenewed
  • SubscriptionExpired
  • SubscriptionCancelled

Check out our article on webhooks to learn more on how to integrate subscription events into your own systems.

Pricing

Subscriptions in Moonbase comes at no additional cost, and is treated as any other purchase performed through Moonbase.

Start selling through Moonbase

Sign up today to get started selling your software through Moonbase.