Nuova API di utilizzo giornaliero per il commercio v2 (beta)
Si applica a: Centro per i partner | Centro per i partner gestito da 21Vianet | Centro per i partner per Microsoft Cloud per il governo degli Stati Uniti
Usare queste API per ottenere nuovi dati di utilizzo fatturati e non fatturati ogni giorno in modo asincrono.
Nota
Questa API verrà deprecata a breve. Per garantire operazioni semplici, è consigliabile eseguire la migrazione alla versione disponibile a livello generale. Ecco i dettagli che è necessario pianificare in anticipo:
Obiettivo: recuperare le voci di utilizzo fatturate giornaliere per i periodi di fatturazione da settembre 2022 prima del 21 gennaio 2025.
Azione: usare questa API ma eseguire la migrazione alla versione 2 disponibile a livello generale il prima possibile.
Obiettivo: recuperare le voci di utilizzo fatturate giornaliere per i periodi di fatturazione dal 21 gennaio 2022 .
Azione: usare solo l'API v2 GA.
Obiettivo: recuperare le voci di utilizzo giornaliere non fatturate per i periodi di fatturazione correnti e precedenti prima del 21 gennaio 2025.
Azione: usare questa API ma eseguire la migrazione alla versione 2 disponibile a livello generale il prima possibile.
Obiettivo: recuperare le voci di utilizzo giornaliere non fatturate per i periodi di fatturazione correnti e precedenti dal 21 gennaio 2025.
Azione: usare solo l'API v2 GA.
Per una transizione senza problemi alle nuove API, seguire questo collegamento: API di riconciliazione dell'utilizzo con fatturazione e non fatturata giornaliera v2 (GA).
Grazie per l'attenzione e non vediamo l'ora di continuare il successo con le API di fatturazione.
Nota
È possibile accedere alle voci di utilizzo giornaliere non fatturate tramite l'API o il portale del Centro per i partner. Per garantire dati accurati, attendere fino a 24 ore per la disponibilità. A seconda della posizione e quando i contatori segnalano l'utilizzo, potrebbero verificarsi ulteriori ritardi.
Prima di tutto viene assegnata la priorità al recapito in base al tempo dei dati di utilizzo fatturati giornalieri. In alcuni casi, è possibile che non vengano visualizzati i dati di utilizzo giornalieri non fatturati più recenti fino a quando non sono disponibili i dati di utilizzo fatturati del mese precedente. Dopo aver ricevuto i dati di utilizzo fatturati, è possibile recuperare tutti i dati di utilizzo non fatturati aggiornati dall'inizio del mese.
La comprensione e la pazienza sono apprezzate come ci sforziamo di fornire le informazioni più accurate e tempestive possibili.
Importante
I dati di utilizzo valutati giornalieri non includono gli addebiti per questi prodotti:
- Prenotazione di Azure
- Piano di risparmio di Azure
- Office
- Dynamics
- Microsoft Power Apps
- Software perpetuo
- Sottoscrizione software
- Prodotto SaaS non Microsoft o marketplace
Panoramica delle API
L'API asincrona è un nuovo metodo per accedere rapidamente ai dati di fatturazione e riconciliazione in blocchi gestibili. Elimina la necessità di mantenere una connessione aperta per ore e scorrere in modo iterativo milioni di transazioni.
Usiamo i modelli di richiesta/risposta asincrona per ottimizzare le API di fatturazione e riconciliazione per fornire i risultati in modo asincrono. Le risposte API forniscono un token per accedere ai dati di riconciliazione con tutti gli attributi o un subset.
È possibile scaricare i dati di utilizzo in modo asincrono usando tre nuovi passaggi (endpoint API). Per altre informazioni, leggere le sezioni seguenti:
Endpoint dell'elemento di riga di utilizzo
Usare questa API per accedere alle voci di utilizzo fatturate o non fatturate. Restituisce uno stato HTTP 202 e un'intestazione di posizione con l'URL, che è necessario eseguire il polling a intervalli regolari fino a quando non si riceve uno stato di esito positivo con un URL manifesto.
Endpoint dello stato dell'operazione
Finché non si riceve lo stato di esito positivo, continuare a eseguire il polling di questa API a intervalli regolari. Se i dati richiesti non sono disponibili, la risposta dell'API include un'intestazione Retry-After che indica quanto tempo attendere prima di inviare un'altra richiesta.
Endpoint del manifesto
Questo endpoint fornisce una cartella di archiviazione da cui è possibile scaricare i dati di fatturazione effettivi. La risposta suddivide o partiziona i file per ottimizzare la velocità effettiva e il parallelismo di I/O.
Diagramma sequenza
Il diagramma illustra i passaggi necessari per scaricare i dati di riconciliazione.
Sequenza di azioni utente
Seguire questa procedura per recuperare i dati di riconciliazione.
Passaggio 1: Inviare una richiesta
Inviare una richiesta POST all'endpoint API.
Ottenere voci di utilizzo non fatturate
Ottiene le voci di utilizzo non fatturate per il mese corrente o dell'ultimo mese di calendario.
Richiesta API
POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage?fragment={fragment}&period={period}?currencyCode={currencyCode}
Parametri della richiesta
Nome | In | Obbligatorio | Type | Descrizione |
---|---|---|---|---|
fragment | Query | Falso | String | Scegliere "full" per una risposta completa o "basic" per un subset di attributi. Il valore predefinito è "full". Vedere l'elenco degli attributi in questo articolo. |
period | Query | Vero | String | Usare "current" o "last" per ottenere l'utilizzo per il mese corrente o dell'ultimo calendario. Il valore "last" è uguale a "precedente" nelle API V1 esistenti. |
currencyCode | Query | Vero | String | Codice valuta di fatturazione partner. |
Parametri della richiesta deprecati
La versione più recente dell'API non richiede i parametri URI seguenti:
Nome | Descrizione |
---|---|
Provider | N/D. Restituisce tutto l'utilizzo del piano di Azure ed è equivalente alla "onetime" delle API V1 esistenti. |
hasPartnerEarnedCredit | N/D. (restituisce tutti i dati, indipendentemente dalla pec). |
Dimensione | N/D. |
Sfalsamento | N/D. |
seekOperation | N/D. |
Intestazione della richiesta
Vedere l'elenco delle intestazioni di richiesta per l'API in questo articolo.
Testo della richiesta
N/D.
Risposta dell'API
HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/811bb8f0-8aca-4807-897c-c15ce50820d6
L'API restituisce lo stato HTTP 202. In base alla richiesta, l'API può restituire altri stati standard.
Nome | Descrizione |
---|---|
202 - Accettato | La richiesta viene accettata. Eseguire una query sull'URL dell'intestazione operation-location per lo stato della richiesta. |
Ottenere voci di utilizzo fatturate
Ottiene le voci di utilizzo valutate per il periodo di fatturazione chiuso.
Richiesta API
POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{invoiceId}?fragment={fragment}
Parametri della richiesta
Nome | In | Obbligatorio | Type | Descrizione |
---|---|---|---|---|
invoiceId | Percorso | Vero | String | Numero di fattura del Centro per i partner. |
Frammento | Query | Falso | String | Scegliere "full" per una risposta completa o "basic" per un subset di attributi. Il valore predefinito è "full". Vedere l'elenco degli attributi in questo articolo. |
Parametri della richiesta deprecati
La versione più recente dell'API non richiede i parametri URI seguenti:
Nome | Descrizione |
---|---|
Provider | N/D. Restituisce tutto l'utilizzo del piano di Azure ed è equivalente alla "onetime" delle API V1 esistenti. |
hasPartnerEarnedCredit | N/D. (restituisce tutti i dati, indipendentemente dalla pec). |
Dimensione | N/D. |
Sfalsamento | N/D. |
seekOperation | N/D. |
Intestazione della richiesta
Vedere l'elenco delle intestazioni di richiesta per l'API in questo articolo.
Testo della richiesta
N/D.
Risposta dell'API
HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e83ab1d4640
L'API restituisce "HTTP 202 Accepted". In base all'API della richiesta, è possibile restituire altri stati standard.
Nome | Descrizione |
---|---|
202 - Accettato | La richiesta viene accettata. Controllare lo stato della richiesta eseguendo il polling dell'URL dell'intestazione operation-location. |
Passaggio 2: Controllare lo stato della richiesta
Attendere un HTTP 200 con stato del terminale riuscito o non riuscito. L'URL del manifesto è "resourceLocation" nello stato di esito positivo.
Ottenere lo stato dell'operazione
Ottiene lo stato di una richiesta di dati di riconciliazione.
Richiesta API
GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e63ab1d3640
Parametri della richiesta
Nome | In | Obbligatorio | Type | Descrizione |
---|---|---|---|---|
operationId | Percorso | Vero | String | ID operazione. |
Intestazione della richiesta
Vedere l'elenco delle intestazioni di richiesta per l'API in questo articolo.
Testo della richiesta
N/D.
Stato della risposta
Oltre allo stato HTTP standard in questo articolo, l'API può restituire questo stato HTTP:
Nome | Descrizione |
---|---|
410 - Non disponibile | Ogni collegamento di operazione è attivo per una quantità specificata di tempo controllato dal server. Al termine del tempo, il client deve inviare una nuova richiesta. |
Payload della risposta
Il payload della risposta API restituisce gli attributi seguenti:
Nome | Facoltativo | Descrizione |
---|---|---|
createdDateTime | false | Tempo richiesta. |
lastActionDateTime | false | Ora di modifica dello stato. |
resourceLocation | true | URI del payload del manifesto. |
stato | false | Valori e azioni possibili. |
Valore | Azione client |
---|---|
notstarted | Effettuare un'altra chiamata per controllare lo stato dopo l'attesa del tempo specificato nell'intestazione "Retry-After". |
in esecuzione | Effettuare un'altra chiamata per controllare lo stato dopo l'attesa del tempo specificato nell'intestazione "Retry-After". |
succeeded | Stato finale dell'operazione, che indica che i dati sono pronti. Recuperare il payload del manifesto usando l'URI specificato in resourceLocation. |
failed | Stato terminale, che indica un errore permanente. Riavviare l'operazione. |
Per l'attributo error:
Nome | Facoltativo | Descrizione |
---|---|---|
Errore | true | Dettagli dell'errore forniti in formato JSON se lo stato dell'operazione non è riuscito. |
Nome | Facoltativo | Descrizione |
---|---|---|
messaggio | false | Descrive l'errore in dettaglio |
codice | false | Indica il tipo di errore che si è verificato |
Richiesta API
GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640
Risposta dell'API
La risposta suggerisce l'attesa di 10 secondi prima di riprovare durante l'elaborazione dei dati.
HTTP/1.1 200 OK
Retry-After: 10
{
"createdDateTime": "2022-06-1T10-01-03.4Z",
"lastActionDateTime":" 2022-06-1T10-01-05Z",
"status": "running"
}
Richiesta API
(10 secondi dopo la richiesta precedente)
GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640
Risposta dell'API
L'API restituisce lo stato "succeeded" e l'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"
}
Passaggio 3: Ottenere il payload del manifesto
Il chiamante effettua una richiesta GET all'URL del manifesto per altre informazioni sulla posizione in cui vengono archiviati i dati di riconciliazione nei BLOB di Azure.
Recupero del manifesto
Recupera il manifesto con informazioni sulla posizione di archiviazione di Azure dei dati di riconciliazione.
Richiesta API
GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/{manifestId}
Parametri della richiesta
Nome | In | Obbligatorio | Type | Descrizione |
---|---|---|---|---|
manifestId | Percorso | Vero | String | ID manifesto. |
Intestazione della richiesta
Vedere l'[elenco di intestazioni di richiesta per l'API] in questo articolo.
Testo della richiesta
N/D.
Stato della risposta
Oltre allo stato HTTP standard, l'API può restituire questo stato HTTP:
Nome | Descrizione |
---|---|
410 - Non disponibile | Ogni collegamento al manifesto è attivo per una quantità specificata di tempo controllato dal server. Al termine del tempo, il client deve inviare una nuova richiesta. |
Payload della risposta
La risposta dell'API restituisce gli attributi seguenti:
Nome | Descrizione |
---|---|
Versione | Versione dello schema del manifesto. |
dataFormat | Formato del file di dati di fatturazione. Valori possibili compressiJSONLines: ogni BLOB è un file compresso e i dati nel file sono in formato di righe JSON. Per accedere ai dati, decomprimere il file. |
utcCreatedDateTime | Ora di creazione del file manifesto. |
eTag | Versione dei dati del manifesto. Una modifica nelle informazioni di fatturazione genera un nuovo valore eTag. |
partnerTenantId | ID tenant partner. |
rootFolder | Directory radice del file. |
rootFolderSAS | Token di firma di accesso condiviso per l'accesso al file. |
partitionType | Questa proprietà divide i dati. Se una determinata partizione ha più del numero supportato, i dati vengono suddivisi in più file corrispondenti a "partitionValue". Per impostazione predefinita, il sistema partiziona i dati in base al numero di elementi di riga nel file. Non impostare un numero fisso di voci o dimensioni del file nel codice perché il principio di partizionamento potrebbe cambiare. |
blobCount | Numero totale di file per questo ID tenant partner. |
sizeInBytes | Byte totali in tutti i file. |
blob | Matrice JSON di oggetti "BLOB" con i dettagli di tutti i file per l'ID tenant partner. |
Oggetto BLOB | |
Nome | Nome del BLOB. |
sizeInBytes | Dimensioni del BLOB in byte. |
partitionValue | Partizione che contiene il file. Una partizione di grandi dimensioni verrà suddivisa in più file, ognuno con lo stesso "partitionValue". |
Payload del manifesto di esempio
{
"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"
}
]
}
Passaggio 4: Scaricare i dati di riconciliazione dell'utilizzo dalla posizione di archiviazione
Ottenere il token di firma di accesso condiviso e il percorso di archiviazione BLOB dalle proprietà "rootFolderSAS" e "rootFolder" la risposta dell'API del payload del manifesto. Usare Archiviazione di Azure SDK/strumento per scaricare e decomprimere il file BLOB. È in formato di righe JSON .
Intestazioni di richiesta API standard
Tutte le API accettano le intestazioni seguenti:
Nome | Obbligatorio | Type | Descrizione |
---|---|---|---|
Autorizzazione | Vero | String | Token di connessione dell'autorizzazione. |
ms-correlationid | Falso | String | Strumento di rilevamento delle richieste interno. Ogni richiesta genera un nuovo tracker (GUID). |
ms-cv | Falso | String | Strumento di rilevamento delle richieste interno. |
ms-requestid | Falso | String | ID di idempotenza della richiesta. |
Stati di risposta API standard
Di seguito sono riportati gli stati HTTP della risposta dell'API:
Nome | Descrizione |
---|---|
400 Richiesta non valida | Dati mancanti o non corretti. I dettagli dell'errore sono inclusi nel corpo della risposta. |
401 - Non autorizzato | Il chiamante non è autenticato e deve eseguire l'autenticazione con il servizio API partner prima di effettuare la prima chiamata. |
403 Negato | Il chiamante non è autorizzato a effettuare la richiesta. |
500 Errore interno del server | L'API o una delle relative dipendenze non è in grado di soddisfare la richiesta. Riprovare. |
404 Not Found | Risorsa non disponibile con i parametri di input. |
410 - Non disponibile | Timeout o scadenza del collegamento del manifesto. Inviare una nuova richiesta. |
Attributi dei dati di utilizzo
La risposta dell'API di utilizzo fatturata o non fatturata con il parametro di richiesta "completo" o "basic" restituisce gli attributi seguenti:
Attributo | "full" | "basic" |
---|---|---|
PartnerId | yes | yes |
PartnerName | yes | yes |
CustomerId | yes | yes |
CustomerName | yes | Sì |
CustomerDomainName | yes | no |
CustomerCountry | yes | no |
MpnId | yes | no |
Tier2MpnId | yes | no |
InvoiceNumber | yes | yes |
ProductId | yes | yes |
SkuId | yes | yes |
AvailabilityId | yes | no |
SkuName | yes | yes |
ProductName | yes | no |
PublisherName | yes | yes |
PublisherId | yes | no |
SubscriptionDescription | yes | no |
SubscriptionId | yes | yes |
ChargeStartDate | yes | yes |
ChargeEndDate | yes | yes |
UsageDate | yes | yes |
MeterType | yes | no |
MeterCategory | yes | no |
ID contatore | yes | no |
MeterSubCategory | yes | no |
MeterName | yes | no |
MeterRegion | yes | no |
Unità | yes | yes |
ResourceLocation | yes | no |
ConsumedService | yes | no |
ResourceGroup | yes | no |
ResourceURI | yes | yes |
ChargeType | yes | yes |
UnitPrice | yes | yes |
Quantità | yes | yes |
UnitType | yes | no |
BillingPreTaxTotal | yes | yes |
BillingCurrency | yes | yes |
PricingPreTaxTotal | yes | yes |
PricingCurrency | yes | yes |
ServiceInfo1 | yes | no |
ServiceInfo2 | yes | no |
Tag | yes | no |
AdditionalInfo | yes | no |
EffectiveUnitPrice | yes | yes |
PCToBCExchangeRate | yes | yes |
PCToBCExchangeRateDate | yes | no |
EntitlementId | yes | yes |
EntitlementDescription | yes | no |
PartnerEarnedCreditPercentage | yes | no |
CreditPercentage | yes | yes |
CreditType | yes | yes |
BenefitOrderID | yes | yes |
BenefitID | yes | no |
BenefitType | yes | yes |