Freigeben über


Rechnungsabstimmungs-API v2 (GA)

Gilt für: Partner Center (nicht verfügbar in souveräner Cloud)

Unsere neue asynchrone API bietet eine schnellere und effizientere Möglichkeit, über Azure-Blobs auf Ihre Abrechnungs- und Abstimmungsdaten zuzugreifen. Anstatt eine Verbindung für Stunden offen zu halten oder Batches von 2.000 Zeilenelementen zu verarbeiten, können Sie ihren Workflow jetzt optimieren.

Die neue Abrechnungs-API für die Rechnungsabrechnung verwendet erweiterte Techniken wie Valet-Schlüssel und asynchrone Anforderungsantwortmuster . Diese API stellt Ihnen ein SAS-Token (Shared Access Signature) bereit, mit dem Sie entweder auf alle Attribute oder eine Teilmenge der Rechnungsabstimmungsdaten zugreifen können.

Unsere API verwendet optimierte Techniken, um Ihre Effizienz zu steigern, sodass Sie schnellere Ergebnisse mit weniger Aufwand erzielen können. Nutzen Sie diese API, um den Datenzugriff zu vereinfachen und Ihre Gesamteffizienz zu verbessern.

Hinweis

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

Wichtig

Um Ihrer App Zugriff auf Partnerabrechnungsdaten zu ermöglichen, folgen Sie diesem Link und machen Sie sich mit den Authentifizierungs- und Autorisierungsgrundlagen für Microsoft Graph vertraut.

Sie können die Berechtigung "PartnerBilling.Read.All" entweder über das Azure-Portal oder das Entra Admin Center zuweisen. Gehen Sie dazu wie folgt vor:

  • Registrieren Sie Ihre App auf der Microsoft Entra-Startseite unter dem Abschnitt App-Registrierungen.
  • Um die erforderliche Berechtigung zu erteilen, wechseln Sie zur Seite "Microsoft Entra App" unter dem Abschnitt "API-Berechtigungen". Wählen Sie "Berechtigung hinzufügen" und dann den Bereich "PartnerBilling.Read.All" aus.

Durch Ausführen dieser Schritte stellen Sie sicher, dass Ihre App über den erforderlichen Zugriff auf Partnerabrechnungsdaten verfügt.

API-Übersicht

Um Ihnen beim asynchronen Abrufen neuer Rechnungsabrechnungspositionen zu helfen, bieten wir zwei wichtige API-Endpunkte an. Hier ist ein optimiertes Handbuch für die ersten Schritte:

Abrechnungsendpunkt für Rechnungsabrechnungen

Verwenden Sie zunächst diese API, um neue Rechnungsabgleichspositionen abzurufen. Wenn Sie eine Anforderung stellen, erhalten Sie einen HTTP-Status 202 und einen Speicherortheader mit einer URL. Rufen Sie diese URL regelmäßig ab, bis Sie einen Erfolgsstatus und eine Manifest-URL erhalten.

Vorgangsstatusendpunkt

Ü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 gewartet werden soll, bevor sie es erneut versuchen. Sobald der Vorgang abgeschlossen ist, erhalten Sie eine Manifestressource mit einem Speicherordnerlink zum Herunterladen der Nutzungsdaten. Die Antwortsegmente der Dateien, um den Durchsatz zu verbessern und die E/A-Parallelität zu ermöglichen.

Indem Sie diese Schritte ausführen, können Sie Ihren Rechnungsausgleichsprozess effizient verwalten.

Sequenzdiagramm

Hier ist ein Sequenzdiagramm, das die Schritte zum Herunterladen neuer Rechnungsabgleichsdaten zeigt.

Diagramm mit den Schritten zum Herunterladen von Abstimmungsdaten.

Benutzeraktionssequenz

Führen Sie die folgenden Schritte aus, um Rechnungsabrechnungsdaten abzurufen:

Schritt 1: Senden einer Anforderung

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

Rechnungsabrechnungspositionen abrufen

API-Anforderung

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 Type Beschreibung
attributeSet False String Wählen Sie "vollständig" für alle Attribute oder "Einfach" für einen begrenzten Satz aus. Wenn nicht angegeben, ist "full" der Standardwert. Überprüfen Sie die Liste der Attribute in diesem Abschnitt. Optional.
invoiceId True String Ein eindeutiger Bezeichner für jede Rechnung. Erforderlich.

Anforderungsheader

Fordern Sie Kopfzeilen für die API mithilfe der Unter " Bewährte Methoden für die Verwendung von Microsoft Graph" aufgeführten Schritte an. Durch die Einhaltung dieser Richtlinien stellen Sie Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit auf Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.

API-Antwort

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 einem HTTP 202-Status. Je nach Ihren Anforderungen können auch andere Status auftreten. Diese Status werden im Abschnitt "Standard-API-Antwortstatus" aufgeführt.

Code Beschreibung
202 – Akzeptiert Ihre Anfrage wurde angenommen. Um den Status Ihrer Anforderung zu überprüfen, fragen Sie die url ab, die im Speicherortheader angegeben ist.

Schritt 2: Überprüfen des Anforderungsstatus

Um den Status einer Anforderung nachzuverfolgen, stellen Sie sicher, dass Sie eine HTTP 200-Antwort erhalten, die "erfolgreich" oder "fehlgeschlagen" angibt. Bei erfolgreicher Ausführung finden Sie die Manifest-URL im Attribut "resourceLocation". Dieses Attribut stellt einen Endpunkt für den Zugriff auf die erforderlichen Informationen bereit.

Vorgangsstatus abrufen

Ruft den Status einer Anforderung ab.

API-Anforderung

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

Anforderungsparameter

Name Einschließen in Erforderlich Type Beschreibung
operationId Anforderungs-URI True String Eine eindeutige ID zum Überprüfen des Anforderungsstatus. Erforderlich.

Anforderungsheader

Fordern Sie Kopfzeilen für die API mithilfe der Unter " Bewährte Methoden für die Verwendung von Microsoft Graph" aufgeführten Schritte an. Durch die Einhaltung dieser Richtlinien stellen Sie Zuverlässigkeit und Unterstützung für Ihre Anwendung sicher. Ihre Aufmerksamkeit auf Details in diesem Schritt ist entscheidend für die nahtlose Integration und optimale Leistung.

Anforderungstext

Nicht zutreffend.

Antwortstatus

Abgesehen von den standardmäßigen HTTP-Status, die in Standard-API-Antwortstatus aufgeführt sind, kann die API auch den folgenden HTTP-Status zurückgeben:

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

Antwortnutzlast

Die API-Antwortnutzlast enthält 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, bis die im Header "Retry-After" angegebene Zeit angegeben ist, und führen Sie dann einen weiteren Aufruf aus, um den Status zu überprüfen.
running: Wait for the time specified in the "Retry-After" header, then make another call to check the status.
erfolgreich: Die Daten sind bereit. Rufen Sie die Manifestnutzlast mithilfe des in resourceLocation angegebenen URI ab.
failed: The operation failed permanent. Starten Sie ihn neu.
createdDateTime True Der Zeitpunkt, zu dem die Anforderung gestellt wurde.
Erforderlich.
lastActionDateTime True Das letzte Mal, wenn der Status geändert wurde.
Erforderlich.
resourceLocation False Der URI für die Manifestnutzlast.
Optional.
error False Details zu Fehlern, die im JSON-Format bereitgestellt werden.
Optional.
Enthaltene Attribute:
message: Beschreibung des Fehlers.
code: Der Typ des Fehlers.

Ressourcenspeicherortobjekt

Attribute Beschreibung
id Ein eindeutiger Bezeichner für das Manifest.
schemaVersion Version des Manifestschemas.
dataFormat Format der Abrechnungsdatendatei.
compressedJSON: Data format where each blob is a compressed file that contains data in JSON lines format. 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 des Mandanten des Partners.
rootDirectory Stammverzeichnis der Datei.
sasToken> SAS-Token (Freigegebene Zugriffssignatur), mit dem Sie alle Dateien unter dem Verzeichnis lesen können.
partitionType Dividiert Daten basierend auf dem partitionValue-Attribut in mehrere Blobs. Das System teilt Partitionen auf, die die unterstützte Zahl überschreiten. Standardmäßig werden Daten basierend auf der Anzahl der Zeilenelemente in der Datei partitioniert. Legen Sie im Code keine feste Anzahl von Zeilenelementen oder Dateigrößen fest, da sich diese Werte ändern können.
blobCount Gesamtanzahl der Dateien für diese Partnermandanten-ID.
blobs Ein JSON-Array von "blob"-Objekten, die die Dateidetails für die Partnermandanten-ID enthalten.
Blob-Objekt Ein Objekt mit den folgenden Details:
name und partitionValue
name Der Name des Blobs.
partitionValue Partition, die die Datei enthält. Partition, die die Datei enthält. Große Partitionen werden in mehrere Dateien aufgeteilt, die jeweils den gleichen "partitionValue" enthalten.

API-Anforderung

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

API-Antwort

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

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

(10 Sekunden nach der vorherigen Anforderung...)

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

API-Antwort

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

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": "0e195b37-4574-4539-bc42-0e539b9684c0",

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

            }

        \]

    }

}

Schritt 3: Herunterladen von Rechnungsabrechnungspositionen aus Azure Blob Storage

Zunächst müssen Sie das SAS-Token (Shared Access Signature) und den Blob-Speicherort abrufen. Diese Details finden Sie in den Eigenschaften "sasToken" und "rootDirectory" der Manifestnutzlast-API-Antwort. Verwenden Sie dann das Azure Storage SDK/Tool, um die BLOB-Datei herunterzuladen und zu entzippen. Sie befindet sich im JSONLines-Format .

Tipp

Sehen Sie sich unseren Beispielcode an. Es zeigt Ihnen, wie Sie die Azure-BLOB-Datei in Ihre lokale Datenbank herunterladen und entpacken.

Standard-API-Antwortstatus

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

Code Beschreibung
400 – Ungültige Anforderung Die Anforderung fehlt oder enthält falsche Daten. Überprüfen Sie den Antworttext auf Fehlerdetails.
401 – Nicht autorisiert Die Authentifizierung ist erforderlich, bevor der erste Anruf erfolgt. Authentifizieren mit dem Partner-API-Dienst.
403 – Unzulässig Sie verfügen nicht über die erforderliche Autorisierung, um die Anforderung zu stellen.
404 – Nicht gefunden Die angeforderten Ressourcen sind mit den bereitgestellten Eingabeparametern nicht verfügbar.
410 – Nicht mehr Der Manifestlink ist nicht mehr gültig oder aktiv. Senden Sie eine neue Anforderung.
500: interner Serverfehler Die API oder ihre Abhängigkeiten können die Anforderung im Moment nicht erfüllen. Versuchen Sie es später noch einmal.
5000 – Keine Daten verfügbar Das System hat keine Daten für die bereitgestellten Eingabeparameter.

Attribute der Rechnungsabrechnungsposition

Informationen zum Vergleichen der Attribute, die von der Rechnungsabstimmungs-API für die Attributsätze "full" oder "basic" zurückgegeben werden, finden Sie in der folgenden Tabelle. Weitere Informationen zu diesen Attributen finden Sie unter Verwenden der Recon-Datei.

Attribut Vollständig Grundlegend
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
Menge ja Nein
Zwischensumme ja ja
TaxTotal ja ja
Gesamt ja ja
Währung 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

Beispielcode

Informationen zur Verwendung dieser API finden Sie unter dem folgenden Link, der C#-Beispielcode enthält.

Partner-Center-Billing-Recon-Beispiele: Beispiele für DIE API zum Abrufen von Abrechnungsdaten aus Partner Center (github.com).