Verificar elegibilidade da promoção

Aplica-se a

  • Partner Center

Funções apropriadas

  • Agente administrativo

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.

Os participantes podem verificar se uma transação de cliente é elegível para uma determinada promoção. Esse método retorna True se a transação do cliente for qualificada para uma determinada promoção. Os parceiros podem verificar a elegibilidade antes de enviar uma transação para garantir que a promoção será aplicada.

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.
  • A elegibilidade inclui a disponibilidade de sku do produto comprado, o ID da promoção que está sendo avaliado, a quantidade, a duração do prazo e o ciclo de faturamento da transação.
  • A taxa de limitação para esta API é de no máximo 625 solicitações por minuto (RPM) por locatário parceiro. As chamadas que excederem o limite resultarão na resposta http de 429. Consulte as diretrizes de limitação para obter informações sobre limitação.

Pedido REST

Sintaxe da solicitação

Método URI do pedido
POST {baseURL}/v1/customers/{customerId}/promotionEligibilities HTTP/1.1

Parâmetro URI

Use os seguintes parâmetros de consulta para retornar as promoções disponíveis.

Nome Type Obrigatório Description
ID do cliente string Y O valor é um customer-tenant-id formatado em GUID, que é um identificador que permite especificar um cliente.

Cabeçalhos do pedido

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

Corpo do pedido

Body inclui uma coleção de PromotionEligibilitiesRequestItems. Esta tabela descreve as propriedades de um PromotionEligibilitiesRequestItem.

Propriedade Type Obrigatório Description
catalogItemId string Sim O identificador de item de catálogo.
quantidade número inteiro Sim O número de licenças ou instâncias.
termoDuração DateTime Sim Uma representação ISO 8601 da duração do termo. Os valores suportados atuais são P1M (um mês), P1Y (um ano) e P3Y (três anos).
faturamentoCiclo string Sim O valor que indica o tipo de ciclo de faturamento.
promotionId string Não O identificador do item de promoção.

Exemplo de solicitação

POST https://api.partnercenter.microsoft.com/v1/customers/46632f71-f052-4384-8f84-4cdb6c12c2a1/promotionEligibilities 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

 // Request example with promotion ID input
{
    "items": [
        {
            "catalogItemId": "CFQ7TTC0LH2Z:0002:CFQ7TTC0HRVK",
            "quantity": 2400,
            "termDuration": "P1Y",
            "billingCycle": "Monthly",
            "promotionId": "39NFJQT1PM6C:0005:39NFJQT1Q5L7"
        }
    ]
}

POST https://api.partnercenter.microsoft.com/v1/customers/46632f71-f052-4384-8f84-4cdb6c12c2a1/promotionEligibilities HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70b
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
X-Locale: en-US

 // Request example with no promotion ID input
{
    "items": [
        {
            "id": "0",
            "catalogItemId": "CFQ7TTC0HBSJ:0001:CFQ7TTC0JQH3",
            "quantity": 300,
            "termDuration": "P1M",
            "billingCycle": "monthly"
        }
    ]
}

Resposta do REST

Se um promotionId for fornecido e a solicitação for bem-sucedida, esse método retornará uma coleção de resultados de qualificação. Se promotionId não for fornecido e a solicitação for bem-sucedida, esse método retornará todas as promoções disponíveis para a oferta especificada e a elegibilidade do cliente correspondente para cada promoção.

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 mais parâmetros. Para obter a lista completa, consulte Códigos de erro.

Tipos de erros de elegibilidade e descrições

A elegibilidade retornará false se as verificações de elegibilidade determinarem que o SKU do produto que está sendo avaliado em relação ao ID da promoção não estiver alinhado. Várias condições e restrições são avaliadas e tipos de erro de retorno para descrever as condições não atendidas para a elegibilidade.

Tipo de erro de elegibilidade Descrição do erro de elegibilidade
InvalidCatalogItemId O CatalogItemId fornecido é inválido.
InvalidPromotion A promoção fornecida é inválida.
Pré-requisitoProductOwnership O cliente não atende aos pré-requisitos de propriedade do produto para ser elegível para esta promoção.
Limite de Resgate O limite de resgate para esta promoção foi cumprido.
Contagem de Assentos A quantidade fornecida não satisfaz os requisitos mínimos ou máximos de lugares para a promoção.
OfertaCompradoAnteriormente Esta oferta foi comprada anteriormente para este cliente.
Termo O termo fornecido não é aplicável à promoção.
NãoPromoçõesDisponível Não há promoções disponíveis no momento.

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

// Response example with promotion ID provided in the request
{
    "totalCount": 1,
    "items": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH2Z:0002:CFQ7TTC0HRVK",
            "quantity": 2400,
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "eligibilities": [
                {
                    "promotionId": "39NFJQT1PM6C:0005:39NFJQT1Q5L7",
                    "isEligible": false,
                    "errors": [
                        {
                            "minimumRequiredSeats": 1,
                            "maximumRequiredSeats": 2400,
                            "availableSeats": 500,
                            "type": "SeatCount",
                            "description": "The provided quantity does not satisfy the minimum or maximum seat requirements for the promotion."
                        }
                    ]
                }
            ],
            "attributes": {
                "objectType": "PromotionEligibilities"
            }
        }
    ],
    "attributes": {
        "objectType": "Collection"
    }
}
HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70b
Date: Fri, 26 Feb 2021 20:42:26 GMT

// Response example with no promotion ID provided in the request
{
    "totalCount": 1,
    "items": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0HBSJ:0001:CFQ7TTC0JQH3",
            "quantity": 300,
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "eligibilities": [
                {
                    "promotionId": "39NFJQT1XK5L:000J:39NFJQT1Q5D8",
                    "isEligible": true
                },
                {
                    "promotionId": "39NFJQT1XG89:0002:39NFJQT1Q5L2",
                    "isEligible": true
                }
            ],
            "attributes": {
                "objectType": "PromotionEligibilities"
            }
        }
    ],
    "attributes": {
        "objectType": "Collection"
    }
}