Fazer a transição de uma nova assinatura comercial

Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center for Microsoft Cloud para o governo dos EUA

Funções apropriadas

  • Administrador global
  • Agente de administração

Esses métodos oferecem suporte a assinaturas de origem de comércio tradicionais e novas.

Observação

As novas experiências de comércio para serviços baseados em licença incluem muitos recursos novos e estão disponíveis para todos os CSPs (Provedores de Soluções em Nuvem). Para obter mais informações, confira a visão geral das novas experiências de comércio.

Usado para atualizar a nova assinatura comercial de um cliente para uma assinatura de destino ou converter uma avaliação NCE em uma assinatura paga. Para fazer a transição de uma assinatura, duas solicitações de API precisam ser feitas. Primeiro GET transições qualificadas para obter os SKUs disponíveis para atualização. Em seguida, transição POST para executar a transição .

Obtenha elegibilidades de transição

Retorna uma lista de transições qualificadas para um determinado cliente, assinatura e tipo solicitado. Também retorna a qualificação para atualização de assinatura de destino. As elegibilidades de transição podem incluir ofertas que estão no estado EndofSaleWithConversions.

Pré-requisitos

  • Credenciais, conforme descrito em Autenticação do Partner Center. Esse cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Uma ID do cliente (customer-tenant-id). Se você não souber a ID do cliente, poderá procurá-la no Partner Center selecionando o espaço de trabalho Clientes, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).

  • Uma ID de assinatura para a assinatura inicial.

Funções GDAP

Você precisará de pelo menos uma das seguintes funções GDAP:

  • Leitor de Diretório
  • Leitor Global

Observação

Embora essa API esteja disponível para legado e NCE, o GDAP só é necessário para legado.

Solicitação REST

Sintaxe da solicitação

Método URI da solicitação
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType={imediato, agendado} HTTP/1.1

Parâmetro do URI

Use os seguintes parâmetros de consulta para retornar transições qualificadas.

Nome Digitar Obrigatória Descrição
id de locatário do cliente guid Y Um GUID correspondente ao locatário do cliente.
id da assinatura guid Y Um GUID correspondente à assinatura inicial.
elegibilidadeTipo cadeia de caracteres N Descreve quando a transição deve ser executada; pode ser imediata ou agendada. O padrão é Immediate.

Cabeçalhos da solicitação

Para obter mais informações, confira Cabeçalhos REST do Partner Center.

Corpo da solicitação

Nenhum

Exemplo de solicitação

GET https://api.partnercenter.microsoft.com/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType=immediate HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

Resposta REST

Se bem-sucedido, esse método retorna uma lista das transições qualificadas para a assinatura especificada no corpo da resposta.

Códigos de êxito e de erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e outros parâmetros. Para obter a lista completa, confira Códigos de Erro.

Erros de elegibilidade

Descrições e significado do erro.

Descrição do erro Significado
A assinatura não pode ser transferida - a assinatura de origem não está ativa. Substatus original não ativo
A assinatura não pode ser transferida - a assinatura de origem ainda não foi provisionada. O sub FulfillmentState original não foi bem-sucedido
O tipo de transição não é compatível - o mapeamento de assinatura do AzureAD é necessário. Erro LegacyCannotConvertSubscriptionId ao chamar GetSubscriptionUpgradeConflicts
O tipo de transição não é compatível - existem assinaturas conflitantes para transferência de licença. Se algum serviço do Microsoft Entra tiver IDs de assinatura de uma assinatura diferente, adicione-o à lista de conflitos (inclui compras feitas com fluxo de compra herdado ou moderno)

Erros de qualificação de assinatura

Se uma assinatura de destino não estiver qualificada para atualização, um dos seguintes motivos será retornado.

As listas vazias serão retornadas se a assinatura de origem for uma avaliação ou se o elegibilidade Type for especificado como Agendado. Você só pode fazer a transição para uma assinatura existente com uma transição imediata (também conhecida como "midterm"), não uma alteração agendada.

Descrição do erro Código de erro
A assinatura não está ativa. SubscriptionNotActive = 1
A assinatura está dentro da janela de cancelamento. SubscriptionInCancellationWindow = 2
A duração do termo da assinatura é menor do que a duração do prazo da assinatura de origem. SubscriptionTermDurationShorterThanSourceTermDuration = 3
A data de término do prazo da assinatura é antes da data de término do prazo da assinatura de origem. A data de término do prazo da assinatura é antes da data de término do prazo da assinatura de origem. = 4

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
  "totalCount": 2,
  "items": [
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0KZCR:0001:CFQ7TTC0K71H",
      "title": "Microsoft 365 E5 Test Sku Title",
      "description": "Microsoft 365 E5 Test Sku Description",
      "quantity": 1,
      "subscriptionEligibilities": [
        {
          "isEligible": false,
          "subscriptionId": "92301b7d-7598-4938-d6f2-d31e080e9da6",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1M",
          "subscriptionBillingCycle": "monthly",
          "errors": [
            {
              "code": 3,
              "description": "The subscription's term duration is shorter than the source subscription's term duration."
            }
          ]
        },
        {
          "isEligible": true,
          "subscriptionId": "151467a1-4246-4a00-da7b-3405463d9b78",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1Y",
          "subscriptionBillingCycle": "monthly",
          "errors": []
        }
      ],
      "eligibilities": [
        {
          "isEligible": true,
          "transitionType": "transition_only",
          "errors": []
        },
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    },
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0L4M3:0001:CFQ7TTC0K78T",
      "title": "Business Premium Test Sku Title",
      "description": "Business Premium Test Sku Description",
      "quantity": 1,
      "eligibilities": [
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    }
  ],
  "attributes": {
    "objectType": "Collection"
  }
}

Pós-Transição

Publica uma solicitação de transição para um determinado cliente e assinatura. Retorna a transição com seu status inicial.

Pré-requisitos

  • Credenciais, conforme descrito em Autenticação do Partner Center. Esse cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Uma ID do cliente (customer-tenant-id). Se você não souber a ID do cliente, poderá procurá-la no Partner Center selecionando o espaço de trabalho Clientes, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).

  • Uma ID de assinatura para a assinatura inicial.

Funções GDAP

Você precisará de pelo menos uma das seguintes funções GDAP:

  • Leitor de diretório ou leitor global (somente transição)
  • Directory Writer (transição com transferência de licença)

Observação

Embora essa API esteja disponível para legado e NCE, o GDAP só é necessário para legado.

Solicitação REST

Sintaxe da solicitação

Método URI da solicitação
POST {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitions HTTP/1.1

Parâmetro do URI

Use os seguintes parâmetros de consulta para executar uma transição.

Nome Digitar Obrigatória Descrição
id de locatário do cliente guid Y Um GUID correspondente ao locatário do cliente.
id da assinatura guid Y Um GUID correspondente à assinatura inicial.

Cabeçalhos da solicitação

Para obter mais informações, confira Cabeçalhos REST do Partner Center.

Corpo da solicitação

Esta tabela descreve as propriedades Transition no corpo da solicitação.

Propriedade Type Obrigatória Descrição
fromCatalogItemId string Não O item de catálogo do qual você está fazendo a transição.
fromSubscriptionId string Não O ID da assinatura do qual você está fazendo a transição.
toCatalogItemId string Sim O item de catálogo para o qual você está fazendo a transição.
toSubscriptionId string Não O ID de assinatura para o qual você está fazendo a transição.
quantity Número inteiro Sim O número de licenças a serem transferidas.
prazoDuração string Não Especificando a duração do prazo da assinatura.
billingCycle string Não Especificando o ciclo de cobrança da assinatura.
transitionType string Sim O tipo de transição. Valores possíveis - transition_only, transition_with_license_transfer.

Exemplo de solicitação

POST https://api.partnercenter.microsoft.com/v1/customers/{customerId}/subscriptions/{subscriptionId}/transitions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
}

Resposta REST

Se bem-sucedido, esse método retorna um recurso de transição com seu status inicial.

Códigos de êxito e de erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e mais informações de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e outros parâmetros. Para obter a lista completa, confira Códigos de Erro.

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
    "Events": [
        {
            "name": "Conversion",
            "status": "Started ",
            "timestamp": "2021-01-08T18:01:14.7488618Z",
            "attributes":
            {
                "objectType": "TransitionEvent"
            }
        }
    ],
    "attributes":
    {
        "objectType": "Transition" 
    }
}