Game Pass licenses in client license checks
Game Pass entitlements can’t be detected from the game client. When a user is entitled to your title through Game Pass, XStoreQueryGameLicenseAsync returns a license withisActive = true, the same as a direct purchase. The XStoreGameLicense struct doesn’t include a field that identifies how the license was acquired.
To record how users acquired your title, for example for telemetry, send the user’s identity from your client to your own service. Your service then calls the publisherQuery API and checks acquisitionType. A value of Recurring indicates a Game Pass entitlement, and Single indicates direct ownership.
Response data behavior for authorized and unauthorized publishers
If your publisher isn’t authorized, Game Pass-entitled items appear as directly owned entitlements. For example,acquisitionType appears as Single, and Game Pass ProductIds don’t appear in satisfiedByProductIds.
For authorized publishers, only active Game Pass subscriptions are returned. If the user’s Game Pass subscription is canceled or ends, further queries will no longer contain the Game Pass information. Also, the EndDate is normalized to max value so it can’t be used for subscription end detection.
Game Pass release day delay in server-to-server entitlement results
When titles or add-ons go live in Game Pass, expect a delay between client availability andpublisherQuery visibility. This behavior is due to different cache refresh intervals across store systems. In practice, local licensing usually updates first, and publisherQuery can lag by two to three hours.
Direct checks for Game Pass ProductIds aren’t affected; the delay is mainly for items granted via satisfying entitlements.
Testing Game Pass subscriptions in your development sandbox
The XBOX Game Pass tiers should be enabled and accessible by searching for them in the XBOX Store app within your development sandbox. XBOX test accounts are created with a test credit card and will be able to subscribe to the Game Pass tiers in your sandbox. If you are unable to find the Game Pass tiers in your sandbox, contact your Developer Partner Manager or Microsoft Contact for assistance.Game Pass subscription status will not carry over between sandboxes. When adding Game Pass to a test account in a sandbox, do not move that test account into another sandbox for Game Pass or other commerce related testing or debugging.
Requesting Game Pass subscription status
To request the user’s Game Pass subscription status, add the corresponding ProductIds of the subscription tiers you’re authorized to view into the query request’s productSkuIds list (see table).
If the user has a subscription in the tier you requested, the query response includes an item with the ProductId of the corresponding Game Pass subscription tier.
Behavior requesting tiers included in higher tiers
Some Game Pass tiers are included when a subscriber has a higher tier. Any of your authorized tiers that are included in higher tiers are returned when the user is subscribed to the higher tier. Example: Our publisher is authorized for XBOX Game Pass Essential. The user has XBOX Game Pass Ultimate and when you query for all Game Pass ProductIds, publisherQuery only returns a result for XBOX Game Pass Essential. If your publisher has access to view any of the other tiers, those tiers would also be returned.XBOX Game Pass (Starter Edition) is an exception to inheritance and is a stand-alone tier. It isn’t included in any of the other tiers.
Granting in-game perks for Game Pass subscribers
We recommend requesting access to the lowest Game Pass tier needed to grant in-game perks and benefits to subscribers. Example: You’re granting an in-game reward to all Game Pass subscribers on the console. You only need access to XBOX Game Pass Essential (CFQ7TTC0K5DJ) because Premium and Ultimate include Essential.Detecting products entitled through a Game Pass subscription with satisfiedByProductIds
After authorization, identify Game Pass-derived entitlements by checking thesatisfiedByProductIds and acquisitionType values. A Game Pass-based entitlement has an acquisitionType of Recurring and satisfiedByProductIds will include the ProductID of the highest Game Pass tier you are authorized for.
If you’re using the excludeDuplicates filter option, the Game Pass related entitlement is filtered out if the user owns the title directly.
satisfiedByProductIds of an item for Game Pass productIDs will tell you if the item is entitled through Game Pass, but is not sufficient to determine if the user is a Game Pass member. Therefore, when checking a user’s Game Pass subscription status it is best to include the Game Pass ProductId values in the productSkuIds of your request.
Duplicate item example with XBOX Game Pass
If the user has both direct ownership and Game Pass entitlement for the same product, two entries can appear whenexcludeDuplicates is false. When excludeDuplicates is true, the direct-purchase item is returned.
For full duplicate-resolution rules and source-priority behavior, see Understanding duplicate items in the response.
