Partilhar via


Transição de uma nova subscrição comercial

Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center for Microsoft Cloud for US Government

Funções apropriadas

  • Agente administrativo

Esses métodos suportam assinaturas de fontes de comércio tradicionais e novas.

Nota

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 (Provedor de Soluções na Nuvem). Para obter mais informações, consulte Visão geral de novas experiências comerciais.

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.

Obter elegibilidade de transição

Devolve uma lista de transições elegíveis para um determinado cliente, subscrição e tipo solicitado. Também retorna a elegibilidade de atualização da assinatura de destino. As elegibilidade de transição podem incluir ofertas que estão no estado EndofSaleWithConversions.

Pré-requisitos

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

  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, 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 é a mesma que a ID do cliente (customer-tenant-id).

  • Um ID de assinatura para a assinatura inicial.

Funções GDAP

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

  • Leitor de Diretórios
  • Leitor Global

Nota

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

Pedido REST

Sintaxe da solicitação

Método URI do pedido
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType={imediato, agendado} HTTP/1.1

Parâmetro URI

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

Nome Type Obrigatório Description
ID do cliente-locatário GUID Y Um GUID correspondente ao locatário do cliente.
ID da subscrição GUID Y Um GUID correspondente à assinatura inicial.
elegibilidadeTipo string N Descreve quando a transição deve ser executada; pode ser imediata ou agendada. A predefinição é Immediate.

Cabeçalhos do pedido

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

Corpo do pedido

Nenhuma

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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

Resposta do REST

Se for bem-sucedido, esse método retornará uma lista das transições qualificadas para uma determinada assinatura no corpo da resposta.

Códigos de sucesso e 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, consulte Códigos de erro.

Erros de elegibilidade

Descrições de erros e significado.

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 subscrições conflitantes para transferência de licenças. Se qualquer 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 elegibilidade da subscrição

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

As listas vazias serão retornadas se a assinatura de origem for uma avaliação ou se o elegibilityType 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 subscrição não está ativa. SubscriptionNotActive = 1
A subscrição está dentro da janela de cancelamento. SubscriptionInCancellationWindow = 2
A duração do prazo da subscrição é mais curta do que a duração da subscrição de origem. SubscriptionTermDurationShorterThanSourceTermDuration = 3
A data de término do prazo da assinatura é anterior à data de término do termo da assinatura de origem. A data de término do prazo da assinatura é anterior à data de término do termo da assinatura de origem. = 4

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "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": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
          "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 na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, 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 é a mesma que a ID do cliente (customer-tenant-id).

  • Um 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)

Nota

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

Pedido REST

Sintaxe da solicitação

Método URI do pedido
POST {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitions HTTP/1.1

Parâmetro URI

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

Nome Type Obrigatório Description
ID do cliente-locatário GUID Y Um GUID correspondente ao locatário do cliente.
ID da subscrição GUID Y Um GUID correspondente à assinatura inicial.

Cabeçalhos do pedido

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

Corpo do pedido

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

Propriedade Type Obrigatório Description
deCatalogItemId string Não O item de catálogo do qual você está fazendo a transição.
fromSubscriptionId string Não O ID da subscrição a partir do qual está a transitar.
toCatalogItemId string Sim O item de catálogo para o qual você está fazendo a transição.
toSubscriptionId string Não O ID da subscrição para o qual está a fazer a transição.
quantidade integer Sim O número de licenças a serem transferidas.
termoDuração string Não Especificar a duração da subscrição.
faturamentoCiclo string Não Especificando o ciclo de faturamento da assinatura.
tipo de transição 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: aaaa0000-bb11-2222-33cc-444444dddddd
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 do REST

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

Códigos de sucesso e 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, consulte Códigos de erro.

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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" 
    }
}