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

# Détecter l'accès à un abonnement XBOX Game Pass à partir de votre service

> Détectez l'état de l'abonnement XBOX Game Pass à partir de votre service à l'aide de l'API publisherQuery de collections, et accordez des récompenses aux abonnés actifs.

Si votre titre participe à Game Pass, votre service peut utiliser l'[API collections.mp.microsoft.com/v9.0/collections/publisherQuery](/fr-CA/reference/microsoft-store-apis/xstore-v9-query-for-products) pour vérifier l'état d'abonné actif afin d'accorder des récompenses et des avantages dans le jeu. Avant d'interroger l'état de Game Pass, votre éditeur doit être autorisé pour les niveaux que vous souhaitez vérifier. Demandez cette autorisation par l'entremise de votre gestionnaire de partenaires développeurs ou de votre contact Microsoft.

## Licences Game Pass dans les vérifications de licence côté client

Les droits d'utilisation Game Pass ne peuvent pas être détectés à partir du client de jeu. Lorsqu'un utilisateur a droit à votre titre par l'entremise de Game Pass, [XStoreQueryGameLicenseAsync](/fr-CA/reference/system/xstore/functions/xstorequerygamelicenseasync) retourne une licence avec `isActive = true`, comme pour un achat direct. La structure [XStoreGameLicense](/fr-CA/reference/system/xstore/structs/xstoregamelicense) ne comprend aucun champ indiquant comment la licence a été acquise.

Pour consigner la façon dont les utilisateurs ont acquis votre titre, par exemple pour la télémétrie, envoyez l'identité de l'utilisateur de votre client à votre propre service. Votre service appelle ensuite l'API publisherQuery et vérifie `acquisitionType`. Une valeur `Recurring` indique un droit d'utilisation Game Pass, et `Single` indique une possession directe.

## Comportement des données de réponse pour les éditeurs autorisés et non autorisés

Si votre éditeur n'est pas autorisé, les articles auxquels l'utilisateur a droit par Game Pass apparaissent comme des droits d'utilisation possédés directement. Par exemple, `acquisitionType` s'affiche comme `Single`, et les ProductIds de Game Pass n'apparaissent pas dans `satisfiedByProductIds`.

Pour les éditeurs autorisés, seuls les abonnements Game Pass actifs sont retournés. Si l'abonnement Game Pass de l'utilisateur est annulé ou prend fin, les requêtes subséquentes ne contiendront plus les informations Game Pass. De plus, `EndDate` est normalisé à la valeur maximale; il ne peut donc pas être utilisé pour détecter la fin d'un abonnement.

## Délai le jour de la sortie dans Game Pass dans les résultats de droits d'utilisation de serveur à serveur

Lorsque des titres ou des extensions deviennent disponibles dans Game Pass, prévoyez un délai entre la disponibilité côté client et la visibilité dans `publisherQuery`. Ce comportement est dû aux intervalles d'actualisation des caches qui diffèrent entre les systèmes du Store. En pratique, les licences locales sont habituellement mises à jour en premier, et publisherQuery peut accuser un retard de deux à trois heures.

Les vérifications directes des ProductIds de Game Pass ne sont pas touchées; le délai concerne principalement les articles accordés au moyen de droits d'utilisation satisfaisants.

## Test des abonnements Game Pass dans votre sandbox de développement

Les niveaux XBOX Game Pass doivent être activés et accessibles lorsque vous les recherchez dans l'application XBOX Store dans votre sandbox de développement. Les comptes de test XBOX sont créés avec une carte de crédit de test et peuvent s'abonner aux niveaux Game Pass dans votre sandbox. Si vous ne trouvez pas les niveaux Game Pass dans votre sandbox, communiquez avec votre gestionnaire de partenaires développeurs ou votre contact Microsoft pour obtenir de l'aide.

<Note>
  L'état de l'abonnement Game Pass n'est pas transféré d'un sandbox à l'autre. Après avoir ajouté Game Pass à un compte de test dans un sandbox, ne déplacez pas ce compte de test vers un autre sandbox pour des tests ou du débogage liés à Game Pass ou au commerce.
</Note>

## Demande de l'état de l'abonnement Game Pass

Pour demander l'état de l'abonnement Game Pass de l'utilisateur, ajoutez les ProductIds correspondant aux niveaux d'abonnement que vous êtes autorisé à consulter dans la liste productSkuIds de la requête (voir le tableau).

| Niveau d'abonnement | ProductID |
| - | - |
| XBOX Game Pass for Console (retiré) | CFQ7TTC0K6L8 |
| XBOX Game Pass (Starter Edition) | CFQ7TTC10QFD |
| PC Game Pass | CFQ7TTC0KGQ8 |
| XBOX Game Pass Essential | CFQ7TTC0K5DJ |
| XBOX Game Pass Premium | CFQ7TTC0P85B |
| XBOX Game Pass Ultimate | CFQ7TTC0KHS0 |

Si l'utilisateur possède un abonnement au niveau demandé, la réponse à la requête comprend un article portant le ProductId du niveau d'abonnement Game Pass correspondant.

### Comportement lors de la demande de niveaux inclus dans des niveaux supérieurs

Certains niveaux Game Pass sont inclus lorsqu'un abonné possède un niveau supérieur. Tous vos niveaux autorisés qui sont inclus dans des niveaux supérieurs sont retournés lorsque l'utilisateur est abonné au niveau supérieur.

Exemple : votre éditeur est autorisé pour XBOX Game Pass Essential. L'utilisateur possède XBOX Game Pass Ultimate. Lorsque vous interrogez tous les ProductIds de Game Pass, publisherQuery retourne un résultat uniquement pour XBOX Game Pass Essential. Si votre éditeur a accès à d'autres niveaux, publisherQuery retourne également ces niveaux.

<Note>
  XBOX Game Pass (Starter Edition) fait exception à l'héritage et constitue un niveau autonome. Il n'est inclus dans aucun des autres niveaux.
</Note>

### Octroi d'avantages dans le jeu aux abonnés Game Pass

Nous recommandons de demander l'accès au niveau Game Pass le plus bas nécessaire pour accorder des avantages dans le jeu aux abonnés.

Exemple : vous accordez une récompense dans le jeu à tous les abonnés Game Pass sur console. Vous n'avez besoin que de l'accès à XBOX Game Pass Essential (CFQ7TTC0K5DJ), car Premium et Ultimate incluent Essential.

### Détection des produits accordés par un abonnement Game Pass avec satisfiedByProductIds

Après l'autorisation, déterminez les droits d'utilisation issus de Game Pass en vérifiant les valeurs `satisfiedByProductIds` et `acquisitionType`. Un droit d'utilisation basé sur Game Pass a un `acquisitionType` de `Recurring`, et `satisfiedByProductIds` comprend le ProductID du niveau Game Pass le plus élevé pour lequel vous êtes autorisé.

<Note>
  Si vous utilisez l'option de filtre excludeDuplicates, le droit d'utilisation lié à Game Pass est exclu si l'utilisateur possède directement le titre.
</Note>

La vérification des productIDs de Game Pass dans `satisfiedByProductIds` d'un article vous indique si l'article est accordé par Game Pass, mais cela ne suffit pas pour déterminer si l'utilisateur est membre de Game Pass. Pour vérifier l'état de l'abonnement Game Pass d'un utilisateur, incluez les valeurs ProductId de Game Pass dans les `productSkuIds` de votre requête.

### Exemple d'article en double avec XBOX Game Pass

Si l'utilisateur possède à la fois une possession directe et un droit d'utilisation Game Pass pour le même produit, deux entrées peuvent apparaître lorsque `excludeDuplicates` est `false`. Lorsque `excludeDuplicates` est `true`, l'article acheté directement est retourné.

Pour connaître toutes les règles de résolution des doublons et le comportement de priorité des sources, consultez [Comprendre les articles en double dans la réponse](/fr-CA/publishing/xstore-commerce/xstore-query-entitlements#understanding-duplicate-items-in-the-response).

### Exemple de requête pour l'état de l'abonnement XBOX Game Pass Essential

```json theme={null}
POST https://collections.mp.microsoft.com/v9.0/collections/publisherQuery HTTP/1.1
{authorization header}
User-Agent: {identifier string of your service}
Content-Type: application/json;
Host: collections.mp.microsoft.com

{
  "maxPageSize": 100,
  "excludeDuplicates": true,
  "validityType": "All",
  "productSkuIds": [
    {"productId": "CFQ7TTC0K5DJ"}
  ],
  "beneficiaries": [
    {
      "identitytype": "b2b",
      "identityValue": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjYxNTI2OEI4N0YwNEFDQzIzRDdCQ0E2M...",
      "localTicketReference": ""
    }
  ],
  "sbx":"RETAIL"
}
```

### Exemple de réponse pour XBOX Game Pass Essential

```json theme={null}
HTTP/1.1 200 OK
Date: Mon, 18 May 2026 18:40:32 GMT
Content-Type: application/json; charset=utf-8
Server: Kestrel
Content-Length: 602
MS-CorrelationId: 5ec99421-7fa8-457e-87c1-edf16297528e
MS-RequestId: a604aca2-f60d-4de5-993f-125a57dcabdd
MS-CV: pjtLxeR5BUOY5n.0
X-Content-Type-Options: nosniff

{
 "items": [
  {
   "acquiredDate": "2026-05-15T18:29:24.2131463+00:00",
   "acquisitionType": "Recurring",
   "endDate": "9999-12-31T23:59:59.9999999+00:00",
   "id": "a1702e2c6cff4e0095b3c51d06d9fac9",
   "modifiedDate": "2026-05-15T18:29:24.2153924+00:00",
   "productId": "CFQ7TTC0K5DJ",
   "productKind": "Pass",
   "quantity": 1,
   "recurrenceData": "mdr:0:9ee54c66dc2a49ca81bd2c3eaf148826:a118bfe9-8175-4407-9d14-b2be4af30acd",
   "satisfiedByProductIds": [],
   "skuId": "",
   "startDate": "2026-05-15T00:00:00+00:00",
   "status": "Active",
   "tags": [],
   "transactionId": "a118bfe9-8175-4407-9d14-b2be4af30acd",
   "trialData": {
    "isInTrialPeriod": false,
    "isTrial": false
   }
  }
 ]
}
```

### Exemple de requête pour un jeu accordé par un abonnement Game Pass Essential

```json theme={null}
POST https://collections.mp.microsoft.com/v9.0/collections/publisherQuery HTTP/1.1
{authorization header}
User-Agent: {identifier string of your service}
Content-Type: application/json;
Host: collections.mp.microsoft.com

{
  "maxPageSize": 100,
  "excludeDuplicates": true,
  "validityType": "All",
  "productSkuIds": [
    {"productId": "9NTL0QDWZ4FS"}
  ],
  "beneficiaries": [
    {
      "identitytype": "b2b",
      "identityValue": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjYxNTI2OEI4N0YwNEFDQzIzRDdCQ0E2M...",
      "localTicketReference": ""
    }
  ],
  "sbx":"RETAIL"
}
```

### Exemple de réponse pour un jeu accordé par un abonnement Game Pass Essential

```json theme={null}
HTTP/1.1 200 OK
Date: Mon, 18 May 2026 18:41:18 GMT
Content-Type: application/json; charset=utf-8
Server: Kestrel
Content-Length: 602
MS-CorrelationId: d4c6dd08-a80a-4098-9433-757864d3716d
MS-RequestId: 6de32c62-9690-46dc-81c3-d1fef9df10a5
MS-CV: IvL+PCZ9Jk2+C4Xo.0
X-Content-Type-Options: nosniff

{
 "items": [
  {
   "acquiredDate": "2026-05-15T18:29:24.2131463+00:00",
   "acquisitionType": "Recurring",
   "endDate": "9999-12-31T23:59:59.9999999+00:00",
   "id": "a1702e2c6cff4e0095b3c51d06d9fac9",
   "modifiedDate": "2026-05-15T18:29:24.2153924+00:00",
   "productId": "9NTL0QDWZ4FS",
   "productKind": "Game",
   "quantity": 1,
   "satisfiedByProductIds": [
     "CFQ7TTC0K5DJ"  
   ],
   "skuId": "0010",
   "startDate": "2026-05-15T00:00:00+00:00",
   "status": "Active",
   "tags": [],
   "transactionId": "a118bfe9-8175-4407-9d14-b2be4af30acd",
   "trialData": {
    "isInTrialPeriod": false,
    "isTrial": false
   }
  }
 ]
}
```

## Voir aussi

[Vue d'ensemble du commerce](/fr-CA/publishing/xstore-commerce/xstore-commerce-overview)

[Référence de l'API XStore](/fr-CA/reference/system/xstore/xstore_members)


## Related topics

- [Intégration des partenaires XBOX pour l'accès au GDK](/fr-CA/home/onboarding.md)
- [Intégration des partenaires XBOX : accès et publication](/fr/home/onboarding.md)
- [Documentation de développement de jeux XBOX](/fr-CA/index.md)
- [Compiler et exécuter votre premier titre console GDKX](/fr-CA/home/build-first-title/first-console-title-walkthrough.md)
- [Mises à niveau de compte](/fr-CA/services/playfab/pricing/account-upgrades.md)
