Lezen in het Engels

Delen via


Haal niet-gefactureerde commercieel verbruik regelitems van de factuur op

Notitie

belangrijke migratiedatums en -scenario's

De overgangsstrategie voor API-versies is ontworpen om een soepele migratie van API v1 naar API v2 te garanderen, met de focus op het onderhouden van functionaliteit en gegevensintegriteit. Hier volgt een handleiding om u te helpen bij het selecteren van de juiste API-versie voor uw behoeften:

scenario A: Huidige of vorige factureringsperioden (vóór 21 april 2025):

  • gebruik van deze API tot 21 april 2025, tenzij u al bent overgestapt op API v2 GA.

scenario B: huidige of vorige factureringsperioden (na 21 april 2025):

  • Schakel over naar API v2 GA voor het ophalen van alle gegevens van toekomstige factureringsperioden.

De overgang van API v1 naar API v2 omvat gedetailleerde planning en nauwkeurige uitvoering. Om een soepele overgang naar de nieuwe API te garanderen, kunt u terecht bij: gefactureerde en niet-gefactureerde dagelijkse afstemmings-API v2 (GA).

We waarderen uw aandacht en zijn toegewijd aan het ondersteunen van uw voortdurende succes met onze facturerings-API's.

Hoe krijg je een verzameling van niet-gefactureerde regeldetails voor commercieel verbruik.

U kunt de volgende methoden gebruiken om programmatisch een verzameling details van regelitems voor niet-gefactureerd commercieel verbruik (ook wel open gebruiksregelitems genoemd) op te halen.

Belangrijk

De dagelijkse gebruiksgegevens bevatten niet de kosten voor deze producten:

  • Azure-reservering
  • Azure-besparingsplan
  • Kantoor
  • Dynamica
  • Microsoft Power Apps
  • Eeuwigdurende software
  • Softwareabonnement
  • SaaS-product dat niet van Microsoft of marketplace is

Notitie

U hebt toegang tot uw niet-gefactureerde dagelijkse verbruiksgegevens via de API of het portal van het Partnercentrum. Om de nauwkeurigheid van gegevens te garanderen, kunt u maximaal 24 uur beschikbaar zijn. Afhankelijk van uw locatie en wanneer de meters het gebruik rapporteren, kunnen er verdere vertragingen optreden.

We geven prioriteit aan de tijdige levering van gefactureerde dagelijkse gebruiksgegevens. Af en toe worden de meest recente niet-gefactureerde dagelijkse gebruiksgegevens mogelijk pas weergegeven als de gefactureerde gegevens van de vorige maand beschikbaar zijn. Zodra u de gefactureerde gegevens hebt ontvangen, hebt u vanaf het begin van de maand toegang tot alle bijgewerkte niet-gefactureerde gebruiksgegevens.

belangrijkste punten:

  • Houd rekening met maximaal 24 uur voor de beschikbaarheid van gegevens.
  • Er kunnen verdere vertragingen optreden, afhankelijk van de rapportagetijden van uw locatie en meter.
  • Gefactureerde dagelijkse gebruiksgegevens krijgen prioriteit boven niet-gefactureerde gegevens.

Uw begrip en geduld worden gewaardeerd omdat we ernaar streven om de meest nauwkeurige en tijdige informatie te bieden.

Vereisten

  • Referenties zoals beschreven in Partnercentrum-authenticatie. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als app+gebruikersreferenties.

C#

Om de regelitems voor de opgegeven factuur op te halen:

  1. Roep de ById methode aan om een interface op te halen voor factuurbewerkingen voor de opgegeven factuur.
  2. Roep de Get of GetAsync methode aan om het factuurobject op te halen.

Het factuurobject bevat alle informatie voor de opgegeven factuur. De provider identificeert de bron van de niet-gefactureerde gegevens (bijvoorbeeld OneTime). Het InvoiceLineItemType geeft het type op (bijvoorbeeld UsageLineItem).

In de volgende voorbeeldcode wordt een foreach-lus gebruikt om de verzameling InvoiceLineItems te verwerken. Voor elk InvoiceLineItemType wordt een afzonderlijke verzameling regelitems opgehaald.

Een verzameling regelitems ophalen die overeenkomen met een InvoiceDetail-exemplaar :

  1. Geef de BillingProvider en InvoiceLineItemType van het exemplaar door aan de methode By.
  2. Roep de Get of GetAsync methode aan om de bijbehorende regelitems op te halen.
  3. Maak een enumerator om de verzameling te doorlopen, zoals wordt weergegeven in het volgende voorbeeld.
// 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);
        }
    }
}

Zie voor een vergelijkbaar voorbeeld:

  • Voorbeeld: Console test-app
  • Project: Partner Center SDK Voorbeelden
  • Klasse: GetUnBilledConsumptionReconLineItemsPaging.cs

REST-aanvraag

Aanvraagsyntaxis

U kunt de volgende syntaxis gebruiken voor uw REST-aanvraag, afhankelijk van uw use-case. Zie de beschrijvingen voor elke syntaxis voor meer informatie.

Wijze Aanvraag-URI Beschrijving van syntaxisgebruiksscenario
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period} HTTP/1.1 Gebruik deze syntaxis om een volledige lijst met elk regelitem voor de opgegeven factuur te retourneren.
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period}&size={size} HTTP/1.1 Gebruik deze syntaxis voor grote facturen. Gebruik deze syntaxis met een opgegeven grootte en een verschuiving op basis van 0 om een gepaginade lijst met regelitems te retourneren.
GET {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period}&size={size}&seekOperation=Next Gebruik deze syntaxis om de volgende pagina met afstemmingsregelitems op te halen met seekOperation = "Next".

URI-parameters

Gebruik de volgende URI- en queryparameters bij het maken van de aanvraag.

Name Type Vereist Beschrijving
aanbieder tekenreeks Ja De provider: "OneTime".
factuurregeltype tekenreeks Ja Het type factuurgegevens: "UsageLineItems", "UsageLineItems".
valutacode tekenreeks Ja De valutacode voor de niet-gefactureerde posities.
periode tekenreeks Ja De periode voor niet-gefactureerde reconciliatie (bijvoorbeeld: huidige, vorige). Stel dat u de niet-gefactureerde gebruiksgegevens van de factureringscyclus (01/01/2020 – 01/31/2020) in januari moet opvragen, periode kiest als 'Huidig' , anders 'Vorige'.
maat Nummer Nee Het maximum aantal te retourneren items. De standaardgrootte is 2000.
zoekOperatie tekenreeks Nee Stel seekOperation=Next in om de volgende pagina met afstemmingsregelitems op te halen.

Aanvraagheaders

Zie REST-headers in Partnercentrum voor meer informatie.

Aanvraagtekst

Geen.

REST-antwoord

Als dit lukt, bevat het antwoord de verzameling regelitemgegevens.

Voor de rij ChargeType wordt de waarde Aankoop omgezet in Nieuw en de waarde Restitutie wordt omgezet in Annuleren.

Geslaagde antwoorden en foutcodes

Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft of de actie is geslaagd of mislukt en andere foutopsporingsinformatie. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en meer parameters te lezen. Zie Partnercentrum REST-foutcodes voor de volledige lijst.

Voorbeelden van aanvraag-antwoord

Voorbeeld van aanvraag-antwoord 1

De volgende details zijn van toepassing op dit voorbeeld:

  • Provider: OneTime
  • InvoiceLineItemType: UsageLineItems
  • Periode: Vorige

Aanvraagvoorbeeld 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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Belangrijk

Vanaf juni 2023 wordt de nieuwste Versie van Partner Center .NET SDK 3.4.0 gearchiveerd. U kunt de SDK-release downloaden van GitHub, samen met een readme-bestand dat nuttige informatie bevat.

Partners worden aangemoedigd om de Partner Center REST API's te blijven gebruiken.

Antwoordvoorbeeld 1

HTTP/1.1 200 OK
Content-Length: 2484
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
    }
}

Voorbeeld van aanvraag-antwoord 2

De volgende details zijn van toepassing op dit voorbeeld:

  • Provider: OneTime
  • InvoiceLineItemType: UsageLineItems
  • Periode: Vorige
  • SeekOperation: Volgende

Aanvraagvoorbeeld 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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Antwoordvoorbeeld 2

HTTP/1.1 200 OK
Content-Length: 2484
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
    }
}