Skip to main content

New Features

1. Stacked Discount Codes

Checkout sessions, payments, subscriptions, and plan changes now accept up to 20 discount codes in a single request via the discount_codes array. Codes are applied in array order — the first eligible code reduces the base price, the second reduces the already-discounted price, and so on — so you can layer campaigns without creating bespoke combined codes.
Confirm Plan Change dialog with multiple stacked discount codes
Where it applies Plan change behavior Response shape The full set of applied discounts is returned under the discounts array on payments and subscriptions — each entry includes discount_id, position, and cycles_remaining (for subscriptions). The legacy singular discount_id field is deprecated but still present for backward compatibility.
The singular discount_code field is deprecated but still fully supported — existing integrations continue to work without changes. It cannot be combined with discount_codes in the same request. We recommend migrating to discount_codes when convenient, even for single codes, to take advantage of stacking and the richer response shape.
Learn more: Discount Codes | Checkout Session | Plan Changes

2. Seven New Customer Notification Emails

Seven new transactional emails are now sent to your customers automatically, covering refund confirmations, subscription lifecycle milestones, and payment failures. Each email is independently toggleable from Settings → Communication under the Customer Emails section.
Customer Emails settings panel with toggles for each notification email
Opt-in (enabled by default) Opt-out (disabled by default)
If you manage customer communication yourself via webhooks, leave the opt-out emails disabled to avoid sending customers duplicate notifications for the same event.
Customer emails are separate from the notification emails sent to your team. Disabling a customer email does not affect your team’s notifications for the same event.
Learn more: Communication Preferences

Improvements

3. Checkout Payment Page Overhaul

The payment page on checkout has been substantially reworked end-to-end — tighter layout, faster perceived load, clearer validation states, and refined card-input UX. In aggregate, these changes lifted observed checkout success rates by ~2–3% across global traffic.
Previous checkout payment page

Before

Redesigned checkout payment page

After

What changed:
  • Smoother field interactions — autofocus, smarter tab order, and improved keyboard navigation on the card form
  • Cleaner error and loading states — inline validation surfaces precisely where the customer needs to act, replacing the previous full-form error banner pattern
  • Faster paint — skeletons and progressive hydration eliminate the brief blank-state flicker on slow networks
  • Mobile polish — tap targets, scroll behavior, and keyboard handling tuned specifically for mobile checkout, where the majority of traffic now lives
No integration changes are required. Existing checkout sessions automatically pick up the new payment page.

4. Product Form Rework

The product create, edit, and duplicate flows have been rebuilt from the ground up around a single, consistent form experience.
Unified product form with Basic Details, Media & Description, Pricing, and a live checkout preview side-by-side
Highlights:
  • Live preview — see how your product appears on the checkout and customer portal as you edit, side-by-side with the form
  • Autosave — drafts are persisted automatically, so navigating away or losing your tab no longer means losing your work
  • Markdown editor — product descriptions now support a full markdown editor with live rendering, link previews, and inline formatting controls
  • Duplicate flow parity — duplicating a product opens the same unified form pre-filled, instead of a stripped-down dialog, so you can adjust every field before saving the copy
Use Duplicate to spin up regional or pricing-tier variants of an existing product without re-entering descriptions, metadata, or fulfilment configuration.

5. Business Settings Page Redesign

The Settings → Business page has been redesigned to make configuration easier to scan and faster to update. Settings are now grouped into clearer sections with explanatory copy that describes the impact of every toggle before you flip it. There are no behavioural changes to existing settings — only the layout, grouping, and surrounding explanations have improved.
Redesigned Business Settings page with grouped sections for Business Info, Brands, currency, security, and tracking

Improvements

  • credits_amount override now propagated correctly to GET checkout session and payment link routes — when a checkout session or payment link was created with a per-checkout credit_entitlements override, fetching that session or link via GET was returning the product-level default credits_amount instead of the overridden value. This is now fixed.
  • Refund action disabled for fully refunded payments — the Refund button on a payment is now disabled once a payment is fully refunded, with a tooltip explaining why. Previously the button remained active and returned an error only after submission.
  • Minor bug fixes and stability improvements across the platform
Last modified on September 26, 2026