> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stigg.io/llms.txt
> Use this file to discover all available pages before exploring further.

# React SDK

<Update label="10.5.0" description="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.
</Update>

<Update label="10.1.1" description="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.
</Update>

<Update label="10.0.0" description="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.
</Update>

<Update label="9.0.0" description="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:

  | Change                                                                                                              | Migration                                                                                    |
  | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
  | `entitlementsUpdated` event payload changed from `Map<string, CachedEntitlement>` to `CustomerEntitlementsResultV2` | Update listeners to iterate `.entitlements` (an `EntitlementV2[]` array) instead of a `Map`. |
  | `EntitlementsState` type removed (re-exported via `export *`)                                                       | Replace imports with `CustomerEntitlementsResult`.                                           |
  | `useNumericEntitlement` hook called on a metered feature now returns a `FeatureTypeMismatch` fallback               | Use `useMeteredEntitlement` for metered features.                                            |
  | `CreditEntitlementCurrency` named export removed (re-exported via wildcard)                                         | Use `CreditEntitlement['currency']` inline type instead. Shape is unchanged.                 |
</Update>

<Update label="8.1.0" description="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.
</Update>

<Update label="8.0.0" description="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`.
</Update>

<Update label="7.22.1" description="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`
</Update>

<Update label="7.19.0" description="2026-02-26">
  * Enhanced `getCreditEntitlement` to return currency information.
</Update>

<Update label="7.17.0" description="2025-12-31">
  * Added support for overriding the default entitlements title via `entitlementsTitle`.
</Update>

<Update label="7.16.0" description="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.
</Update>

<Update label="7.15.1" description="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.
</Update>

<Update label="7.14.0" description="2025-12-11">
  * Added class `stigg-checkout-summary-container` for configuring a custom `min-width` for the checkout summary container.
</Update>

<Update label="7.120.2" description="2025-12-03">
  * Fixed checkout layout jumping on medium screens and improved spacing for add-ons.
</Update>

<Update label="7.120.0" description="2025-11-23">
  * Improved package performance and reduced download size.
</Update>

<Update label="7.100.0" description="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.
</Update>

<Update label="7.90.0" description="2025-11-16">
  * 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.
</Update>

<Update label="7.80.0" description="2025-10-30">
  * Added pagination to credit grants table widget.
</Update>

<Update label="7.60.0" description="2025-10-26">
  * Switched watermark control to the new `showWatermark` entitlement.
</Update>

<Update label="7.50.1" description="2025-10-20">
  * Fixed console warning.
</Update>

<Update label="7.50.0" description="2025-10-20">
  * Checkout widget
    * Changed the view of checkout summary when only annual plan available.
</Update>

<Update label="7.42.0" description="2025-10-12">
  * Fixed type error.
</Update>

<Update label="7.40.0" description="2025-10-08">
  * Checkout widget
    * Added: Callbacks `onBeforeStepChange`, `onAddonChange`, and `onBillableFeatureChange` for validation and step gating.
</Update>

<Update label="6.11.0" description="2025-09-09">
  * Updated SDK to prevent dependency on [compromised NPM packages](https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised)
</Update>

<Update label="6.10.0" description="2025-09-08">
  * Checkout widget
    * Added: Support for integration with Zuora
</Update>

<Update label="6.8.0" description="2025-09-01">
  * Added: `AccessDeniedReason.Revoked` for determining when an entitlement has been explicitly revoked.
</Update>

<Update label="6.0.0" description="2025-07-03">
  * Pricing table
    * Added: visibility for compatible add-ons under each plan
        <img src="https://mintcdn.com/stigg/ZxOWrMSJHHzgrsn0/images/addons_in_pricing_table.png?fit=max&auto=format&n=ZxOWrMSJHHzgrsn0&q=85&s=3a34a2aae0800a60f61724b65eccd372" alt="" width="2108" height="1604" data-path="images/addons_in_pricing_table.png" />
</Update>

<Update label="5.36.0" description="2025-07-01">
  * Fixed: error was thrown when using the Stigg React SDK using server-side rendering (SSR)
</Update>

<Update label="5.30.1" description="2025-02-27">
  * Pricing table
    * Added: `CurrentSubscriptionOverrideFn`type to support for overriding the current subscription in the paywall.
    * Bug fixes
</Update>

<Update label="5.28.4" description="2025-02-20">
  * Bug fixes
</Update>

<Update label="5.28.3" description="2025-02-03">
  * Checkout widget
    * Added: New CSS classes (see [here](/documentation/snap-in-widgets/checkout#custom-css)):
      * `stigg-checkout-summary-captions`
      * `stigg-checkout-summary-captions-remaining-credits`
      * `stigg-checkout-summary-captions-scheduled-updates`
      * `stigg-checkout-summary-captions-next-billing`
</Update>

<Update label="5.28.2" description="2025-01-16">
  * Bug fixes
</Update>

<Update label="5.28.1" description="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`).
</Update>

<Update label="5.28.0" description="2025-01-12">
  * Added: [custom React hooks](/api-and-sdks/integration/frontend/react#custom-hooks)
    * useStiggContext
    * useBooleanEntitlement
    * useNumericEntitlement
    * useMeteredEntitlement
    * useActiveSubscriptions
    * useCustomerPortal

  * Added: [entitlement guard components](/api-and-sdks/integration/frontend/react#entitlement-guard-components)
    * BooleanEntitlementGuard
    * NumericEntitlementGuard
    * MeteredEntitlementGuard

  * Added: [support for offline mode](/api-and-sdks/integration/frontend/react#offline-mode)
</Update>

<Update label="5.26.0" description="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.
</Update>

<Update label="5.25.0" description="2024-12-08">
  * Added: ability to override prices when there's a scheduled update in place (currently without widgets)
</Update>

<Update label="5.24.1" description="2024-11-28">
  * Customer portal widget
    * Fixed: Block size is not displayed in Subscription section
</Update>

<Update label="5.24.0" description="2024-10-29">
  * Checkout widget
    * Added: responsive layout for mobile

  * Customer portal widget
    * Added: responsive layout for mobile
</Update>

<Update label="5.23.1" description="2024-10-28">
  * Checkout widget
    * Fixed: stair-step pricing values are now formatted using commas (,)
        <img src="https://mintcdn.com/stigg/zZAY_sXPTSVMcwio/images/docs/c2f7d7f8e7f4162a7743a0455cf720433f9e9b97e6134cd93b809595f58e0dfb-Screenshot_2024-10-28_at_11.22.07.png?fit=max&auto=format&n=zZAY_sXPTSVMcwio&q=85&s=d843eba58a50400e6c7b809792789650" alt="" width="1932" height="1194" data-path="images/docs/c2f7d7f8e7f4162a7743a0455cf720433f9e9b97e6134cd93b809595f58e0dfb-Screenshot_2024-10-28_at_11.22.07.png" />

  * Pricing table widget
    * Fixed: stair-step pricing values are now formatted using commas (,)
        <img src="https://mintcdn.com/stigg/rbfzdbhZ6y5pB9n-/images/docs/931f51b405aedec85554614deb7a73ed375265227177a8d035252a19d9a99001-Screenshot_2024-10-28_at_11.22.24.png?fit=max&auto=format&n=rbfzdbhZ6y5pB9n-&q=85&s=680cc08a556402e295bc04617700303b" alt="" width="2050" height="1406" data-path="images/docs/931f51b405aedec85554614deb7a73ed375265227177a8d035252a19d9a99001-Screenshot_2024-10-28_at_11.22.24.png" />
</Update>

<Update label="5.23.0" description="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`
</Update>

<Update label="5.22.1" description="2024-06-20">
  * Pricing table widget
    * Added: support for yearly reset period
</Update>

<Update label="5.16.1" description="2024-06-20">
  * Fixed: custom CSS not reflected in Checkout Widget
</Update>

<Update label="5.15.1" description="2024-06-20">
  * Fixed: custom CSS not reflected in Customer Portal Widget
</Update>

<Update label="5.9.0" description="2024-02-08">
  * Checkout widget
    * Added: price breakdown in tiered pricing
</Update>

<Update label="5.5.1" description="2024-02-05">
  * Customer portal widget
    * Added: `stigg-entitlement-usage` class to allow hiding entitlements
</Update>
