Skip to main content
2026-10-12
  • ⚠️ Breaking: updated @stigg/js-client-sdk to 6.0.0. useMeteredEntitlement without requestedUsage now denies a customer who has reached the limit. See the JavaScript SDK changelog.
2026-10-11
  • Updated @stigg/js-client-sdk to 5.4.0, which adds brand and walletType to the customer’s paymentMethodDetails. See the JavaScript SDK changelog.
2026-10-11
  • Updated @stigg/js-client-sdk to 5.3.0. No change to widgets or hooks.
2026-10-08
  • Added: optional decimalPlaces prop on CustomerPortal and CustomerPortalProvider. It sets the maximum number of decimal places shown for usage and limit values in feature usage, credit usage, usage-based charges and promotions. When unset or null, values keep the previous locale formatting.
2026-10-05
  • Fixed: after a declined payment, the Checkout widget now lets the customer retry with a different card. The payment step reloads with a fresh Stripe setup intent or Airwallex consent and the customer’s current default card, while the selected plan, add-ons, billing period and step stay as they were.
2026-09-30
  • Fixed: the Checkout widget no longer reports success for an Airwallex payment that failed or is still processing. As with Stripe, a FAILED or PROCESSING payment now fails the checkout and shows the invoice’s error message.
2026-09-29
  • Fixed: the Airwallex Checkout no longer times out while the customer completes a 3D Secure challenge. The challenge now opens in a modal, including on browsers without :has() support (Safari before 15.4, Firefox before 121), and the Subscribe button waits until the payment form is ready.
  • Fixed: a declined card or cancelled 3D Secure challenge no longer shows the same error message twice in the Airwallex Checkout.
2026-09-28
2026-09-23
  • Updated @stigg/js-client-sdk to 5.2.0, which adds requestedUsage to credit entitlement options. See the JavaScript SDK changelog.
2026-09-17
  • Updated @stigg/js-client-sdk to 5.1.0. No change to widgets or hooks.
2026-09-12
  • Fixed: the Checkout summary no longer shows a $0.00 recurring charge when the change has no recurring charge, for example when the subscription ends at the current period end. The recurring row and next-billing caption now appear only when there is a recurring total.
2026-09-11
  • Fixed: the Customer Portal no longer shows the text undefined for a feature with no usage value. It shows 0.
2026-09-06
  • Fixed: on paid plans, the Customer Portal no longer shows 0 usage (or “Usage unavailable”) for metered features that are entitled but have no price. Their real current usage is shown.
2026-09-02
Credit widgets distinguish “no data” from “not entitled”Requires @stigg/js-client-sdk 5.0.0, and inherits its changes to fallback and miss behavior — see the JavaScript SDK changelog.
  • ⚠️ Credit isFallback is now false on a plain miss, where it was always true. This is what the widget fixes below rely on — if you read credit entitlements directly instead of through the widgets, see the upgrade note in the JavaScript SDK changelog.
  • ⚠️ Enum requestedValues is [] rather than undefined when the caller passes none — also on reads served from cache. if (entitlement.requestedValues) now takes the other branch; test for .length instead.
  • Fixed: CreditBalance, CreditUtilization and their value components (CreditBalanceValue, CreditUtilizationValue) no longer render a fabricated 0 balance or 0 / 0 utilization for a currency the customer has no entitlement to, and no longer offer an “Add credits” action for one.
  • Fixed: AutomaticRechargeConfig reports that the balance could not be loaded instead of showing an editable recharge form for an unentitled currency.
  • A customer who has spent their balance still sees the real numbers and the top-up offer — this behavior is unchanged.
  • Credit accessDeniedReason on a fallback is EntitlementNotFound, was Unknown.
  • Changed: with no StiggProvider mounted, useMeteredEntitlement and useEnumEntitlement now echo the caller’s requestedUsage / requestedValues instead of the fallback constant’s values.
  • Enum requestedValues on an unavailable read now echoes the caller’s values instead of being absent.
  • A wrong-kind read whose fallback grants access no longer carries FeatureTypeMismatch.
  • A fallback that grants access no longer carries an accessDeniedReason, and feature on an untyped fallback is now present, carrying the requested ID and the kind answered.
  • A configured fallback read through the bulk APIs returns a real entitlement of its own kind.
  • A fallback’s fields belonging to another entitlement kind are dropped rather than echoed, and a cached entitlement of a kind you did not ask for is no longer answered as the asked-for kind.
If you built your own credit UI on isFallback, see the upgrade note in the JavaScript SDK changelog.
2026-08-26
  • Fixed: add-ons hidden from Checkout, paid or free, no longer appear in the Checkout widget’s list of purchasable add-ons.
2026-08-05
  • Added: eventCount on credit usage series and points, with the number of usage events behind the credit consumption.
2026-07-23
  • Changed: the Airwallex payment step in the Checkout widget now uses Airwallex’s drop-in element, collecting the card and billing address.
2026-07-14
  • Added: Checkout widget support for Stripe billing brokered by Received (RECEIVED billing vendor).
2026-07-12
  • Fixed: CreditBalance, CreditUtilization and AutomaticRechargeConfig now read credit entitlements for the resourceId set on StiggProvider.
2026-06-24
  • Changed: the Customer Portal’s next estimated bill and per-feature usage now come from the subscription’s next invoice preview, falling back to the subscription total and the entitlement’s current usage when no preview is available.
2026-06-25
Credit wallet soft limit
  • Added: hasSoftLimit field on CreditEntitlement (via @stigg/js-client-sdk 4.6.0). When a credit entitlement is configured as a soft limit, useEntitlement() returns hasAccess: true and hasSoftLimit: true even after the credit balance reaches zero. Hard limit (the default) continues to return hasAccess: false when the balance is exhausted.
2026-06-01
  • Security: patched vulnerable transitive dependencies.
2026-05-18
The Checkout widget now reliably supports changing existing add-on quantities on narrow or embedded screens. The quantity input is fixed-width so it stays fully visible at any viewport size, Undo is stacked beneath it for a cleaner layout, and the controls stay anchored so validation text never pushes the Undo or delete buttons out of place.
2026-04-06
Upgraded MUI dependency from v5 to v7. This is a major version bump — if your application pins MUI, update it to v7 to avoid peer dependency conflicts.
2026-04-01
Bumped @stigg/js-client-sdk to 4.0.0. The following subset of js-client-sdk breaking changes affect react-sdk consumers:
2026-03-31
  • Fixed: the credit grants widget no longer lists overdraft grants.
2026-03-30
  • Fixed: the credit usage chart renders dates in UTC.
2026-03-25
  • The SDK is now published from the stiggio/stigg-sdk monorepo to the public npm registry. No API change.
2026-03-24
Negative credit balances
  • Added: credit widgets handle overdraft. CreditBalance shows a negative balance in red, CreditUtilization shows a red progress bar and a negative balance label, and CreditGrants shows the OVERDRAFT grant type and the DEPLETED and VOIDED statuses.
  • Fixed: the EXPIRED grant status is shown in gray, and the RECURRING grant type now has a label.
2026-03-22
  • Added: the Paywall shows a credit entitlement’s dependency feature units, for example “100 credits / seat”.
2026-03-19
  • Added: resetBillingPeriod prop on the Checkout widget, to reset the billing cycle anchor when the subscription changes.
  • Changed: for plans with recurring credit charges, Checkout and its preview default to no proration and a billing cycle anchor of now, for subscription changes only.
2026-03-18
  • Changed: credit charges in the Paywall are shown as “per month” or “per year”, using the price’s billing period for credit charges and the entitlement’s cadence for package credit entitlements.
2026-03-18
  • Billing address collected via the Checkout widget is now stored on the Stripe Customer object (previously it was stored only as part of the payment method details).
  • Billing address entered in the Checkout widget is now automatically reflected in generated invoices.
2026-03-17
Breaking changes:
  • Removed useCreditBalance hook — use useCreditEntitlement instead
  • Removed showSymbol prop from CreditBalance and CreditUtilization widgets (no replacement)
  • onAddCredits callback now receives CreditEntitlement instead of CreditBalanceData
New:
  • Added useCreditEntitlement hook — synchronous, reads from the SDK’s local cache with no extra API call. Returns currentBalance, totalConsumed, totalGranted, and currency.
2026-03-08
  • Fixed: credit-based prices are no longer listed as charges in the Checkout widget.
2026-03-04
  • Fixed: the Checkout success animation loads eagerly again.
2026-03-03
  • Fixed: decimal formatting of credit amounts.
2026-03-02
  • Improved: reduced the package’s bundle size in consuming apps by 37%.
2026-03-01
  • Changed: credit usage cards in the Customer Portal show the credit display name with its units, and the reset period when available.
2026-02-26
  • Added: credit entitlements in the Customer Portal.
2026-02-18
  • Added: credit widgets show when the credits next reset.
2026-02-18
  • Improved: SDK dependencies are now external, reducing the bundle size of consuming apps.
2026-02-18
  • Credit balance widget
    • Added: “Add credits” CTA button with onAddCredits callback for prompting customers to top up credits
    • Added: New CSS classes:
      • stigg-credit-balance-add-credits-button
      • stigg-credit-balance-add-credits-icon
  • Credit utilization widget
    • Added: “Add credits” CTA button with onAddCredits callback for prompting customers to top up credits
    • Added: New CSS classes:
      • stigg-credit-utilization-add-credits-button
      • stigg-credit-utilization-add-credits-icon
2026-02-17
  • Added: credit entitlements in the Paywall.
2026-02-26
  • Enhanced getCreditEntitlement to return currency information.
2026-01-12
  • Fixed: add-ons hidden from widgets that are already on the customer’s subscription are handled correctly in Checkout.
2026-01-05
  • Added: recurring credit grants in the credit widgets.
2025-12-31
  • Added support for overriding the default entitlements title via entitlementsTitle.
2025-12-28
  • Fixed: add-ons already on the current subscription are shown in Checkout.
2025-12-24
  • Added Tax ID collection support to Stripe checkout when enabled, including UI inputs, validation, preview handling, and end-to-end billing state propagation.
2026-01-24
  • Added: Auto-recharge Status Widget — displays current auto-recharge settings, recharge rules, and a progress bar tracking monthly spend against the spend limit.
  • Added: Auto-recharge Configuration Widget — allows customers to toggle auto-recharge, adjust low-balance thresholds, set target top-up amounts, and configure monthly spending caps.
2025-12-11
  • Added class stigg-checkout-summary-container for configuring a custom min-width for the checkout summary container.
2025-12-08
  • Changed: the Checkout summary’s next billing caption is now empty by default and can be customized with the nextBillingCaption text override.
2025-12-03
  • Fixed checkout layout jumping on medium screens and improved spacing for add-ons.
2025-11-30
  • Security: upgraded form-data to 3.0.4.
2025-11-23
  • Improved package performance and reduced download size.
2025-11-20
  • Improved add-on checkout layout and conditional rendering.
  • Hidden quantity input when only a single instance is allowed.
  • Added auto-focus and select behavior to quantity field edits.
2025-11-17
  • Added the ability to pass the skeletonPlanCount parameter to the Paywall component to customize the number of columns on the skeleton.
  • Added a way to disable the Stripe script so the widget no longer loads js.stripe.com when Stripe isn’t used.
2025-10-30
  • Added pagination to credit grants table widget.
2025-10-26
  • Fixed: type checking of the published package and an export issue.
2025-10-26
  • Switched watermark control to the new showWatermark entitlement.
2025-10-20
  • Fixed console warning.
2025-10-20
  • Checkout widget
    • Changed the view of checkout summary when only annual plan available.
2025-10-12
  • Fixed type error.
2025-10-06
  • Checkout widget
    • Added: Callbacks onBeforeStepChange, onAddonChange, and onBillableFeatureChange for validation and step gating.
2025-10-05
  • Changed: in Checkout, an add-on whose billing period doesn’t match the selected plan’s is shown as disabled.
2025-10-05
  • Changed: add-ons hidden from widgets are no longer shown in Checkout.
2025-09-28
  • Fixed: the credits usage chart shows currency units.
2025-09-28
  • Fixed: the Customer Portal no longer shows usage widgets for entitlements with a usage limit of 0, and keeps entitlements with no usage limit.
2025-09-23
  • ⚠️ Changed: the package is now published as an ES module with a CommonJS build and an exports map (dist/react-sdk.esm.js, dist/react-sdk.cjs.js). Imports from paths inside dist are no longer supported.
2025-09-09
2025-09-08
  • Checkout widget
    • Added: Support for integration with Zuora
2025-09-01
  • Added: AccessDeniedReason.Revoked for determining when an entitlement has been explicitly revoked.
2025-08-24
  • Fixed: the Paywall hides the add-ons section when no add-ons are visible.
2025-07-30
  • Added: useEnumEntitlement hook and EnumEntitlementGuard component.
2025-07-30
  • Added: enum entitlement values are shown in the Paywall.
2025-07-03
  • Pricing table
    • Added: visibility for compatible add-ons under each plan
2025-07-01
  • Fixed: error was thrown when using the Stigg React SDK using server-side rendering (SSR)
2025-04-24
  • Added: each entitlement row in the Paywall has a per-feature CSS class, stigg-entitlement-<featureId>.
2025-02-27
  • Pricing table
    • Added: CurrentSubscriptionOverrideFntype to support for overriding the current subscription in the paywall.
    • Bug fixes
2025-02-20
  • Bug fixes
2025-02-03
  • Checkout widget
    • Added: New CSS classes (see here):
      • stigg-checkout-summary-captions
      • stigg-checkout-summary-captions-remaining-credits
      • stigg-checkout-summary-captions-scheduled-updates
      • stigg-checkout-summary-captions-next-billing
2025-01-16
  • Bug fixes
2025-01-14
  • Fixed: price amounts with decimal points now always appear with 2 decimal points (i.e. $23.1 will appear as $23.10).
2025-01-12
2024-12-17
  • Added: GetUsageHistoryV2
  • ⚠️ Deprecated: GetUsageHistory(please use GetUsageHistoryV2 instead)
  • Changed:
    • Input Object:
      • customerRefId renamed to customerId
      • resourceRefId renamed to resourceId
      • featureRefId renamed to featureId
      • resetPeriod removed
      • yearlyResetPeriodConfiguration removed
      • monthlyResetPeriodConfiguration removed
      • weeklyResetPeriodConfiguration removed
    • Output Object
      • startDate removed
      • endDate removed
      • usageMeasurements[i].date renamed to series[0].point[i].timestamp
      • usageMeasurements[i].value renamed to series[0].point[i].value
      • usageMeasurements[i].isResetPoint renamed to series[0].point[i].isResetPoint
        • Old Value: true if and only if usage was reset due to periodic reset.
        • New Value: true if and only if usage was reset due to periodic reset or due to a plan transition.
      • groups[i].groupInfo[j].key renamed to series[i].tags[j].key
      • groups[i].groupInfo[j].value renamed to series[i].tags[j].value
      • groups[i].usageMeasurements[j].date renamed to series[i].point[j].timestamp
      • groups[i].usageMeasurements[j].value renamed to series[i].point[j].value
      • groups[i].usageMeasurements[j].isResetPoint renamed to series[i].point[j].isResetPoint
        • Old Value: true if and only if usage was reset due to periodic reset.
        • New Value: true if and only if usage was reset due to periodic reset or due to a plan transition.
2024-12-08
  • Added: ability to override prices when there’s a scheduled update in place (currently without widgets)
2024-11-28
  • Customer portal widget
    • Fixed: Block size is not displayed in Subscription section
2024-10-29
  • Checkout widget
    • Added: responsive layout for mobile
  • Customer portal widget
    • Added: responsive layout for mobile
2024-10-28
  • Checkout widget
    • Fixed: stair-step pricing values are now formatted using commas (,)
  • Pricing table widget
    • Fixed: stair-step pricing values are now formatted using commas (,)
2024-10-10
  • Checkout widget
    • Added: Ability to skip steps
    • Added: New CSS classes
      • stigg-checkout-progress-container
      • stigg-checkout-summary-plan-title-container
      • stigg-checkout-summary-usage-charges-container
      • stigg-checkout-summary-base-charges-container
2024-06-20
  • Pricing table widget
    • Added: support for yearly reset period
2024-06-20
  • Fixed: custom CSS not reflected in Checkout Widget
2024-06-20
  • Fixed: custom CSS not reflected in Customer Portal Widget
2024-04-02
  • Fixed: package pricing with a block size in the Checkout widget.
2024-04-01
  • Added: the Paywall formats prices with a block size.
  • Improved: the Paywall title when a plan has no entitlements.
2024-02-08
  • Checkout widget
    • Added: price breakdown in tiered pricing
2024-02-08
  • Changed: the Checkout summary breakdown is shown on the right side.
2024-02-06
  • Fixed: scrolling no longer changes the value of number inputs.
2024-02-05
  • Added: filterEntitlements callback on the Customer Portal, to choose which entitlements appear in the usage section.
2024-02-05
  • Customer portal widget
    • Added: stigg-entitlement-usage class to allow hiding entitlements