Skip to main content
2026-09-02
Consistent entitlement fallbacks across the Node and JavaScript SDKsEntitlement fallbacks, misses and offline reads now behave the same way in both SDKs. Reads served from cache are unchanged, field for field — every change below affects a degraded read only: a configured fallback, a miss, a kind mismatch, offline mode, or a failed read.Unchanged: the typed reads (getMeteredEntitlement and friends) still treat “not in the subscription” as a real answer and ignore the configured fallback, while getEntitlement / getEntitlementV2 still answer from it.

Credit isFallback: telling “no data” from “not entitled”

isFallback on a credit read used to be true on every miss, so the flag never meant what it says. It now means only what the fallback strategy page already documents: the read never reached cached state.Consequence: a customer who simply has no entitlement to a currency now comes back with isFallback: false and a zeroed balance. Code that used isFallback alone to mean “we have no real data” renders that zero as though it were real.The check to migrate to:
A spent balance is deliberately not in that list: it comes back as a real entitlement carrying RequestedUsageExceedingLimit, and its numbers are the ones worth rendering — “0 / 100” and an offer to top up, not “no data”.If you use @stigg/react-sdk’s credit widgets, this is handled for you as of react-sdk 11.0.0 — see the React SDK changelog.
2026-06-25
Credit wallet soft limit
  • Added: hasSoftLimit field on CreditEntitlement. When a credit entitlement is configured as a soft limit, getEntitlement() 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. Credit-backed features inherit the wallet’s soft-limit so dependent feature reads stay consistent.
2026-04-01
Breaking changes — aligns entitlement types and evaluation behavior with @stigg/node-server-sdk:
2026-03-19
  • Added: billingCycleAnchor property when provisioning and updating subscriptions. Accepts SubscriptionBillingCycleAnchor.UNCHANGED (default) to keep the existing billing cycle anchor, or SubscriptionBillingCycleAnchor.NOW to reset it to the current timestamp.
2026-03-17
  • Deprecated: getCreditBalance() (please use getCreditEntitlement() instead). getCreditEntitlement() reads directly from the SDK’s local cache, significantly reducing latency and removing rate-limit concerns. It returns the same data: currentBalance, totalConsumed, totalGranted, and currency.
2026-03-17
  • Added: getCreditEntitlement() method for low-latency retrieval of customer credit balance.
  • Added: Support for provisioning subscriptions with variable recurring credit grant entitlements.
2026-02-26
  • Enhanced getCreditEntitlement to return currency information.
2026-01-24
  • Added: Support for configuring and managing credit auto-recharge settings, including trigger balance, target top-up amount, and monthly spend limit.
2025-12-07
  • Added support for subscriptions filter by resourceId and plan (planId/displayName).
2025-09-09
2025-09-01
  • Added: AccessDeniedReason.Revoked for determining when an entitlement has been explicitly revoked.
2025-06-26
  • Added: getSubscriptions endpoint that allows retrieving all of customers’ subscriptions
2025-02-19
  • Added: ability to determine the number of attempts that were made to collect payment for a generated invoice when Stigg is integrated with Stripe using the latestInvoice.attemptCount property of the getActiveSubscriptions() and getSubscription() endpoints
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
2024-11-21
  • Added: support for price localization in fixed fee coupons
2024-10-14
  • Added: ability to estimate the subscription cost when the payment of the subscription is delegated to a different customer using:
    • PreviewSubscription.payingCustomerId
    • EstimateSubscription.payingCustomerId
    • EstimateSubscriptionUpdate.payingCustomerId
2024-10-08
  • Added: ability to more easily determine the usage period of metered entitlements using:
    • MeteredEntitlement.usagePeriodStart
    • MeteredEntitlement.usagePeriodEnd
  • 🛑 Removed: MeteredEntitlement.nextResetDate
2024-06-20
  • Added: ability to get the list of active subscriptions from Edge using getActiveSubscriptionsList()
2024-06-20
  • Added: ability to get the details of a specific subscription using getSubscription()