Auf Englisch lesen

Teilen über


Rechnungsabstimmungs-API v2 (GA)

gilt für: Partner Center (nicht verfügbar in Azure Government oder Azure China 21Vianet)

Verständnis der Architektur

Die neue asynchrone API bietet erhebliche Fortschritte bei der Behandlung des Abrechnungs- und Abstimmungsdatenzugriffs. Dieser Ansatz löst Herausforderungen im Zusammenhang mit herkömmlichen synchronen Methoden, z. B. der Aufrechterhaltung langlebiger Verbindungen und der Verarbeitung großer Datenbatches. Hier sind die wichtigsten Vorteile und Mechanismen dieser API:

Wichtigste Komponenten

Sicherer Zugriff mit Valetschlüsselmuster

Das Valetschlüsselmuster bietet sicheren, eingeschränkten Zugriff auf Ihre Abrechnungsdaten. Ähnlich wie ein Valet-Schlüssel es jemandem ermöglicht, Ihr Auto ohne Zugriff auf den Trunk zu fahren, stellt dieses Muster eine präzise Zugriffssteuerung sicher. Statt Anmeldeinformationen freizugeben, gewährt ein SAS-Token (Shared Access Signature) begrenzten, zeitlich gebundenen Zugriff auf bestimmte Ressourcen. Dieses Muster reduziert das Risiko eines nicht autorisierten Zugriffs, indem präzise Ablaufzeiten und Zugriffsberechtigungen konfiguriert werden.

Verbesserte Effizienz durch asynchrones Anforderungsantwortmuster

Denken Sie daran, dass sie in einem ausgelasteten Restaurant bestellt wird. Anstatt auf den Schalter zu warten, erhalten Sie einen Buzzer und können andere Dinge tun, während Ihre Bestellung vorbereitet ist. Wenn die Daten bereit sind, benachrichtigt Sie das System.

Die asynchrone Art der API bedeutet, dass Sie eine Anforderung stellen und das System sie im Hintergrund verarbeitet. Diese asynchrone Anforderungsantwort verwendet effizient Ressourcen, reduziert die Serverlast und minimiert Timeouts und Fehler, die bei synchronen Datenabrufen auftreten.

Flexibilität bei Datenzugriffsberechtigungen

SAS-Token bieten Flexibilität beim Verwalten von Datenzugriffsberechtigungen. Sie können Token generieren, die Zugriff auf alle Attribute der Rechnungsabrechnungsdaten gewähren oder den Zugriff auf bestimmte Teilmengen beschränken. Diese Granularität ermöglicht Es Organisationen, den Datenzugriff gemäß internen Richtlinien und behördlichen Anforderungen anzupassen, um Sicherheit und Compliance zu verbessern.

Vereinfachter Workflow und verbesserte Datenverarbeitungszeiten

Das asynchrone Anforderungsantwortmuster optimiert die Datenverarbeitung, indem der dynamische Zugriff anstelle von festen Batches von 2.000 Zeilenelementen ermöglicht wird. Dieser Ansatz führt zu schnelleren Ergebnissen und verbesserten Verarbeitungszeiten und vereinfacht die Integration von Abrechnungs- und Abstimmungsdaten in bestehende Systeme und Workflows.

Vorteile

  1. Leistungsvorteile

    Anstatt langlebige Verbindungen beizubehalten und feste Batches zu verarbeiten, ermöglicht Ihnen das neue System Folgendes:

    • Erstellen Sie eine schnelle anfängliche Anforderung.

    • Empfangen eines sicheren Zugriffstokens.

    • Verarbeiten Sie Daten in Ihrem eigenen Tempo.

    • Greifen Sie genau darauf zu, was Sie benötigen.

  2. Sicherheitsverbesserungen

    Das Valet-Schlüsselmuster, das über SAS-Token implementiert wird, bietet Folgendes:

    • Zeitlich begrenzter Zugriff.

    • Eingeschränkte Berechtigungen.

    • Abschaffung der Weitergabe oder Speicherung von dauerhaften Anmeldeinformationen

    • Differenzierte Zugriffssteuerung

  3. Architekturvorteile

    Das asynchrone Anforderungsantwortmuster verhält sich wie ein persönlicher Assistent, der:

    • Annehmen Ihrer Anforderung

    • Ausführen der Aufgabe im Hintergrund

    • Benachrichtigt Sie, wenn alles bereit ist.

Einführen optimierter APIs für eine verbesserte Leistung

Durch die Einführung dieser optimierten APIs wird der Workflow optimiert und die Gesamtleistung in der Datenverwaltung verbessert. Mit der sicheren Zugriffssteuerung und effizienten Abrufmechanismen erzielen Sie bessere Ergebnisse mit weniger Aufwand, was zu einer verbesserten Betrieblichen Effizienz führt.

Abschließend ist die neue asynchrone API für den Zugriff auf Abrechnungs- und Abstimmungsdaten über Azure-Blobs ein leistungsfähiges Tool. Es bietet sicheren, effizienten Zugriff auf Finanzdaten, straffende Workflows, Reduzierung der Serverlasten und Verbesserung der Verarbeitungszeiten, alles mit hoher Sicherheit und Compliance.

Hinweis

Die neue API wird nicht auf dem Partner Center-API-Host gehostet. Stattdessen finden Sie sie in Microsoft Graph unter Verwenden der Microsoft Graph-API zum Exportieren von Partnerabrechnungsdaten – Microsoft Graph v1.0. Informationen zum Zugriff auf diese API finden Sie in den folgenden Details.

Zulassen, dass Ihre App sicher auf Partnerabrechnungsdaten zugreifen kann

Um Ihrer App den Zugriff auf Partnerabrechnungsdaten zu ermöglichen, klicken auf Sie diesen Link, und machen Sie sich mit den Authentifizierungs- und Autorisierungsgrundlagen für Microsoft Graph vertraut. Dieser Schritt ist entscheidend, da so sichergestellt wird, dass Ihre App sicher auf die erforderlichen Daten zugreifen kann.

Registrieren Sie Ihre App und weisen Sie die Berechtigung "PartnerBilling.Read.All" zu.

Sie können die Berechtigung "PartnerBilling.Read.All" entweder über das Azure-Portal oder das Microsoft Entra Admin Center zuweisen. Durch Ausführen dieser Schritte können Sie sicherstellen, dass Ihre App über den erforderlichen Zugriff auf Partnerabrechnungsdaten verfügt. Gehen Sie wie folgt vor:

  1. Registrieren Sie Ihre App auf der Microsoft Entra-Homepage unter dem Abschnitt für App-Registrierungen.
  2. Weisen Sie die erforderlichen Berechtigungen zu, indem Sie zur Microsoft Entra App-Seite wechseln. Wählen Sie im Abschnitt zu den API-Berechtigungen zunächst die Option Berechtigung hinzufügen und dann den Bereich PartnerBilling.Read.All aus.

Informationen zu den wichtigsten API-Endpunkten

Zum asynchronen Abrufen der New Commerce-Rechnungsabstimmungspositionen stehen zwei wichtige API-Endpunkte zur Verfügung. Diese Endpunkte helfen Ihnen bei der effizienten Verwaltung Ihres Rechnungsausgleichsprozesses. Befolgen Sie diesen optimierten Leitfaden, um schnell loszulegen.

Verwenden des Rechnungsabstimmungsendpunkts

Verwenden Sie zunächst diese API, um New Commerce-Rechnungsabstimmungspositionen zu fetchen. Wenn Sie eine Anforderung übermitteln, erhalten Sie den HTTP-Status 202 und einen Location-Header mit einer URL. Rufen Sie diese URL regelmäßig ab, bis ein erfolgreicher Status angezeigt wird und Sie eine Manifest-URL erhalten.

Verwenden Sie den Betriebsstatus-Endpunkt

Überprüfen Sie als Nächstes den Vorgangsstatus, indem Sie diese API in regelmäßigen Abständen aufrufen. Wenn die Daten nicht bereit sind, enthält die Antwort einen Retry-After-Header, der angibt, wie lange Sie warten müssen, bevor Sie es erneut versuchen können. Nach Abschluss des Vorgangs erhalten Sie eine Manifestressource mit einem Speicherordnerlink zum Herunterladen der Nutzungsdaten. Die Antwort segmentiert die Dateien, um den Durchsatz zu erhöhen und eine E/A-Parallelität zu ermöglichen.

Überprüfen des Sequenzdiagramms

Hier sehen Sie ein Sequenzdiagramm, das die Schritte zum Herunterladen der New Commerce-Rechnungsabstimmungsdaten zeigt.

Diagramm, das die Schritte zum Herunterladen von Abstimmungsdaten zeigt

Folgen Sie der Benutzeraktionssequenz, um Rechnungsabgleichungsdaten abzurufen.

Dies ist die Aktionssequenz des Benutzers zum Abrufen von Rechnungsabgleichsdaten:

Senden einer POST-Anforderung

Übermitteln Sie eine POST-Anforderung an den API-Endpunkt.

Abrufen von Rechnungsabstimmungspositionen

Rufen Sie die Rechnungsabstimmungspositionen ab.

API-Anforderung

HTTP
POST https://graph.microsoft.com/v1.0/reports/partners/billing/reconciliation/billed/export

Accept: application/json

Content-Type: application/json

{

"invoiceId": "G016907411",

"attributeSet": "basic"

}

Abfrageparameter

N/V

Anforderungstext

Attribut Erforderlich Typ Beschreibung
attributeSet False Zeichenfolge Wählen Sie „full“ für alle Attribute oder „basic“ für eine begrenzte Anzahl aus. Wenn nichts angegeben wird, ist „full“ der Standardwert. Überprüfen Sie die Liste der Attribute in diesem Abschnitt. Optional.
invoiceId True Zeichenfolge Ein eindeutiger Bezeichner für jede Rechnung. Erforderlich.

Anforderungsheader

Fordern Sie mithilfe der unter Best Practices für die Verwendung von Microsoft Graph aufgeführten Schritte Header für die API an. Durch die Einhaltung dieser Richtlinien stellen Sie die Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit für Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.

API-Antwort

HTTP
HTTP/1.1 202 Accepted  
Location: <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Die API antwortet in der Regel mit dem HTTP-Status 202. In Abhängigkeit von Ihren Anforderungen können Sie auch andere Status erhalten. Diese Status sind im Abschnitt API-Standardantwortstatus aufgeführt.

Code Beschreibung
202 – Accepted Ihre Anforderung wurde akzeptiert. Um den Status Ihrer Anforderung zu überprüfen, fragen Sie die URL ab, die im Location-Header angegeben ist.

Überprüfen des Anforderungsstatus

Um den Status einer Anforderung nachzuverfolgen, stellen Sie sicher, dass Sie eine HTTP 200-Antwort erhalten. Dabei handelt es sich um einen Standardstatuscode, der den Status „erfolgreich“ oder „fehlgeschlagen“ angibt. Bei erfolgreichem Status finden Sie die Manifest-URL im Attribut „resourceLocation“. Dieses Attribut stellt einen Endpunkt für den Zugriff auf die erforderlichen Informationen bereit.

Abrufen des Vorgangsstatus

Ruft den Status einer Anforderung ab.

API-Anforderung

HTTP
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Anforderungsparameter

Name Einschließen in Erforderlich Typ Beschreibung
operationId Anforderungs-URI True Zeichenfolge Ein eindeutiger Bezeichner, um den Anforderungsstatus zu überprüfen. Erforderlich.

Anforderungsheader

Fordern Sie mithilfe der unter Best Practices für die Verwendung von Microsoft Graph aufgeführten Schritte Header für die API an. Durch die Einhaltung dieser Richtlinien stellen Sie die Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit für Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.

Anforderungstext

N/V.

Antwortstatus

Neben den HTTP-Standardstatus, die unter API-Standardantwortstatus aufgeführt sind, kann die API auch den folgenden HTTP-Status zurückgeben:

Code Beschreibung
410 – Gone Der Manifestlink läuft nach einer festgelegten Zeit ab. Um den Manifestlink erneut abzurufen, senden Sie eine neue Anforderung.

Nutzdaten der Antwort

Die API-Antwortnutzdaten enthalten die folgenden Attribute:

Attribut Erforderlich Beschreibung
id True Ein eindeutiger Bezeichner für jede Antwort
Erforderlich.
status True Werte und Aktionen: Erforderlich.
notstarted: Warten Sie die im Retry-After-Header angegebene Zeit ab, und führen Sie dann einen weiteren Aufruf aus, um den Status zu überprüfen.
running: Warten Sie die im Retry-After-Header angegebene Zeit ab, und führen Sie dann einen weiteren Aufruf aus, um den Status zu überprüfen.
succeeded: Die Daten sind bereit. Rufen Sie die Manifestnutzdaten mithilfe des in resourceLocation angegebenen URI ab.
failed: Der Vorgang ist permanent fehlgeschlagen. Starten Sie ihn neu.
createdDateTime True Zeitpunkt, zu dem die Anforderung gesendet wurde.
Erforderlich.
lastActionDateTime True Das letzte Mal, dass sich der Status geändert hat.
Erforderlich.
resourceLocation False Der URI für die Manifestnutzdaten.
Optional.
error False Details zu Fehlern, die im JSON-Format bereitgestellt werden.
Optional.
Enthaltene Attribute:
message: Beschreibung des Fehlers.
code: Der Fehlertyp.

Ressourcenspeicherortobjekt

Attribut Beschreibung
id Ein eindeutiger Bezeichner für das Manifest.
schemaVersion Version des Manifestschemas.
dataFormat Format der Abrechnungsdatendatei.
compressedJSON: Datenformat, bei dem jedes Blob eine komprimierte Datei ist, die Daten im JSON-Zeilenformat enthält. Um die Daten aus jedem Blob abzurufen, dekomprimieren Sie sie.
createdDateTime Datum und Uhrzeit der Erstellung der Manifestdatei.
eTag Version der Manifestdaten. Bei jeder Änderung der Abrechnungsinformationen wird ein neuer Wert generiert.
partnerTenantId Microsoft Entra ID-Instanz des Mandanten des Partners.
rootDirectory Stammverzeichnis der Datei.
sasToken SAS-Token (Shared Access Signature), mit dem Sie alle Dateien unter dem Verzeichnis lesen können.
partitionType Teilt die Daten auf der Grundlage des Attributs „partitionValue“ in mehrere Blobs auf. Das System teilt Partitionen auf, die die unterstützte Anzahl überschreiten. Standardmäßig werden Daten basierend auf der Anzahl der Positionen in der Datei partitioniert. Vermeiden Sie es, die Anzahl von Zeilenposten oder Dateigrößen hart zu kodieren, da sie sich ändern können.
blobCount Gesamtanzahl der Dateien für diese Partnermandanten-ID.
blobs Ein JSON-Array aus blob-Objekten, die die Dateidetails für die Partnermandanten-ID enthalten.
blob object Ein Objekt mit den folgenden Details:
name und partitionValue.
name Name des Blobs.
partitionValue Partition, die die Datei enthält. Die große Partition wird basierend auf bestimmten Kriterien wie Dateigröße oder Anzahl von Datensätzen in mehrere Dateien aufgeteilt, wobei jede Datei denselben partitionValue-Wert enthält.

API-Anforderung

HTTP
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

API-Antwort

Die Antwort empfiehlt, zehn Sekunden zu warten, bevor Sie es erneut versuchen, wenn Ihre Daten noch verarbeitet werden.

HTTP
HTTP/1.1 200 OK  
Retry-After: 10  
{  
"id": "9ab9cb54-d07f-4f52-9ea6-a09d7de52c14",  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-05Z",  
"status": "running"  
}

API-Anforderung

(Zehn Sekunden nach der vorherigen Anforderung...)

HTTP
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

API-Antwort

Die API gibt den Status „succeeded“ und den URI für „resourceLocation“ zurück.

HTTP
HTTP/1.1 200 OK  
Content-Type: application/json  
{

    "@odata.context": "https://graph.microsoft.com/v1.0/\$metadata#reports/partners/billing/operations/\$entity",

    "@odata.type": "#microsoft.graph.partners.billing.exportSuccessOperation",

    "id": "f2170b13-6a8e-47d6-b481-6988490dc0cb",

    "createdDateTime": "2023-12-05T21:17:29Z",

    "lastActionDateTime": "2023-12-05T21:18:00.8897902Z",

    "status": "succeeded",

    "resourceLocation": {

        "id": "44e8500b-ab92-490e-8ac3-90500a1d3427",

        "createdDateTime": "2023-11-06T19:58:47.513Z",

        "schemaVersion": "2",

        "dataFormat": "compressedJSON",

        "partitionType": "default",

        "eTag": "RwDrn7fbiTXy6UULE",

        "partnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",

        "rootDirectory": "https://adlsreconbuprodeastus201.blob.core.windows.net/path_id",

        "sasToken": "{token}",

        "blobCount": 1,

        "blobs": \[

            {

                "name": "part-00123-5a93fa5d-749f-48bc-a372-9b021d93c3fa.c000.json.gz",

                "partitionValue": "default"

            }

        \]

    }

}

Herunterladen von Abstimmungspositionen aus Azure Blob Storage

Zunächst müssen Sie das SAS-Token (Shared Access Signature) und den Blobspeicherort abrufen. Suchen Sie diese Details in den eigenschaften sasToken und rootDirectory der Manifestnutzlast-API-Antwort.

Führen Sie zum Fortfahren die folgenden Schritte aus:

  1. Laden Sie die Blobdatei mit dem Azure Storage SDK bzw. -Tool herunter.
  2. Entzippen Sie die Datei, die sich im JSONLines- Format befindet.

Tipp

Schauen Sie sich unbedingt unseren Beispielcodean. Es zeigt, wie Sie die Azure-BLOB-Datei in Ihre lokale Datenbank herunterladen und entzippen.

API-Standardantwortstatus

Möglicherweise erhalten Sie die folgenden HTTP-Status aus der API-Antwort:

Code Beschreibung
400 – Bad Request Die Anforderung fehlt oder enthält falsche Daten. Überprüfen Sie den Antworttext auf Fehlerdetails.
401 – Unauthorized Die Authentifizierung ist erforderlich, bevor der erste Aufruf erfolgt. Authentifizieren Sie sich mit dem Partner-API-Dienst.
403 – Forbidden Sie verfügen nicht über die erforderliche Autorisierung für die Anforderung.
404 – Not Found Die angeforderten Ressourcen sind mit den bereitgestellten Eingabeparametern nicht verfügbar.
410 – Gone Der Manifestlink ist nicht mehr gültig oder aktiv. Übermitteln Sie eine neue Anforderung.
500 – Internal Server Error Die API oder ihre Abhängigkeiten können die Anforderung im Moment nicht erfüllen. Versuchen Sie es später erneut.
5000 – No Data Available Das System verfügt über keine Daten für die angegebenen Eingabeparameter.

Attribute der Rechnungsabstimmungspositionen

Informationen zum Vergleichen der Attribute, die von der Rechnungsabstimmungs-API für die Attributsätze „full“ oder „basic“ zurückgegeben werden, finden Sie in dieser Tabelle Weitere Informationen zu diesen Attributen und ihren Bedeutungen finden Sie unter Verwenden der Abstimmungsdatei.

Attribut full basic
PartnerId Ja Ja
CustomerId Ja Ja
CustomerName Ja Ja
CustomerDomainName Ja Nein
CustomerCountry Ja Nein
InvoiceNumber Ja Ja
MpnId Ja Nein
Tier2MpnId Ja Ja
OrderId Ja Ja
OrderDate Ja Ja
ProductId Ja Ja
SkuId Ja Ja
AvailabilityId Ja Ja
SkuName Ja Nein
ProductName Ja Ja
ChargeType Ja Ja
UnitPrice Ja Ja
Quantity Ja Nein
Subtotal Ja Ja
TaxTotal Ja Ja
Total Ja Ja
Currency Ja Ja
PriceAdjustmentDescription Ja Ja
PublisherName Ja Ja
PublisherId Ja Nein
SubscriptionDescription Ja Nein
SubscriptionId Ja Ja
ChargeStartDate Ja Ja
ChargeEndDate Ja Ja
TermAndBillingCycle Ja Ja
EffectiveUnitPrice Ja Ja
UnitType Ja Nein
AlternateId Ja Nein
BillableQuantity Ja Ja
BillingFrequency Ja Nein
PricingCurrency Ja Ja
PCToBCExchangeRate Ja Ja
PCToBCExchangeRateDate Ja Nein
MeterDescription Ja Nein
ReservationOrderId Ja Ja
CreditReasonCode Ja Ja
SubscriptionStartDate Ja Ja
SubscriptionEndDate Ja Ja
ReferenceId Ja Ja
ProductQualifiers Ja Nein
PromotionId Ja Ja
ProductCategory Ja Ja

Wichtig

Jeder Feld- oder Attributname beginnt mit einem Großbuchstaben, um die Konsistenz mit der Datei zu gewährleisten und die Lesbarkeit zu verbessern.

Beispielcode

Wenn Sie Unterstützung bei der Migration zu dieser API benötigen, lesen Sie den Link, der C#-Beispielcode enthält.

API-Beispiele für das Abrufen von Abrechnungsabstimmungsdaten aus Partner Center.