> ## 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.

# Detectar o acesso à assinatura do XBOX Game Pass a partir do seu serviço

> Detecte o status da assinatura do XBOX Game Pass a partir do seu serviço usando a API publisherQuery de coleções e conceda recompensas aos assinantes ativos.

Se o seu título participa do Game Pass, seu serviço pode usar a [API collections.mp.microsoft.com/v9.0/collections/publisherQuery](/pt-BR/reference/microsoft-store-apis/xstore-v9-query-for-products) para verificar o status de assinante ativo e conceder recompensas e vantagens no jogo. Antes de consultar o status do Game Pass, seu editor precisa estar autorizado para os níveis que você deseja verificar. Solicite essa autorização por meio do seu Developer Partner Manager ou contato da Microsoft.

## Licenças do Game Pass nas verificações de licença do cliente

Os direitos do Game Pass não podem ser detectados pelo cliente do jogo. Quando um usuário tem direito ao seu título por meio do Game Pass, [XStoreQueryGameLicenseAsync](/pt-BR/reference/system/xstore/functions/xstorequerygamelicenseasync) retorna uma licença com `isActive = true`, da mesma forma que em uma compra direta. A struct [XStoreGameLicense](/pt-BR/reference/system/xstore/structs/xstoregamelicense) não inclui um campo que identifique como a licença foi adquirida.

Para registrar como os usuários adquiriram seu título, por exemplo, para telemetria, envie a identidade do usuário do seu cliente para o seu próprio serviço. Em seguida, seu serviço chama a API publisherQuery e verifica `acquisitionType`. Um valor `Recurring` indica um direito do Game Pass, e `Single` indica propriedade direta.

## Comportamento dos dados de resposta para editores autorizados e não autorizados

Se o seu editor não estiver autorizado, os itens com direito pelo Game Pass aparecem como direitos de propriedade direta. Por exemplo, `acquisitionType` aparece como `Single`, e os ProductIds do Game Pass não aparecem em `satisfiedByProductIds`.

Para editores autorizados, somente as assinaturas ativas do Game Pass são retornadas. Se a assinatura do Game Pass do usuário for cancelada ou terminar, as consultas posteriores não conterão mais as informações do Game Pass. Além disso, o `EndDate` é normalizado para o valor máximo, portanto não pode ser usado para detectar o término da assinatura.

## Atraso no dia de lançamento do Game Pass nos resultados de direitos de servidor para servidor

Quando títulos ou complementos entram no Game Pass, espere um atraso entre a disponibilidade no cliente e a visibilidade no `publisherQuery`. Esse comportamento se deve aos diferentes intervalos de atualização de cache entre os sistemas da loja. Na prática, o licenciamento local geralmente é atualizado primeiro, e o publisherQuery pode ficar atrasado de duas a três horas.

As verificações diretas de ProductIds do Game Pass não são afetadas; o atraso ocorre principalmente para itens concedidos por meio de direitos satisfeitos.

## Testando assinaturas do Game Pass na sua sandbox de desenvolvimento

Os níveis do XBOX Game Pass devem estar habilitados e acessíveis quando você os pesquisa no aplicativo XBOX Store na sua sandbox de desenvolvimento. As contas de teste do XBOX são criadas com um cartão de crédito de teste e podem assinar os níveis do Game Pass na sua sandbox. Se você não encontrar os níveis do Game Pass na sua sandbox, entre em contato com seu Developer Partner Manager ou contato da Microsoft para obter ajuda.

<Note>
  O status da assinatura do Game Pass não é transferido entre sandboxes. Depois de adicionar o Game Pass a uma conta de teste em uma sandbox, não mova essa conta de teste para outra sandbox para testes ou depuração do Game Pass ou de outros recursos relacionados ao comércio.
</Note>

## Solicitando o status da assinatura do Game Pass

Para solicitar o status da assinatura do Game Pass do usuário, adicione os ProductIds correspondentes dos níveis de assinatura que você está autorizado a visualizar à lista productSkuIds da solicitação de consulta (confira a tabela).

| Nível de assinatura | ProductID |
| - | - |
| XBOX Game Pass for Console (descontinuado) | 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 |

Se o usuário tiver uma assinatura no nível solicitado, a resposta da consulta incluirá um item com o ProductId do nível de assinatura do Game Pass correspondente.

### Comportamento ao solicitar níveis incluídos em níveis mais altos

Alguns níveis do Game Pass estão incluídos quando um assinante tem um nível mais alto. Todos os seus níveis autorizados que estão incluídos em níveis mais altos são retornados quando o usuário assina o nível mais alto.

Exemplo: seu editor está autorizado para o XBOX Game Pass Essential. O usuário tem o XBOX Game Pass Ultimate. Quando você consulta todos os ProductIds do Game Pass, o publisherQuery retorna um resultado somente para o XBOX Game Pass Essential. Se o seu editor tiver acesso para visualizar qualquer um dos outros níveis, o publisherQuery também retornará esses níveis.

<Note>
  O XBOX Game Pass (Starter Edition) é uma exceção à herança e é um nível independente. Ele não está incluído em nenhum dos outros níveis.
</Note>

### Concedendo vantagens no jogo para assinantes do Game Pass

Recomendamos solicitar acesso ao nível mais baixo do Game Pass necessário para conceder vantagens e benefícios no jogo aos assinantes.

Exemplo: você está concedendo uma recompensa no jogo a todos os assinantes do Game Pass no console. Você só precisa de acesso ao XBOX Game Pass Essential (CFQ7TTC0K5DJ), pois o Premium e o Ultimate incluem o Essential.

### Detectando produtos com direito por meio de uma assinatura do Game Pass com satisfiedByProductIds

Após a autorização, identifique os direitos derivados do Game Pass verificando os valores de `satisfiedByProductIds` e `acquisitionType`. Um direito baseado no Game Pass tem `acquisitionType` igual a `Recurring`, e `satisfiedByProductIds` inclui o ProductID do nível mais alto do Game Pass para o qual você está autorizado.

<Note>
  Se você estiver usando a opção de filtro excludeDuplicates, o direito relacionado ao Game Pass será filtrado se o usuário possuir o título diretamente.
</Note>

Verificar os productIDs do Game Pass em `satisfiedByProductIds` de um item informa se o item tem direito por meio do Game Pass, mas não é suficiente para determinar se o usuário é membro do Game Pass. Para verificar o status da assinatura do Game Pass de um usuário, inclua os valores de ProductId do Game Pass em `productSkuIds` da sua solicitação.

### Exemplo de item duplicado com o XBOX Game Pass

Se o usuário tiver propriedade direta e direito pelo Game Pass para o mesmo produto, duas entradas poderão aparecer quando `excludeDuplicates` for `false`. Quando `excludeDuplicates` for `true`, o item de compra direta será retornado.

Para conhecer as regras completas de resolução de duplicatas e o comportamento de prioridade de origem, confira [Noções básicas sobre itens duplicados na resposta](/pt-BR/publishing/xstore-commerce/xstore-query-entitlements#understanding-duplicate-items-in-the-response).

### Exemplo de solicitação do status da assinatura do 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"
}
```

### Exemplo de resposta para o 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
   }
  }
 ]
}
```

### Exemplo de solicitação para um jogo com direito por meio da assinatura do 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"
}
```

### Exemplo de resposta para um jogo com direito por meio da assinatura do 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
   }
  }
 ]
}
```

## Confira também

[Visão geral do comércio](/pt-BR/publishing/xstore-commerce/xstore-commerce-overview)

[Referência da API XStore](/pt-BR/reference/system/xstore/xstore_members)


## Related topics

- [Integração de Parceiro XBOX para acesso e publicação](/pt-BR/home/onboarding.md)
- [XR-013 Vinculação de contas Microsoft a contas do publisher](/pt-BR/publishing/certification/xr/xr-013.md)
- [XR-132 Limitações de acesso aos serviços](/pt-BR/publishing/certification/xr/xr-132.md)
- [Guia passo a passo da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-guide.md)
- [XR132 Limitações de acesso ao serviço](/pt-BR/publishing/certification/fma/xr-132.md)
