Compartilhar via


API de uso diário v2 do novo comércio (beta)

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

Use essas APIs para obter dados de uso classificados diários cobrados e não cobrados de novo comércio de forma assíncrona.

Observação

Essa API será descontinuada em breve. Para garantir operações perfeitas, recomendamos migrar para a versão GA. Aqui estão os detalhes que você precisa planejar com antecedência:

  • Meta: recuperar itens de linha de uso classificado diariamente faturados para períodos de faturamento de setembro de 2022 a 21 de janeiro de 2025.

  • Ação: use essa API, mas migre para a GA v2 o mais rápido possível.

  • Meta: recuperar itens de linha de uso avaliado diariamente faturados para períodos de faturamento de setembro de 2022 a partir de 21 de janeiro de 2025.

  • Ação: use apenas a API v2 GA.

  • Meta: recuperar itens de linha de uso avaliado diariamente não faturados para os períodos de faturamento atual e anteriores antes de 21 de janeiro de 2025.

  • Ação: use essa API, mas migre para a GA v2 o mais rápido possível.

  • Meta: recuperar itens de linha de uso diário não faturado para os períodos de faturamento atual e anteriores a partir de 21 de janeiro de 2025.

  • Ação: use apenas a API v2 GA.

Para uma transição perfeita para as novas APIs, siga este link: API de reconciliação de uso classificado diariamente faturado e não cobrado v2 (GA).

Obrigado por sua atenção e esperamos seu sucesso contínuo com nossas APIs de faturamento.

Observação

Você pode acessar seus itens de linha de uso classificado diário não cobrado por meio da API ou do portal do Partner Center. Para garantir dados precisos, aguarde até 24 horas para disponibilidade. Dependendo da sua localização e quando os medidores relatam o uso, pode haver mais atrasos.

Priorizamos primeiro a entrega pontual dos dados de uso classificados diariamente faturados. Ocasionalmente, talvez você não veja os dados de uso diário não cobrado mais recentes até que os dados de uso faturado do mês anterior estejam disponíveis. Depois de receber os dados de uso faturados, você poderá recuperar todos os dados de uso não faturados atualizados desde o início do mês.

Sua compreensão e paciência são apreciadas enquanto nos esforçamos para fornecer as informações mais precisas e oportunas possíveis.

Importante

Os dados de uso diário não incluem as cobranças destes produtos:

  • Reserva do Azure
  • Plano de economia do Azure
  • Office
  • Dynamics
  • Microsoft Power Apps
  • Software perpétuo
  • Assinatura de software
  • Produto SaaS que não é da Microsoft ou do marketplace

Visão geral da API

A API assíncrona é um novo método para acessar rapidamente dados de faturamento e reconciliação em partes gerenciáveis. Ele elimina a necessidade de manter uma conexão aberta por horas e percorrer milhões de transações iterativamente.

Usamos chave de manobrista e padrões assíncronos de solicitação-resposta para otimizar nossas APIs de faturamento e reconciliação para fornecer os resultados de forma assíncrona. As respostas da API fornecem um token para acessar os dados de reconciliação com todos os atributos ou um subconjunto.

Você pode baixar os dados de uso de forma assíncrona usando três novas etapas (endpoints de API). Para saber mais, leia as seguintes seções:

Ponto de extremidade do item de linha de uso

Use essa API para acessar itens de linha de consumo faturados ou não faturados. Ele retorna um status HTTP 202 e um cabeçalho de localização com a URL, que você deve sondar em intervalos regulares até receber um status de êxito com uma URL de manifesto.

Ponto de extremidade de status da operação

Até receber o status de sucesso, continue sondando essa API em intervalos regulares. Se os dados solicitados não estiverem disponíveis, a resposta da API incluirá um cabeçalho Retry-After indicando quanto tempo você deve esperar antes de enviar outra solicitação.

Ponto de extremidade do manifesto

Esse ponto de extremidade fornece uma pasta de armazenamento da qual os dados reais de cobrança podem ser baixados. A resposta divide ou particiona os arquivos para otimizar a taxa de transferência e o paralelismo de E/S.

Diagrama de sequência

O diagrama ilustra as etapas necessárias para baixar os dados de reconciliação.

Diagrama que mostra as etapas necessárias para baixar os dados de reconciliação.

Sequência de ação do usuário

Siga estas etapas para recuperar dados de reconciliação.

Etapa 1: enviar solicitação

Envie uma solicitação POST para o endpoint da API.

Receber itens de linha de uso não faturados

Receber itens de linha de uso não faturados do mês atual ou do último mês.

Solicitação de API

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage?fragment={fragment}&period={period}?currencyCode={currencyCode}

Parâmetros da solicitação

Nome In Obrigatório Tipo Descrição
fragmento Consulta Falso String Escolha "completo" para uma resposta completa ou "básico" para um subconjunto de atributos. O valor padrão é "full". Consulte a lista de atributos neste artigo.
period Consulta True String Use "atual" ou "último" para obter o uso do mês atual ou do último mês. O valor "last" é o mesmo que "previous" nas APIs V1 existentes.
currencyCode Consulta True String Código da moeda de cobrança do parceiro.

Parâmetros de solicitação obsoletos

A versão mais recente da API não requer os seguintes parâmetros de URI:

Nome Descrição
Provedor N/D (Ele retorna todo o uso do plano do Azure e é equivalente ao "único" das APIs V1 existentes.)
hasPartnerEarnedCredit N/D (retorna todos os dados, independentemente do PEC.)
Tamanho N/D
Deslocamento N/D
seekOperation N/D

Cabeçalho da solicitação

Consulte a lista de cabeçalhos de solicitação para a API neste artigo.

Corpo da solicitação

N/D

Resposta da API

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/811bb8f0-8aca-4807-897c-c15ce50820d6

A API retorna o status HTTP 202. Com base na solicitação, a API pode retornar outro status padrão.

Nome Descrição
202 Aceito O pedido é aceito. Consulte a URL do cabeçalho do local da operação para obter o status da solicitação.

Receber itens de linha de uso faturados

Receba itens de linha de uso classificado faturados para o período de faturamento fechado.

Solicitação de API

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{invoiceId}?fragment={fragment}

Parâmetros da solicitação

Nome In Obrigatório Tipo Descrição
invoiceId Caminho True String O número da fatura do Partner Center.
Fragmento Consulta Falso String Escolha "completo" para uma resposta completa ou "básico" para um subconjunto de atributos. O valor padrão é "full". Consulte a lista de atributos neste artigo.

Parâmetros de solicitação obsoletos

A versão mais recente da API não requer os seguintes parâmetros de URI:

Nome Descrição
Provedor N/D (Ele retorna todo o uso do plano do Azure e é equivalente ao "único" das APIs V1 existentes.)
hasPartnerEarnedCredit N/D (retorna todos os dados, independentemente do PEC.)
Tamanho N/D
Deslocamento N/D
seekOperation N/D

Cabeçalho da solicitação

Consulte a lista de cabeçalhos de solicitação para a API neste artigo.

Corpo da solicitação

N/D

Resposta da API

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e83ab1d4640

A API retorna "HTTP 202 aceito". Com base na solicitação, a API pode retornar outro status padrão.

Nome Descrição
202 Aceito O pedido é aceito. Verifique o status da solicitação sondando a URL do cabeçalho operation-location.

Etapa 2: verificar o status da solicitação

Aguarde um HTTP 200 com um status de terminal de êxito ou falha. A URL do manifesto é o "resourceLocation" no status de êxito.

Obter status da operação

Obtém o status de uma solicitação de dados de reconciliação.

Solicitação de API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e63ab1d3640

Parâmetros da solicitação

Nome In Obrigatório Tipo Descrição
operationId Caminho True String A ID da operação.

Cabeçalho da solicitação

Consulte a lista de cabeçalhos de solicitação para a API neste artigo.

Corpo da solicitação

N/D

Status da resposta

Além do status HTTP padrão neste artigo, a API pode retornar este status HTTP:

Nome Descrição
410 não existe mais Cada link de operação fica ativo por um período especificado de tempo controlado pelo servidor. Decorrido o tempo, o cliente deve enviar uma nova solicitação.

Payload de resposta

A carga de resposta da API retorna os seguintes atributos:

Nome Opcional Descrição
createdDateTime false Solicite tempo.
lastActionDateTime false Tempo de mudança de status.
resourceLocation true O URI da carga útil do manifesto.
status false Valores e ações possíveis.
Valor Ação do cliente
não iniciado Faça outra chamada para verificar o status depois de aguardar o tempo especificado no cabeçalho "Retry-After".
executando Faça outra chamada para verificar o status depois de aguardar o tempo especificado no cabeçalho "Retry-After".
bem-sucedido O estado final de operação, que indica que os dados estão prontos. Recupere a carga do manifesto usando o URI especificado em resourceLocation.
falhou Estado terminal, que indica falha permanente. Reinicie a operação.

Para atributo de erro:

Nome Opcional Descrição
erro true Detalhes do erro fornecidos no formato json se o status da operação for falha.
Nome Opcional Descrição
mensagem false Descreve o erro em detalhes
código false Indica o tipo de erro que ocorreu

Solicitação de API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

Resposta da API

A resposta sugere aguardar 10 segundos antes de tentar novamente ao processar dados.

HTTP/1.1 200 OK  
Retry-After: 10  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime":" 2022-06-1T10-01-05Z",  
"status": "running"  
}

Solicitação de API

(10 segundos após a solicitação anterior)

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

Resposta da API

A API retorna o status "bem-sucedido" e o URI "resourceLocation".

HTTP/1.1 200 OK  
Content-Type: application/json  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-13Z",  
"status": "succeeded",  
"resourceLocation": "https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/e03e1882-ff59-4c09-882f-74e60b4d7743"  
}

Etapa 3: Obter o conteúdo do manifesto

O chamador faz uma solicitação GET para a URL do manifesto para saber mais sobre onde os dados de reconciliação são armazenados nos blobs do Azure.

Obtendo o manifesto

Recupera o manifesto com informações sobre o local de armazenamento do Azure dos dados de reconciliação.

Solicitação de API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/{manifestId}

Parâmetros da solicitação

Nome In Obrigatório Tipo Descrição
manifestId Caminho True String A ID do manifesto.

Cabeçalho da solicitação

Consulte a [lista de cabeçalhos de solicitação para a API] neste artigo.

Corpo da solicitação

N/D

Status da resposta

Além do status HTTP padrão, a API pode retornar este status HTTP:

Nome Descrição
410 não existe mais Cada link de manifesto fica ativo por um período especificado de tempo controlado pelo servidor. Decorrido o tempo, o cliente deve enviar uma nova solicitação.

Payload de resposta

A resposta da API retorna os seguintes atributos:

Nome Descrição
Versão A versão do esquema de manifesto.
dataFormat O formato do arquivo de dados de faturamento. Valores possíveis compressedJSONLines: cada blob é um arquivo compactado e os dados no arquivo estão no formato de linhas JSON. Para acessar os dados, descompacte o arquivo.
utcCreatedDateTime Hora de criação do arquivo de manifesto.
eTag Versão de dados do manifesto. Uma alteração nas informações de faturamento gera um novo valor de eTag.
partnerTenantId ID do locatário do parceiro.
rootFolder O diretório raiz do arquivo.
rootFolderSAS O token SAS para acessar o arquivo.
partitionType Essa propriedade divide os dados. Se uma determinada partição tiver mais do que o número suportado, os dados serão divididos em vários arquivos correspondentes ao "partitionValue". Por padrão, o sistema particiona dados com base no número de itens de linha no arquivo. Não defina um número fixo de itens de linha ou tamanho de arquivo em seu código, pois o princípio de particionamento pode mudar.
blobCount Contagem total de arquivos para essa ID de locatário do parceiro.
sizeInBytes Total de bytes em todos os arquivos.
blobs Uma matriz JSON de objetos "blob" com os detalhes de todos os arquivos para a ID do locatário do parceiro.
Objeto Blob
Nome Nome de Blob.
sizeInBytes Tamanho do blob em bytes.
partitionValue A partição que contém o arquivo. Uma partição grande será dividida em vários arquivos, cada um com o mesmo "partitionValue".

Exemplo de conteúdo do manifesto

{
"version": "1",
"dataFormat": "compressedJSONLines",
"utcCretedDateTime": "2022-04-29T22:40:57.1853571Z",
"eTag": "0x5B168C7B6E589D2",
"partnerTenantId": "14f593ad-1edc-474d-aaa0-83abbf9638da",
"rootFolder": "https://{billing.blob.core.windows.net}/{folder_path}",
"rootFolderSAS": "\*\*\*",
"partitionType": "ItemCount",
"blobCount": 3,
"sizeInBytes": 2000,
"blobs": [
  {
  "name": "{blobName1.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "1"
  },
  {
  "name": "{blobName2.json.gz}",
  "sizeinBytes": 1000,
  "partitionValue": "2"
  },
  {
  "name": "{blobName3.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "3"
  }
  ]
}

Etapa 4: Baixar dados de reconciliação de uso do local de armazenamento

Obtenha o token SAS e o local de armazenamento de blobs das propriedades "rootFolderSAS" e "rootFolder" da resposta da API de conteúdo do manifesto. Use o SDK/ferramenta do Armazenamento do Azure para baixar e descompactar o arquivo de blob. Está no formato de linhas JSON .

Cabeçalhos de solicitação de API padrão

Todas as APIs aceitam os seguintes cabeçalhos:

Nome Obrigatório Tipo Descrição
Autorização True String Token de portador de autorização.
ms-correlationid Falso String Um rastreador de solicitação interno. Cada solicitação gera um novo rastreador (GUID).
MS-CV Falso String Um rastreador de solicitação interno.
ms-requestid Falso String A ID de idempotência da solicitação.

Status de resposta padrão da API

Veja a seguir os status HTTP da resposta da API:

Nome Descrição
400 Solicitação Inválida Havia dados ausentes ou incorretos. Os detalhes do erro estão incluídos no corpo da resposta.
401 Não Autorizado O chamador não é autenticado e deve se autenticar com o serviço de API do parceiro antes de fazer a primeira chamada.
403 Proibido O chamador não está autorizado a fazer a solicitação.
Erro interno de servidor 500 A API ou uma de suas dependências não pode atender à solicitação. Tente novamente depois.
404 Não Encontrado Recurso não disponível com parâmetros de entrada.
410 não existe mais O link do manifesto expirou ou decorreu Envie uma nova solicitação.

Atributos de dados de uso

A resposta da API de uso faturado ou não cobrado com o parâmetro de solicitação "full" ou "basic" retorna os seguintes atributos:

Atributo "cheio" "básico"
PartnerId sim sim
PartnerName sim sim
CustomerId sim sim
CustomerName sim Sim
CustomerDomainName sim não
CustomerCountry sim não
MpnId sim não
Tier2MpnId sim não
InvoiceNumber sim sim
ProductId sim sim
SkuId sim sim
AvailabilityId sim não
SkuName sim sim
ProductName sim não
PublisherName sim sim
PublisherId sim não
SubscriptionDescription sim não
SubscriptionId sim sim
ChargeStartDate sim sim
ChargeEndDate sim sim
UsageDate sim sim
MeterType sim não
MeterCategory sim não
MeterId sim não
MeterSubCategory sim não
MeterName sim não
MeterRegion sim não
Unidade sim sim
ResourceLocation sim não
ConsumedService sim não
ResourceGroup sim não
ResourceURI sim sim
ChargeType sim sim
UnitPrice sim sim
Quantidade sim sim
UnitType sim não
BillingPreTaxTotal sim sim
BillingCurrency sim sim
PricingPreTaxTotal sim sim
PricingCurrency sim sim
ServiceInfo1 sim não
ServiceInfo2 sim não
Marcações sim não
AdditionalInfo sim não
EffectiveUnitPrice sim sim
PCToBCExchangeRate sim sim
PCToBCExchangeRateDate sim não
EntitlementId sim sim
EntitlementDescription sim não
PartnerEarnedCreditPercentage sim não
CreditPercentage sim sim
CreditType sim sim
BenefitOrderID sim sim
BenefitID sim não
BenefitType sim sim