Skip to main content

Manage subscriptions

Beta

Subscriptions are in beta. The API, payload shapes, and this Developer Console UI may change.

Jest allows you to sell recurring subscriptions to your game using the payments SDK methods. Subscriptions are a good fit for ad removal, premium tiers, or recurring access to additional content.

Subscriptions are configured in the Developer Console and then retrieved in your game using JestSDK.payments.getSubscriptions().

To manage subscriptions, open the Developer Console and navigate to:

Games > Manage Game > Subscriptions

How subscriptions work

Each subscription represents an ongoing entitlement granted to a player's wallet for as long as billing succeeds.

You define:

  • SKU – A unique identifier used in your game code.
  • Name – The display name shown during checkout and in your game's UI.
  • Description (optional) – A short description shown during checkout.
  • Price – The recurring cost in USD.
  • Billing period – How often the player is billed (currently monthly).
  • Free trial (optional) – A trial length in days (up to 30). Leave blank or 0 for no trial. See Free trials.

When your game calls:

  • getSubscriptions() – The configured subscriptions are returned, each annotated with the player's current entitlement status (active or inactive).
  • beginSubscription({ subscriptionSku }) – The player can subscribe to a specific SKU.

For details on the full subscription lifecycle (checkout, entitlement, recovery) and signed-token verification, see the Subscriptions SDK documentation.

Add a subscription

To create a new subscription:

  1. Click Create Subscription.
  2. Enter:
    • SKU (required)
    • Name (required)
    • Price in USD (required)
    • Billing period (required) – currently monthly
    • Description (optional)
    • Free trial in days (optional) – up to 30; leave blank or 0 for no trial
  3. Click Create Subscription.
note

The SKU cannot be changed after creation. If you need to modify a SKU, archive the existing subscription and create a new one.

Edit a subscription

To update a subscription:

  1. Click Edit next to the subscription.
  2. Update the name, description, or free-trial length.
  3. Save your changes.
note

Price and billing-period changes are not applied to existing subscribers. To change pricing, archive the existing subscription and create a new one at the new price; existing subscribers continue to be billed at the price they signed up for until they cancel or it expires.

note

Free-trial changes apply to future checkouts only. Editing or removing the trial length does not affect players who are already subscribed or currently mid-trial.

Free trials

You can offer a free trial on any subscription by setting a trial length of up to 30 days when you create or edit it. Leave it blank or set it to 0 for no trial.

How trials behave:

  • First-time only. A trial is offered only to wallets that have never subscribed to that product before. A player who has subscribed to it previously — even if their subscription has since lapsed — is billed immediately with no trial.
  • The entitlement is active during the trial. From your game's perspective the subscription is "active" for the whole trial, so the player has full access. See your SDK's free-trials reference (HTML5, Unity, Godot) for how to read entitlement.
  • Billing starts automatically at trial end. The player provides a payment method at checkout, and the platform charges the subscription price when the trial ends. Normal recurring billing continues from there.
  • Cancelling during the trial. If the player cancels before the trial ends, they keep the entitlement until the trial period is over and are never charged.

Archive a subscription

To remove a subscription from sale:

  1. Click Archive next to the subscription.

Archived subscriptions:

  • Are no longer returned by getSubscriptions() to players who do not currently have an active entitlement for them.
  • Cannot be newly subscribed to.
  • Continue to be returned (with status: "active") to existing subscribers until their entitlement expires, so your game can keep honoring the entitlement they paid for.

If your game attempts to start checkout for an archived or invalid SKU, beginSubscription will return an invalid_subscription error. See the Subscriptions SDK documentation for error details.

Testing subscriptions

When using a sandbox user, the player still has to complete the Stripe checkout flow, but the order total is $0 and no real charge is made. Once checkout is completed, the entitlement behaves as if the player had subscribed normally, so you can test both the subscribed and unsubscribed flows end-to-end without making real payments.

If the subscription has a free trial, a sandbox user receives it on their first subscribe just like a real player (at $0, with no payment method required), so you can exercise the trial flow too.

Guests cannot subscribe. If your game targets the beginSubscription call at a guest player, the platform automatically shows a signup gate prompting the player to register, then returns a guest_not_allowed error. Your game does not need to build its own registration prompt — just handle the error gracefully.

See Subscriptions for details on entitlement recovery and best practices.