Partilhar via


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

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

Use essas APIs para obter novos dados de uso diário faturados e não faturados de forma assíncrona.

Nota

Esta API será preterida 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 diário faturados para períodos de faturamento de setembro de 2022 a 21 de janeiro de 2025.

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

  • Meta: Recuperar itens de linha de uso diário 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 diário não faturados para os períodos de faturamento atual e anterior antes de 21 de janeiro de 2025.

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

  • Meta: recuperar itens de linha de uso diário não faturados para os períodos de faturamento atual e anterior 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 nominal diária faturada e não faturada v2 (GA).

Obrigado pela sua atenção e estamos ansiosos para o seu sucesso contínuo com as nossas APIs de faturação.

Nota

Você pode acessar seus itens de linha de uso diário não faturados 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.

Primeiro, priorizamos a entrega pontual dos dados de uso diários faturados. Ocasionalmente, poderá não ver os dados de utilização diária não faturados mais recentes até que os dados de utilização faturados 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 à medida que nos esforçamos para fornecer as informações mais precisas e oportunas possíveis.

Importante

Os dados de utilização diária nominal não incluem os encargos relativos a estes produtos:

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

Descriçã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 a chave de manobrista e padrões assíncronos de solicitação-resposta para otimizar nossas APIs de faturamento e reconciliação para entregar 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 (pontos de extremidade da API). Para saber mais, leia as seguintes seções:

Ponto de extremidade de item de linha de uso

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

Ponto de extremidade do status da operação

Até receber o status de sucesso, continue pesquisando essa API em um intervalo regular. 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 de manifesto

Este ponto de extremidade fornece uma pasta de armazenamento a partir da qual os dados de faturamento reais 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 descreve as etapas necessárias para baixar dados de reconciliação.

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

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

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

Passo 1: Submeter pedido

Envie uma solicitação POST para o ponto de extremidade da API.

Obter itens de linha de uso não faturados

Obtenha itens de linha de uso não faturados para o mês atual ou último do calendário.

Pedido da API

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

Parâmetros de solicitação

Nome In Obrigatório Tipo Descrição
fragment Query False 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.
período Query True String Use "atual" ou "último" para obter o uso para o mês atual ou último do calendário. O valor "last" é o mesmo que "previous" em APIs V1 existentes.
currencyCode Query True String Código da moeda de cobrança do parceiro.

Parâmetros de solicitação preteridos

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

Name Descrição
Provider N/A. (Ele retorna todo o uso do plano do Azure e é equivalente ao "único" das APIs V1 existentes.)
hasPartnerEarnedCredit N/A. (devolve todos os dados, independentemente da PEC.)
Tamanho N/A.
Desvio N/A.
seekOperation N/A.

Cabeçalho do pedido

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

Corpo do pedido

N/A.

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.

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

Obter itens de linha de uso faturados

Obtenha itens de linha de uso classificados faturados para o período de faturamento fechado.

Pedido da API

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

Parâmetros de solicitação

Nome In Obrigatório Tipo Descrição
invoiceId Caminho True String O número da fatura do Partner Center.
Fragment Query False 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 preteridos

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

Name Descrição
Provider N/A. (Ele retorna todo o uso do plano do Azure e é equivalente ao "único" das APIs V1 existentes.)
hasPartnerEarnedCredit N/A. (devolve todos os dados, independentemente da PEC.)
Tamanho N/A.
Desvio N/A.
seekOperation N/A.

Cabeçalho do pedido

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

Corpo do pedido

N/A.

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 Accepted". Com base na solicitação, a API pode retornar outro status padrão.

Name Descrição
202 Aceito O pedido é aceite. Verifique o status da solicitação pesquisando a URL do cabeçalho do local da operação.

Etapa 2: Verificar o status da solicitação

Aguarde um HTTP 200 com um status de terminal de bem-sucedido ou falhado. A URL do manifesto é o "resourceLocation" no status de sucesso.

Obter o status da operação

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

Pedido da API

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

Parâmetros de solicitação

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

Cabeçalho do pedido

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

Corpo do pedido

N/A.

Estado da resposta

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

Name Descrição
410 Desaparecido Cada link de operação fica ativo por uma quantidade especificada de tempo controlado pelo servidor. Decorrido o tempo, o cliente deverá submeter um novo pedido.

Carga útil de resposta

A carga útil de resposta da API retorna os seguintes atributos:

Nome Opcional Description
createdDateTime false Tempo de solicitação.
lastActionDateTime false Hora de alteração de status.
resourceLocation verdadeiro O URI de carga útil do manifesto.
status false Valores e ações possíveis.
Value 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".
em execução 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 útil do manifesto usando o URI especificado em resourceLocation.
com falhas Estado terminal, que indica falha permanente. Reinicie a operação.

Para o atributo de erro:

Nome Opcional Description
error verdadeiro Detalhes do erro fornecidos no formato json se o status da operação falhar.
Nome Opcional Description
mensagem false Descreve o erro em detalhes
code false Indica o tipo de erro que ocorreu

Pedido da API

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

Resposta da API

A resposta sugere esperar 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"  
}

Pedido da API

(10 segundos após o pedido 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 "succeeded" 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 carga útil de manifesto

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

Obter o manifesto

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

Pedido da API

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

Parâmetros de solicitação

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

Cabeçalho do pedido

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

Corpo do pedido

N/A.

Estado da resposta

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

Name Descrição
410 Desaparecido Cada link de manifesto fica ativo por uma quantidade especificada de tempo controlado pelo servidor. Decorrido o tempo, o cliente deverá submeter um novo pedido.

Carga útil de resposta

A resposta da API retorna os seguintes atributos:

Name Descrição
Versão A versão do esquema de manifesto.
dataFormat O formato de arquivo de dados de faturamento. Valores possíveis compactadosJSONLines: 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 Tempo de criação do arquivo de manifesto.
eTag Versão de dados de 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.
Tipo de partição Esta propriedade divide os dados. Se uma determinada partição tiver mais do que o número suportado, os dados sã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 porque o princípio de particionamento pode mudar.
blobContagem Contagem total de ficheiros para este ID de inquilino parceiro.
sizeInBytes Total de bytes em todos os ficheiros.
blobs Uma matriz JSON de objetos "blob" com os detalhes de todos os arquivos para o ID do locatário parceiro.
Objeto Blob
Nome Nome do 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".

Amostra de carga útil do manifesto

{
"version": "1",
"dataFormat": "compressedJSONLines",
"utcCretedDateTime": "2022-04-29T22:40:57.1853571Z",
"eTag": "0x5B168C7B6E589D2",
"partnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"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 blob das propriedades "rootFolderSAS" e "rootFolder" da resposta da API de carga útil do manifesto. Use o SDK/ferramenta de 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 ao portador da autorização.
MS-CorrelationID False String Um rastreador de solicitações internas. Cada solicitação gera um novo rastreador (GUID).
MS-CV False String Um rastreador de solicitações internas.
MS-RequestID False String O ID de idempotência da solicitação.

Status de resposta padrão da API

A seguir estão os status HTTP da resposta da API:

Name Descrição
400 Pedido Incorreto Havia dados ausentes ou incorretos. Os detalhes do erro são incluídos no corpo da resposta.
401 Não Autorizado O chamador não é autenticado e deve autenticar-se 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.
500 Erro de Servidor Interno A API ou uma de suas dependências não consegue atender à solicitação. Tente novamente mais tarde.
404 Não Encontrado Recurso não disponível com parâmetros de entrada.
410 Desaparecido O link de manifesto expirou ou expirou. Envie uma nova solicitação.

Atributos de dados de uso

A resposta da API de uso faturada ou não faturada com o parâmetro de solicitação "completo" ou "básico" retorna os seguintes atributos:

Atributo "Completo" "básico"
Identificação do parceiro sim sim
PartnerName sim sim
ID do Cliente sim sim
CustomerName sim Sim
CustomerDomainName sim não
País do Cliente sim não
MpnId sim não
Tier2MpnId sim não
Número da fatura sim sim
ProductId sim sim
SkuId sim sim
AvailabilityId sim não
SkuName sim sim
ProductName sim não
Nome do Editor sim sim
PublisherId sim não
SubscriçãoDescrição 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
Unit 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
Tipo de Unidade sim não
FaturamentoPreTaxTotal sim sim
BillingCurrency sim sim
PreçosPreTaxTotal sim sim
PricingCurrency sim sim
ServiceInfo1 sim não
ServiceInfo2 sim não
Etiquetas sim não
AdditionalInfo sim não
EffectiveUnitPrice sim sim
PCToBCExchangeRate sim sim
PCToBCExchangeRateDate sim não
EntitlementId sim sim
DireitoDescrição sim não
ParceiroGanhoCréditoPercentagem sim não
CreditPercentage sim sim
Tipo de Crédito sim sim
BenefitOrderID sim sim
ID do Benefício sim não
Tipo de Benefício sim sim