For the complete documentation index, see llms.txt. This page is also available as Markdown.

Release 116

Highlights

  • Stripe Billing, end to end. Stripe is now supported across the whole subscription lifecycle. Customers can buy, cancel, upgrade, downgrade, change address, gift a subscription and manage their payment methods, all powered by Stripe.

  • More ways to pay. Stripe checkout now supports BACS Direct Debit, Apple Pay and Google Pay, and you can present different payment methods per offer.

  • Flexible discounts and promotions. A new billing-agnostic Limio Discount object and redesigned Promo Codes let you define a discount once and apply it through promo codes at checkout.

  • Smarter self-service. Customers can change quantity, remove offers from a subscription and update their address through self-service journeys.

  • A redesigned catalog dashboard. The catalog home page is now a data-driven dashboard giving you an at-a-glance view of your store.

  • Secure by default. PCI DSS payment page protections are now always on.

Breaking changes


New Features

Stripe Billing, end to end

Stripe is now a fully supported billing provider in Limio, covering the whole journey from checkout to self-service.

Your customers can:

  • Buy a subscription through Stripe checkout, built on Stripe's Payment Element, paying by card, BACS Direct Debit, Apple Pay or Google Pay, with the available payment methods configurable per offer

  • Buy several offers in one checkout, buy as a gift, and redeem promo codes with the discount correctly charged

  • Manage their subscription through self-service: upgrade, downgrade or cancel, change their address, and view or change payment methods

For your team

Limio and Stripe always stay in sync. After every order, payment amounts, dates and status are refreshed from Stripe, and each customer has a single Stripe account with all their invoices and payment methods in one place.

Everything is visible in Limio too: orders, customer data, and process events showing each step of a Stripe order with any errors, such as a declined card. Failed events are surfaced on the dashboard.

Limio for Salesforce also works with Stripe Billing as the underlying billing system, so your agents can take Stripe payments in Salesforce-driven journeys. Read more about Stripe payments for Salesforce.

Read more in the Stripe Billing Overview.

Introducing Discounts and Promo Codes (beta)

We are introducing a better way to run promotions in Limio, built on two new catalog objects.

A Discount is the deal: "20% off for 3 months", or "£10 off the basket", applied to everything or just specific items.

A Promo Code is how customers claim it: the code they type at checkout, like SUMMER20, with its own redemption limit, start date and expiry date. One Discount can power any number of codes, so changing the deal is one edit, not five.

Both work like the rest of your catalog: templates, filtering, bulk actions and API access. Create a Discount, click Create Coupon to generate the linked Stripe coupon automatically, add Promo Codes and publish.

In this release, Discounts work with Stripe Billing only. Support for Zuora and for redeeming Discounts through Limio for Salesforce is planned for a future release. To try it today, turn on Settings > Beta > "Use Limio Discounts".

Self-service subscription changes

Customers can now make more changes to their subscription without contacting support, through update subscription journeys:

  • Change quantity: increase or decrease seats or copies, with pricing and proration handled correctly

  • Remove an offer without cancelling the whole subscription. The offer stays active until the end of the current term, and a subscription always keeps at least one offer

  • Change their address through a dedicated change-of-address journey

These journeys are built with the Limio SDK; there is no out-of-the-box component yet. See the Update Subscription SDK documentation for the quantity and offer removal journeys, and the Self-Service Checkout SDK documentation for the change-of-address journey.

Manage subscriptions from Salesforce

Agents can now upgrade, downgrade or change quantities on a customer's subscription directly from Limio for Salesforce, a new flow in this release. In addition, for tenants on Stripe Billing, the agent actions already available with Zuora now work with Stripe too, including changing a customer's payment method and changing their address.

Redesigned catalog dashboard

The catalog home page is now a data-driven dashboard giving you a clear overview of your store the moment you log in:

  • New orders over the last 30 days

  • Cancellations over the last 30 days

  • Recent orders, including failed ones so nothing slips past

  • Failed process events, so problems surface the moment you log in

  • The five most recent abandoned carts

Analyse your checkout A/B tests with the Limio MCP

This release improves the Limio MCP's order analytics, so your marketing team can measure checkout performance and A/B test results directly through the MCP. Orders now record which checkout page they came through, and you can filter, group and total orders by count or revenue. For example, ask your AI tool with the Limio MCP connected: "which checkout page had more orders in the last 2 weeks?"

Get started with the Limio MCP here: Limio MCP Server

Single sign-on with Okta and Google

The Limio App now supports single sign-on via Okta and Google. Your team members can sign in to Limio using their existing corporate credentials instead of a separate Limio username and password.

A Limio user account must be created by an admin before the first federated login, so that the correct permissions can be assigned when the user authenticates. Existing username-and-password logins are unaffected and continue to work as before.

Read more about configuring SSO here: Login options (SSO). Please contact support@limio.com if you are interested in using this feature.

Purchase links can now include add-ons and quantities. You can define which offer an add-on belongs to and set the quantity of each offer or add-on directly in the link, so dynamically built links (for example from a questionnaire flow) can land customers on checkout with a fully composed basket. Existing purchase link formats keep working unchanged.

Learn how to configure purchase links here: Purchase Links

Configurable cart item names

The name shown for items in the cart was previously hardcoded as "product name - offer name". A new Cart Item Name property lets you build the label from any attribute on the order item (offer, product or add-on), so each brand can show cart items the way that makes sense for them. The current format remains the default.

Improvements

Subscription events now include Account and Contact IDs

When a subscription is updated or cancelled, the event sent to Salesforce now includes the customer's Account and Contact IDs, the same way new order events already do. Your Salesforce automation can act on these events directly, without a secondary lookup.

Stronger payment page protection (PCI DSS)

Payment page script protections (PCI DSS v4) were previously opt-in via a flag. From Release 116 they are always on.

Manage your catalog through MCP

Previously the Limio MCP could only create and update offers, using a fixed set of standard fields. It now reads your catalog templates first, so it knows exactly which fields, options and defaults apply, including your custom attributes. Read more in the Limio MCP documentation.

Checkout forms prefill from any order value

When a customer opens a checkout from an assisted checkout link or a recovery link, the form is now pre-filled with everything Limio already knows, including your custom fields, not just the standard name and address ones. This means less typing for the customer, which can lead to fewer abandoned checkouts.

Show customer email on the basket detail view

When you open a basket in the Limio admin (Subscriptions > Baskets), the customer's email address now appears in the Details section, so you can see whose basket it is without digging into the raw JSON data.

Filter cross-sells by underlying product ID

The cross-sell component hides offers and add-ons the customer already has. It now determines this using the Limio product rather than the underlying billing system product code. This means filtering works correctly when several add-ons share one Zuora product, and for tenants on Stripe Billing.

Clearer error messages for payment forms

Previously, when a customer's card details failed validation at checkout, the same error message appeared in multiple places at once. This is now corrected: each error shows only at the level it belongs. Field validation errors appear next to the field, and genuine payment failures show as an order-level error. This applies to both Stripe and Zuora payment forms.

Subscription identifier available in the callout plugin

If you use the callout plugin to notify your own systems about orders, the request body now always includes a subscriptionIds field identifying the subscription(s) the order relates to. Your systems no longer need to call Limio back to work out which subscription an order belongs to. This works for both Zuora and Stripe.

Publish offers and add-ons directly from the catalog

Offer and add-on pages in the catalog now have their own Publish and Unpublish buttons. Previously, releasing a new version of an offer or add-on required building and publishing a page that used it. Now you publish the item directly, and the new version is immediately live in Limio for Salesforce, upgrade and downgrade options, cross-sells and upsells, and purchase links. Shop pages work as before and still require a page rebuild to show changes.

Strengthened platform security

Following our latest penetration test, the Limio app now sends stricter browser security headers, and API error responses no longer reveal internal details.

More complete subscriber timeline in Limio for Salesforce

The subscriber timeline now shows more complete and consistently formatted event details.

Bug Fixes

Hot Sync now supports Subscription Term billing periods

Subscriptions using Zuora's "Subscription Term" billing period now sync into Limio correctly. Previously Limio's hot sync rejected them and affected customers couldn't load their account page.

Hot-synced multi-product subscriptions now display an individual price for each item

Hot-synced subscriptions with multiple products no longer display as a single bundled offer in self-service. Each product now shows individually with its own price and quantity.

Billing address country now updates with the "same as delivery" checkbox

Ticking "My billing address is the same as my delivery address" now correctly updates the billing address country dropdown.

Customers paying by invoice can place new orders

Customers who pay by invoice can now place a new order without errors. Previously, AutoPay was switched on while processing the order, which isn't allowed for invoice payment, so the order failed. AutoPay is now kept off for customers paying by invoice.

Cart total currency default

The floating cart header no longer defaults to GBP when the cart is empty.

Duplicated add-ons no longer use the original name

Duplicating an add-on now gives the copy its new name instead of keeping the original add-on's name.

Compatible add-on descriptions render correctly

Compatible add-on descriptions now display in self-service update journeys. The component now reads the same cross-sell display name and description fields used at acquisition (cross_sell_display_name__limio, cross_sell_display_description__limio).

No payment method created for gift recipients

An empty payment method no longer appears in the saved payment methods component for customers who redeemed a gift.

Correct "current plan" shown when updating multi-offer subscriptions

When a customer with a multi-offer subscription went to upgrade one of its offers, the Update Subscription Offers component could show the wrong offer as their current plan, which could cause confusion. This is now fixed: the current plan card always shows the offer the customer chose to update.

Structured custom attributes no longer break catalog publishing

Publishing catalog items with structured custom attributes (for example a recurring date stored as month + day) no longer fails silently. This is now resolved.

Claiming an anonymous subscription now works with multiple subscriptions

Customers who purchased through an anonymously authenticated checkout were sometimes unable to claim their subscription (via the MMA claim API) if the checkout session held more than one. Claims now succeed, and all of their subscriptions are associated with one owner.

Checkouts opened from a purchase or promo link now reliably load the selected offer and discount.

Refactors and cleanup

Removed legacy order submission path

The legacy order submission path using BEARER_MMA authorisation has been removed. Integrations using the standard self-service, admin or Salesforce order flows are unaffected.

Other internal improvements

A number of internal engineering improvements were also delivered in this release, with no direct customer-facing change:

  • Removed the legacy @limio/ui-form library. The migration to @limio/form-lite was completed in Release 115, so this removal has no effect on checkout behaviour in this release.

  • Catalog data validation is now driven by metadata rather than hardcoded properties.

  • Internal code quality improvements across the data layer, payment manager and checkout basket logic.

Please remember to perform a hard refresh in your browser after upgrading your environment.

Last updated

Was this helpful?