Abrufen von nicht in Rechnung gestellten kommerziellen Verbrauchspositionen

Hinweis

Diese API funktioniert nach dem 30. September 2024 nicht mehr. Weitere Informationen finden Sie in den folgenden Details, um zu entscheiden, welche Version und wann verwendet werden soll.

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

Informationen zum Vorbereiten der Migration zur API v2 finden Sie unter dem folgenden Link:

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

So erhalten Sie eine Sammlung nicht berechneter Handelsverbrauchsartikeldetails.

Sie können die folgenden Methoden verwenden, um programmgesteuert eine Sammlung von Details zu unbilligten Handelsverbrauchspositionen (auch als offene Verwendungszeilenelemente bezeichnet) abzurufen.

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

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.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.

C#

So rufen Sie die Positionen für die angegebene Rechnung ab:

  1. Rufen Sie die ById-Methode auf, um eine Schnittstelle zu Rechnungsvorgängen für die angegebene Rechnung abzurufen.
  2. Rufen Sie die Get- oder GetAsync-Methode auf, um das Rechnungsobjekt abzurufen.

Das Rechnungsobjekt enthält alle Informationen für die angegebene Rechnung. Der Anbieter identifiziert die Quelle der unbilligten Detailinformationen (z . B. OneTime). Der InvoiceLineItemType gibt den Typ an (z. B . UsageLineItem).

Im folgenden Beispielcode wird eine Foreachschleife verwendet, um die InvoiceLineItems-Auflistung zu verarbeiten. Für jeden InvoiceLineItemType wird eine separate Sammlung von Zeilenelementen abgerufen.

So rufen Sie eine Sammlung von Positionen ab, die einer InvoiceDetail-Instanz entsprechen:

  1. Übergeben Sie den BillingProvider und InvoiceLineItemType der Instanz an die By-Methode.
  2. Rufen Sie die Get- oder GetAsync-Methode auf, um die zugehörigen Zeilenelemente abzurufen.
  3. Erstellen Sie einen Enumerator, um die Auflistung zu durchlaufen, wie im folgenden Beispiel gezeigt.
// IAggregatePartner partnerOperations;
// string curencyCode;
// string period;
// int pageMaxSizeReconLineItems = 2000;

// all the operations executed on this partner operation instance will share the same correlation Id but will differ in request Id
IPartner scopedPartnerOperations = partnerOperations.With(RequestContextFactory.Instance.Create(Guid.NewGuid()));

var seekBasedResourceCollection = scopedPartnerOperations.Invoices.ById("unbilled").By("onetime", "usagelineitems", curencyCode, period, pageMaxSizeReconLineItems).Get();

var fetchNext = true;

ConsoleKeyInfo keyInfo;

var itemNumber = 1;
while (fetchNext)
{
    Console.Out.WriteLine("\tLine items count: " + seekBasedResourceCollection.Items.Count());

    seekBasedResourceCollection.Items.ToList().ForEach(item =>
    {
        // Instance of type DailyRatedUsageLineItem
        if (item is DailyRatedUsageLineItem)
        {
            Type t = typeof(DailyRatedUsageLineItem);
            PropertyInfo[] properties = t.GetProperties();

            foreach (PropertyInfo property in properties)
            {
                // Insert code here to work with the line item properties
            }
        }
        itemNumber++;
    });

    Console.Out.WriteLine("\tPress any key to fetch next data. Press the Escape (Esc) key to quit: \n");
    keyInfo = Console.ReadKey();

    if (keyInfo.Key == ConsoleKey.Escape)
    {
        break;
    }

    fetchNext = !string.IsNullOrWhiteSpace(seekBasedResourceCollection.ContinuationToken);

    if (fetchNext)
    {
        if (seekBasedResourceCollection.Links.Next.Headers != null && seekBasedResourceCollection.Links.Next.Headers.Any())
        {
            seekBasedResourceCollection = scopedPartnerOperations.Invoices.ById("unbilled").By("onetime", "usagelineitems", curencyCode, period, pageMaxSizeReconLineItems).Seek(seekBasedResourceCollection.ContinuationToken, SeekOperation.Next);
        }
    }
}

Ein ähnliches Beispiel finden Sie unter:

  • Beispiel: Konsolentest-App
  • Projekt: Partner Center SDK-Beispiele
  • Klasse: GetUnBilledConsumptionReconLineItemsPaging.cs

REST-Anforderung

Anforderungssyntax

Je nach Anwendungsfall können Sie die folgenden Syntaxen für Ihre REST-Anforderung verwenden. Weitere Informationen finden Sie in den Beschreibungen für jede Syntax.

Methode Anforderungs-URI Beschreibung des Syntaxanwendungsfalls
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period} HTTP/1.1 Verwenden Sie diese Syntax, um eine vollständige Liste aller Artikel für die angegebene Rechnung zurückzugeben.
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period}&size={size} HTTP/1.1 Verwenden Sie diese Syntax für große Rechnungen. Verwenden Sie diese Syntax mit einer angegebenen Größe und einem 0-basierten Offset, um eine ausgelagerte Liste von Zeilenelementen zurückzugeben.
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period}&size={size}&seekOperation=Next Verwenden Sie diese Syntax, um die nächste Seite der Abstimmungszeilenelemente mithilfe seekOperation = "Next"von .

URI-Parameter

Verwenden Sie beim Erstellen der Anforderung die folgenden URI- und Abfrageparameter.

Name Type Erforderlich Beschreibung
provider Zeichenfolge Ja Der Anbieter: "OneTime".
invoice-line-item-type Zeichenfolge Ja Der Typ der Rechnungsdetails: "UsageLineItems", "UsageLineItems".
currencyCode Zeichenfolge Ja Der Währungscode für die nicht abgerechneten Positionen.
period (Zeitraum) Zeichenfolge Ja Der Zeitraum für nicht abgerechnete Neuaufklärung (z. B. aktuell, vorheriger). Angenommen, Sie müssen Ihre nicht berechneten Nutzungsdaten der Abrechnungszeitraum (01.01.2020 – 01.31.2020) im Januar abfragen, wählen Sie den Zeitraum "Aktuell" aus, sonst "Zurück".
size Zahl No Die maximale Anzahl der zurückzugebenden Elemente. Die Standardgröße ist 2000.
seekOperation Zeichenfolge No Legen Sie fest seekOperation=Next , dass die nächste Seite der Abstimmungspositionen abgerufen wird.

Anforderungsheader

Weitere Informationen finden Sie unter Partner Center-REST-Header.

Anforderungstext

Keine.

REST-Antwort

Wenn die Antwort erfolgreich verläuft, enthält die Antwort die Auflistung der Zeilenelementdetails.

Für den Artikel "ChargeType" wird der Wert "Purchase" "Neu" zugeordnet, und der Wert "Rückerstattung" wird "Cancel" zugeordnet.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Aufschluss darüber gibt, ob der Vorgang erfolgreich war, sowie ggf. zusätzliche Debuginformationen. Verwende ein Tool für die Netzwerkablaufverfolgung, um diesen Code, den Fehlertyp und zusätzliche Parameter zu lesen. Die vollständige Liste finden Sie unter Partner Center-REST-Fehlercodes.

Beispiele für Anforderungsantworten

Anforderungsantwort (Beispiel 1)

Die folgenden Details gelten für dieses Beispiel:

  • Anbieter: OneTime
  • InvoiceLineItemType: UsageLineItems
  • Zeitraum: Vorheriger

Anforderungsbeispiel 1

GET https://api.partnercenter.microsoft.com/v1//invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems&currencycode=usd&period=previous&size=2000 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 1234ecb8-37af-45f4-a1a1-358de3ca2b9e
MS-CorrelationId: 5e612512-4345-4bb0-866e-47aeda031234
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Wichtig

Ab Juni 2023 ist jetzt die neueste Partner Center .NET SDK-Version 3.4.0 archiviert. Sie können das SDK-Release von GitHub zusammen mit einer Infodatei herunterladen, die nützliche Informationen enthält.

Partner werden ermutigt, weiterhin Partner Center-REST-APIs zu verwenden.

Antwortbeispiel 1

HTTP/1.1 200 OK
Content-Length: 2484
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 5e612512-4345-4bb0-866e-47aeda031234
MS-RequestId: 1234ecb8-37af-45f4-a1a1-358de3ca2b9e
MS-CV: bpqyomePDUqrSSYC.0
MS-ServerId: 202010406
Date: Wed, 20 Feb 2019 19:59:27 GMT

{
    "totalCount": 2,
    "items": [
        {
            "partnerId": "00083575-bbd0-54de-b2ad-0f5b0e927d71",
            "partnerName": "MTBC",
            "customerId": "",
            "customerName": "",
            "customerDomainName": "",
            "invoiceNumber": "",
            "productId": "",
            "skuId": "",
            "availabilityId": "",
            "skuName": "VM-Series Next-Generation Firewall (Bundle 2 PAYG)",
            "productName": "VM-Series Next Generation Firewall",
            "publisherName": "Test Alto Networks, Inc.",
            "publisherId": "",
            "subscriptionId": "12345678-04d9-421c-baf8-e3b8dd62ddba",
            "subscriptionDescription": "Pay-As-You-Go",
            "chargeStartDate": "2019-01-01T00:00:00Z",
            "chargeEndDate": "2019-02-01T00:00:00Z",
            "usageDate": "2019-01-01T00:00:00Z",
            "meterType": "1 Compute Hour - 4core",
            "meterCategory": "Virtual Machine Licenses",
            "meterId": "4core",
            "meterSubCategory": "VM-Series Next Generation Firewall",
            "meterName": "VM-Series Next Generation Firewall - VM-Series Next-Generation Firewall (Bundle 2 PAYG) - 4 Core Hours",
            "meterRegion": "",
            "unitOfMeasure": "1 Hour",
            "resourceLocation": "EASTUS",
            "consumedService": "Microsoft.Compute",
            "resourceGroup": "ECH-PAN-RG",
            "resourceUri": "/subscriptions/12345678-04d9-421c-baf8-e3b8dd62ddba/resourceGroups/ECH-PAN-RG/providers/Microsoft.Compute/virtualMachines/echpanfw",
            "tags": "",
            "additionalInfo": "{  \"ImageType\": null,  \"ServiceType\": \"Standard_D3_v2\",  \"VMName\": null,  \"VMProperties\": null,  \"UsageType\": \"ComputeHR_SW\"}",
            "serviceInfo1": "",
            "serviceInfo2": "",
            "customerCountry": "",
            "mpnId": "1234567",
            "resellerMpnId": "",
            "chargeType": "",
            "unitPrice": 1.2799888920023,
            "quantity": 24.0,
            "unitType": "",
            "billingPreTaxTotal": 30.7197334080551,
            "billingCurrency": "USD",
            "pricingPreTaxTotal": 30.7197334080551,
            "pricingCurrency": "USD",
            "entitlementId": "3f47bcf1-965d-40a1-a2bc-3d5db3653250",
            "entitlementDescription": "Partner Subscription",
            "pcToBCExchangeRate": 1,
            "pcToBCExchangeRateDate": "2019-08-01T00:00:00Z",
            "effectiveUnitPrice": 0,
            "rateOfPartnerEarnedCredit": 0,
            "rateOfCredit": 0,
            "creditType": "Credit Not Applied",
            "invoiceLineItemType": "usage_line_items",
            "billingProvider": "marketplace",
        "benefitOrderId": "5ea053d6-4a0d-46ef-bc82-15065b475d01",
        "benefitId": "28ddab06-2c5b-479e-88bb-7b7bfda4e7fd",
        "benefitType": "SavingsPlan",
            "attributes": {
                "objectType": "DailyRatedUsageLineItem"
            }
         },
         {
            "partnerId": "00083575-bbd0-54de-b2ad-0f5b0e927d71",
            "partnerName": "MTBC",
            "customerId": "",
            "customerName": "",
            "customerDomainName": "",
            "invoiceNumber": "",
            "productId": "",
            "skuId": "",
            "availabilityId": "",
            "skuName": "VM-Series Next-Generation Firewall (Bundle 2 PAYG)",
            "productName": "VM-Series Next Generation Firewall",
            "publisherName": "Test Alto Networks, Inc.",
            "publisherId": "",
            "subscriptionId": "12345678-04d9-421c-baf8-e3b8dd62ddba",
            "subscriptionDescription": "Pay-As-You-Go",
            "chargeStartDate": "2019-01-01T00:00:00Z",
            "chargeEndDate": "2019-02-01T00:00:00Z",
            "usageDate": "2019-01-02T00:00:00Z",
            "meterType": "1 Compute Hour - 4core",
            "meterCategory": "Virtual Machine Licenses",
            "meterId": "4core",
            "meterSubCategory": "VM-Series Next Generation Firewall",
            "meterName": "VM-Series Next Generation Firewall - VM-Series Next-Generation Firewall (Bundle 2 PAYG) - 4 Core Hours",
            "meterRegion": "",
            "unitOfMeasure": "1 Hour",
            "resourceLocation": "EASTUS",
            "consumedService": "Microsoft.Compute",
            "resourceGroup": "ECH-PAN-RG",
            "resourceUri": "/subscriptions/12345678-04d9-421c-baf8-e3b8dd62ddba/resourceGroups/ECH-PAN-RG/providers/Microsoft.Compute/virtualMachines/echpanfw",
            "tags": "",
            "additionalInfo": "{  \"ImageType\": null,  \"ServiceType\": \"Standard_D3_v2\",  \"VMName\": null,  \"VMProperties\": null,  \"UsageType\": \"ComputeHR_SW\"}",
            "serviceInfo1": "",
            "serviceInfo2": "",
            "customerCountry": "",
            "mpnId": "1234567",
            "resellerMpnId": "",
            "chargeType": "",
            "unitPrice": 1.2799888920023,
            "quantity": 24.0,
            "unitType": "",
            "billingPreTaxTotal": 30.7197334080551,
            "billingCurrency": "USD",
            "pricingPreTaxTotal": 30.7197334080551,
            "pricingCurrency": "USD",
            "entitlementId": "31cdf47f-b249-4edd-9319-637862d12345",
            "entitlementDescription": "Partner Subscription",
            "pcToBCExchangeRate": 1,
            "pcToBCExchangeRateDate": "2019-08-01T00:00:00Z",
            "effectiveUnitPrice": 0,
            "rateOfPartnerEarnedCredit": 0,
            "rateOfCredit": 1,
            "creditType": "Azure Credit Applied",
            "invoiceLineItemTypce": "usage_line_items",
            "billingProvider": "marketplace",
        "benefitOrderId": "",
            "benefitId": "",
            "benefitType": "Charge",
            "attributes": {
                "objectType": "DailyRatedUsageLineItem"
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems&currencycode=usd&period=previous&size=2000",
            "method": "GET",
            "headers": []
        },
        "next": {
            "uri": "/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems&currencycode=usd&period=previous&size=2000&seekOperation=Next",
            "method": "GET",
            "headers": [
                {
                    "key": "MS-ContinuationToken",
                    "value": "AQAAAA=="
                }
            ]
        }
    },
    "attributes": {
        "objectType": "Collection"
    }
}

Anforderungsantwort (Beispiel 2)

Die folgenden Details gelten für dieses Beispiel:

  • Anbieter: OneTime
  • InvoiceLineItemType: UsageLineItems
  • Zeitraum: Vorheriger
  • SeekOperation: Next

Anforderungsbeispiel 2

GET https://api.partnercenter.microsoft.com/v1/invoices/unbilled/lineitems?provider=onetime&invoiceLineItemType=usagelineitems&currencyCode=usd&period=previous&size=2000&seekoperation=next HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-ContinuationToken: d19617b8-fbe5-4684-a5d8-0230972fb0cf,0705c4a9-39f7-4261-ba6d-53e24a9ce47d_a4ayc/80/OGda4BO/1o/V0etpOqiLx1JwB5S3beHW0s=,0d81c700-98b4-4b13-9129-ffd5620f72e7
MS-RequestId: 1234ecb8-37af-45f4-a1a1-358de3ca2b9e
MS-CorrelationId: 5e612512-4345-4bb0-866e-47aeda031234
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Antwortbeispiel 2

HTTP/1.1 200 OK
Content-Length: 2484
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 5e612512-4345-4bb0-866e-47aeda031234
MS-RequestId: 1234ecb8-37af-45f4-a1a1-358de3ca2b9e
MS-CV: bpqyomePDUqrSSYC.0
MS-ServerId: 202010406
Date: Wed, 20 Feb 2019 19:59:27 GMT

{
    "totalCount": 1,
    "items": [
        {
            "partnerId": "00083575-bbd0-54de-b2ad-0f5b0e927d71",
            "partnerName": "MTBC",
            "customerId": "",
            "customerName": "",
            "customerDomainName": "",
            "invoiceNumber": "",
            "productId": "",
            "skuId": "",
            "availabilityId": "",
            "skuName": "VM-Series Next-Generation Firewall (Bundle 2 PAYG)",
            "productName": "VM-Series Next Generation Firewall",
            "publisherName": "Test Alto Networks, Inc.",
            "publisherId": "",
            "subscriptionId": "12345678-04d9-421c-baf8-e3b8dd62ddba",
            "subscriptionDescription": "Pay-As-You-Go",
            "chargeStartDate": "2019-01-01T00:00:00Z",
            "chargeEndDate": "2019-02-01T00:00:00Z",
            "usageDate": "2019-01-02T00:00:00Z",
            "meterType": "1 Compute Hour - 4core",
            "meterCategory": "Virtual Machine Licenses",
            "meterId": "4core",
            "meterSubCategory": "VM-Series Next Generation Firewall",
            "meterName": "VM-Series Next Generation Firewall - VM-Series Next-Generation Firewall (Bundle 2 PAYG) - 4 Core Hours",
            "meterRegion": "",
            "unitOfMeasure": "1 Hour",
            "resourceLocation": "EASTUS",
            "consumedService": "Microsoft.Compute",
            "resourceGroup": "ECH-PAN-RG",
            "resourceUri": "/subscriptions/12345678-04d9-421c-baf8-e3b8dd62ddba/resourceGroups/ECH-PAN-RG/providers/Microsoft.Compute/virtualMachines/echpanfw",
            "tags": "",
            "additionalInfo": "{  \"ImageType\": null,  \"ServiceType\": \"Standard_D3_v2\",  \"VMName\": null,  \"VMProperties\": null,  \"UsageType\": \"ComputeHR_SW\"}",
            "serviceInfo1": "",
            "serviceInfo2": "",
            "customerCountry": "",
            "mpnId": "1234567",
            "resellerMpnId": "",
            "chargeType": "",
            "unitPrice": 1.2799888920023,
            "quantity": 24.0,
            "unitType": "",
            "billingPreTaxTotal": 30.7197334080551,
            "billingCurrency": "USD",
            "pricingPreTaxTotal": 30.7197334080551,
            "pricingCurrency": "USD",
            "entitlementId": "31cdf47f-b249-4edd-9319-637862d8c0b4",
            "entitlementDescription": "Partner Subscription",
            "pcToBCExchangeRate": 1,
            "pcToBCExchangeRateDate": "2019-08-01T00:00:00Z",
            "effectiveUnitPrice": 0,
            "rateOfPartnerEarnedCredit": 0.15,
            "rateOfCredit": 0.15,
            "creditType": "Partner Earned Credit Applied",
            "invoiceLineItemType": "usage_line_items",
            "billingProvider": "marketplace",
        "benefitOrderId": "",
            "benefitId": "",
            "benefitType": "Charge",
            "attributes": {
                "objectType": "DailyRatedUsageLineItem"
            }
        }
    ],
    "links": {
        "self": {
             "uri": "/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems&currencycode=usd&period=previous&size=2000",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Collection"
    }
}