Abrechnungs- und Abstimmungs-API v2 (Beta)

Gilt für: Partner Center | Partner Center-Betrieb durch 21Vianet | Partner Center für Microsoft Cloud for US Government

Verwenden Sie diese APIs, um asynchron abgerechnete und nicht abgerechnete Nutzungsdaten abzurufen.

Hinweis

Diese API für die abgerechnete tägliche Nutzung funktioniert nach dem 30. Juni 2024 nicht mehr. Weitere Informationen finden Sie in den folgenden Details, um zu entscheiden, welche Version Sie wann verwendet sollten.

  • Wenn Sie nicht zu v2 GA gewechselt haben, verwenden Sie diese API bis zum 30. Juni 2024, um die täglich bewerteten Nutzungspositionen für Rechnungen zu erhalten, die für Abrechnungszeiträume zwischen September 2022 und Juni 2024 erstellt werden.
  • Verwenden Sie nur API v2 GA nach dem 30. Juni 2024, um die täglich bewerteten Nutzungspositionen für Rechnungen zu erhalten, die ab September 2022 für Abrechnungszeiträume erstellt werden.

Diese API für nicht berechnete tägliche Nutzung funktioniert nach dem 30. Juni 2024 nicht mehr. Weitere Informationen finden Sie in den folgenden Details, um zu entscheiden, welche Version Sie wann verwendet sollten.

  • Wenn Sie nicht zu v2 GA gewechselt haben, verwenden Sie diese API bis zum 30. Juni 2024, um nicht berechnete tägliche Nutzungspositionen für aktuelle und vorherige Abrechnungszeiträume zu erhalten.
  • Verwenden Sie nach dem 30. Juni 2024 nur die API v2 GA, um nicht abgerechnete täglich bewertete Verbrauchspositionen für die aktuelle und vorherige Abrechnung zu erhalten.

Informationen zum Vorbereiten der Migration zu den neuen v2 GA-APIs finden Sie unter dem folgenden Link:

Abgerechnete und nicht abgerechnete tägliche Nutzungsabstimmungs-API v2 (GA)

Hinweis

Sie können Ihre täglichen unbilligten Nutzungsdaten über das API- oder Partner Center-Portal abrufen. Es kann bis zu 24 Stunden dauern, bis die Daten verfügbar sind. Je nach Standort und dem Zeitpunkt, an dem die Zähler die Nutzung melden, kann es jedoch weitere Verzögerungen geben.

Manchmal werden die neuesten nicht berechneten Nutzungsdaten möglicherweise erst angezeigt, wenn die in Rechnung gestellten Nutzungsdaten für den vorherigen Monat übermittelt werden. Dies erfolgt, um sicherzustellen, dass in Rechnung gestellte Nutzungsdaten innerhalb der vereinbarten Zeit übermittelt werden. Sobald Sie die in Rechnung gestellten Nutzungsdaten erhalten haben, sollten Sie alle aktualisierten nicht berechneten Nutzungsdaten ab Beginn des Monats abrufen können.

Wichtig

Die täglich bewerteten Nutzungsdaten enthalten keine Gebühren für diese Produkte:

  • Azure-Reservierung
  • Azure-Sparplan
  • Office
  • Dynamics
  • Microsoft Power Apps
  • Unbefristete Software
  • Softwareabonnement
  • SaaS-Produkt von Drittanbietern

API-Übersicht

Die asynchrone API ist eine neuartige Methode für den schnellen Zugriff auf Abrechnungs- und Abstimmungsdaten in verwaltbaren Blöcken. Es beseitigt die Notwendigkeit, eine offene Verbindung für Stunden zu Standard und Millionen von Transaktionen iterativ zu durchlaufen.

Wir haben die Muster für Startschlüssel und asynchrone Anforderung/Antwort verwendet, um unsere Rechnungs- und Abstimmungs-APIs zu optimieren und die Ergebnisse asynchron bereitzustellen. API-Antworten bieten ein Token für den Zugriff auf die Abstimmungsdaten mit allen Attributen oder einer Teilmenge.

Sie können die Nutzungsdaten asynchron mit drei neuen Schritten (API-Endpunkte) herunterladen. Weitere Informationen finden Sie in folgenden Artikeln:

Endpunkt für Verwendungszeilenelemente

Verwenden Sie diese API, um auf rechnungsierte oder nicht abgerechnete Verbrauchspositionen zuzugreifen. Er gibt einen 202 HTTP-Status und einen Speicherortheader mit der URL zurück, die Sie in regelmäßigen Abständen abfragen müssen, bis Sie einen Erfolgsstatus mit einer Manifest-URL erhalten.

Vorgangsstatusendpunkt

Bis Sie den Erfolgsstatus erhalten, müssen Sie diese API in regelmäßigen Abständen abrufen. Wenn die angeforderten Daten nicht verfügbar sind, enthält die API-Antwort einen Retry-After-Header , der angibt, wie lange Sie warten sollten, bevor Sie eine andere Anforderung senden.

Manifestendpunkt

Dieser Endpunkt stellt einen Speicherordner bereit, aus dem tatsächliche Abrechnungsdaten heruntergeladen werden können. Die Antwort teilt oder partitioniert die Dateien, um den Durchsatz und die E/A-Parallelität zu optimieren.

Sequenzdiagramm

Das folgende Diagramm zeigt die Schritte zum Herunterladen von Abstimmungsdaten.

Diagramm, das die zum Herunterladen von Abstimmungsdaten erforderlichen Schritte zeigt.

Benutzeraktionssequenz

Führen Sie die folgenden Schritte aus, um Abstimmungsdaten abzurufen.

Schritt 1: Senden einer Anforderung

Senden Sie eine POST-Anforderung an den API-Endpunkt.

Abrufen nicht abgerechneter Nutzungspositionen

Erhalten Sie nicht berechnete Nutzungspositionen für den aktuellen oder letzten Kalendermonat.

API-Anforderung

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

Anforderungsparameter

Name In Erforderlich Typ Beschreibung
fragment Abfrage False String Wählen Sie "vollständig" für eine vollständige Antwort oder "einfach" für eine Teilmenge von Attributen aus. Der Standardwert ist "vollständig". Eine Liste der Attribute finden Sie in diesem Artikel.
period Abfrage True String Verwenden Sie "current" oder "last", um die Verwendung für den aktuellen oder letzten Kalendermonat zu erhalten. Der Wert "last" ist identisch mit "previous" in vorhandenen V1-APIs.
currencyCode Abfrage True String Partnerabrechnungswährungscode.

Veraltete Anforderungsparameter

Für die neuere API-Version sind die folgenden URI-Parameter nicht erforderlich:

Name Beschreibung
Anbieter N/V. (Es gibt alle Azure-Plannutzung zurück und entspricht dem "einmaligen" vorhandener V1-APIs.)
hasPartnerEarnedCredit N/V. (gibt alle Daten unabhängig von PEC zurück.)
Size N/V.
Abweichung N/V.
seekOperation N/V.

Anforderungsheader

Eine Liste der Anforderungsheader für die API finden Sie in diesem Artikel.

Anforderungstext

N/V.

API-Antwort

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

DIE API gibt DEN HTTP-Status 202 zurück. Basierend auf der Anforderung kann die API einen anderen Standardstatus zurückgeben.

Name Beschreibung
202 – Akzeptiert Die Anforderung wurde akzeptiert. Fragen Sie die URL des Vorgangsspeicherortheaders nach dem Anforderungsstatus ab.

Abrufen von Abrechnungspositionen

Rufen Sie bewertete Nutzungspositionen für den abgeschlossenen Abrechnungszeitraum ab.

API-Anforderung

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

Anforderungsparameter

Name In Erforderlich Typ Beschreibung
invoiceId Pfad True String Die Partner Center-Rechnungsnummer.
Fragment Abfrage False String Wählen Sie "vollständig" für eine vollständige Antwort oder "einfach" für eine Teilmenge von Attributen aus. Der Standardwert ist "vollständig". Eine Liste der Attribute finden Sie in diesem Artikel.

Veraltete Anforderungsparameter

Für die neuere API-Version sind die folgenden URI-Parameter nicht erforderlich:

Name Beschreibung
Anbieter N/V. (Es gibt alle Azure-Plannutzung zurück und entspricht dem "einmaligen" vorhandener V1-APIs.)
hasPartnerEarnedCredit N/V. (gibt alle Daten unabhängig von PEC zurück.)
Size N/V.
Abweichung N/V.
seekOperation N/V.

Anforderungsheader

Eine Liste der Anforderungsheader für die API finden Sie in diesem Artikel.

Anforderungstext

N/V.

API-Antwort

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

DIE API gibt "HTTP 202 Accepted" zurück. Basierend auf der Anforderungs-API kann ein anderer Standardstatus zurückgegeben werden.

Name Beschreibung
202 – Akzeptiert Die Anforderung wurde akzeptiert. Überprüfen Sie den Anforderungsstatus, indem Sie die URL des Vorgangsspeicherortheaders abrufen.

Schritt 2: Überprüfen des Anforderungsstatus

Warten Sie, bis ein HTTP 200 mit einem Terminalstatus erfolgreich war oder fehlgeschlagen ist. Die Manifest-URL lautet "resourceLocation" im Erfolgsstatus.

Abrufen des Vorgangsstatus

Ruft den Status einer Abstimmungsdatenanforderung ab.

API-Anforderung

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

Anforderungsparameter

Name In Erforderlich Typ Beschreibung
operationId Pfad True String Vorgangs-ID.

Anforderungsheader

Eine Liste der Anforderungsheader für die API finden Sie in diesem Artikel.

Anforderungstext

N/V.

Antwortstatus

Zusätzlich zum standardmäßigen HTTP-Status in diesem Artikel kann die API den HTTP-Status unter http-Status zurückgeben:

Name Beschreibung
410 Nicht mehr vorhanden Jede Vorgangsverknüpfung ist für eine bestimmte Serverzeit aktiv. Nachdem die Zeit verstrichen ist, muss der Client eine neue Anforderung senden.

Antwortnutzlast

Die API-Antwortnutzlast gibt die folgenden Attribute zurück:

Name Optional Beschreibung
createdDateTime false Anforderungszeit.
lastActionDateTime false Statusänderungszeit.
resourceLocation true Der Manifestnutzlast-URI.
status false Mögliche Werte und Aktionen.
Wert Clientaktion
nicht gestartet Führen Sie einen weiteren Aufruf aus, um den Status zu überprüfen, nachdem Sie auf die im Header "Retry-After" angegebene Zeit gewartet haben.
„Wird ausgeführt“ Führen Sie einen weiteren Aufruf aus, um den Status zu überprüfen, nachdem Sie auf die im Header "Retry-After" angegebene Zeit gewartet haben.
succeeded Der endgültige Betriebszustand, der angibt, dass Daten bereit sind. Rufen Sie die Manifestnutzlast mithilfe des in resourceLocation angegebenen URI ab.
„Fehlgeschlagen“ Terminalstatus, der einen dauerhaften Fehler angibt. Starten Sie den Vorgang neu.

Für Fehlerattribute:

Name Optional Beschreibung
error true Fehlerdetails im JSON-Format, wenn der Status des Vorgangs fehlgeschlagen ist.
Name Optional Beschreibung
message false Beschreibt den Fehler im Detail.
code false Gibt die Art des aufgetretenen Fehlers an.

API-Anforderung

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

API-Antwort

Die Antwort schlägt vor, 10 Sekunden zu warten, bevor sie beim Verarbeiten von Daten erneut versucht wird.

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

API-Anforderung

(10 Sekunden nach der früheren Anforderung)

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

API-Antwort

Die API gibt den Status "erfolgreich" und den URI "resourceLocation" zurück.

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"  
}

Schritt 3: Abrufen der Manifestnutzlast

Der Aufrufer sendet eine GET-Anforderung an die Manifest-URL, um mehr darüber zu erfahren, wo die Abstimmungsdaten in Azure-Blobs gespeichert sind.

Abrufen des Manifests

Ruft das Manifest mit Informationen zum Azure-Speicherort der Abstimmungsdaten ab.

API-Anforderung

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

Anforderungsparameter

Name In Erforderlich Typ Beschreibung
manifestId Pfad True String Die Manifest-ID.

Anforderungsheader

Siehe die [Liste der Anforderungsheader für die API] in diesem Artikel.

Anforderungstext

N/V.

Antwortstatus

Zusätzlich zum standardmäßigen HTTP-Status kann die API den HTTP-Status unter http-Status zurückgeben:

Name Beschreibung
410 Nicht mehr vorhanden Jede Manifestverknüpfung ist für eine bestimmte Menge servergesteuerter Zeit aktiv. Nachdem die Zeit verstrichen ist, muss der Client eine neue Anforderung senden.

Antwortnutzlast

Die API-Antwort gibt die folgenden Attribute zurück:

Name Beschreibung
Version Die Manifestschemaversion.
dataFormat Das Dateiformat für Abrechnungsdaten. Mögliche Werte komprimiertJSONLines: Jedes Blob ist eine komprimierte Datei und Daten in der Datei im JSON-Zeilenformat . Dekomprimieren Sie die Datei, um auf die Daten zuzugreifen.
utcCreatedDateTime Erstellungszeit der Manifestdatei.
eTag Manifestdatenversion. Eine Änderung der Abrechnungsinformationen generiert einen neuen eTag-Wert.
partnerTenantId Partnermandanten-ID.
rootFolder Das Stammverzeichnis der Datei.
rootFolderSAS Das SAS-Token für den Zugriff auf die Datei.
partitionType Diese Eigenschaft dividiert die Daten. Wenn eine angegebene Partition mehr als die unterstützte Zahl aufweist, werden die Daten in mehrere Dateien aufgeteilt, die dem "partitionValue" entsprechen. Die Daten werden standardmäßig durch die Anzahl der Zeilenelemente in der Datei partitioniert. Legen Sie im Code keine feste Anzahl von Zeilenelementen oder Dateigrößen fest, da sich diese ändern können.
blobCount Gesamtanzahl der Dateien für diese Partnermandanten-ID.
sizeInBytes Gesamtanzahl der Bytes in allen Dateien.
blobs Ein JSON-Array von "blob"-Objekten mit den Details aller Dateien für die Partnermandanten-ID.
Blob-Objekt
Name Blobs Name.
sizeInBytes BLOB-Größe in Byte.
partitionValue Die Partition, die die Datei enthält. Eine große Partition wird in mehrere Dateien aufgeteilt, jeweils mit demselben "partitionValue".

Beispielmanifestnutzlast

{
"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"
  }
  ]
}

Schritt 4: Herunterladen von Nutzungsabstimmungsdaten vom Speicherort

Rufen Sie das SAS-Token und den Blobspeicherort aus den Eigenschaften "rootFolderSAS" und "rootFolder" der Manifestnutzlast-API-Antwort ab. Verwenden Sie das Azure Storage SDK/Tool, um die BLOB-Datei herunterzuladen und zu entpacken. Es befindet sich im JSON-Zeilenformat .

Standard-API-Anforderungsheader

Alle APIs akzeptieren die folgenden Header:

Name Erforderlich Typ Beschreibung
Autorisierung True String Autorisierungs-Bearertoken.
ms-correlationid False String Eine interne Anforderungsverfolgung. Jede Anforderung generiert einen neuen Tracker (GUID).
ms-cv False String Eine interne Anforderungsverfolgung.
ms-requestid False String Die Anforderungs-Idempotency-ID.

Standard-API-Antwortstatus

Im Folgenden sind die HTTP-Status aus der API-Antwort aufgeführt:

Name Beschreibung
400 – Ungültige Anforderung Es fehlen oder falsche Daten. Die Fehlerdetails sind im Antworttext enthalten.
401 – Nicht autorisiert Der Aufrufer ist nicht authentifiziert und muss sich vor dem ersten Aufruf beim Partner-API-Dienst authentifizieren.
403 Verboten Der Anrufer ist nicht berechtigt, die Anforderung zu stellen.
500: Interner Serverfehler Die API oder eine ihrer Abhängigkeiten kann die Anforderung nicht erfüllen. Versuchen Sie es später noch mal.
404 Nicht gefunden Ressource mit Eingabeparametern nicht verfügbar.
410 Nicht mehr vorhanden Der Manifestlink ist abgelaufen oder verstrichen. Senden Sie eine neue Anforderung.

Verwendungsdatenattribute

Die Antwort der abgerechneten oder nicht abgerechneten Verwendungs-API mit dem Anforderungsparameter "full" oder "basic" gibt die folgenden Attribute zurück:

Attribut "vollständig" "einfach"
PartnerId ja ja
PartnerName ja ja
CustomerId ja ja
CustomerName ja Ja
CustomerDomainName ja Nein
CustomerCountry ja Nein
MpnId ja Nein
Tier2MpnId ja Nein
InvoiceNumber ja ja
ProductId ja ja
SkuId ja ja
AvailabilityId ja Nein
SkuName ja ja
ProductName ja Nein
PublisherName ja ja
PublisherId ja Nein
SubscriptionDescription ja Nein
SubscriptionId ja ja
ChargeStartDate ja ja
ChargeEndDate ja ja
UsageDate ja ja
MeterType ja Nein
MeterCategory ja Nein
MeterId ja Nein
MeterSubCategory ja Nein
MeterName ja Nein
MeterRegion ja Nein
Einheit ja ja
ResourceLocation ja Nein
ConsumedService ja Nein
ResourceGroup ja Nein
ResourceURI ja ja
ChargeType ja ja
UnitPrice ja ja
Menge ja ja
UnitType ja Nein
BillingPreTaxTotal ja ja
BillingCurrency ja ja
PricingPreTaxTotal ja ja
PricingCurrency ja ja
ServiceInfo1 ja Nein
ServiceInfo2 ja Nein
`Tags` ja Nein
AdditionalInfo ja Nein
EffectiveUnitPrice ja ja
PCToBCExchangeRate ja ja
EntitlementId ja ja
EntitlementDescription ja Nein
PartnerEarnedCreditPercentage ja Nein
CreditPercentage ja ja
CreditType ja ja
BenefitOrderID ja ja
BenefitID ja Nein
BenefitType ja ja