Získání nefakturovaných řádkových položek komerčního využití na faktuře
Poznámka:
Klíčová data a scénáře migrace
Strategie přechodu verzí rozhraní API je navržená tak, aby zajistila bezproblémovou migraci z rozhraní API verze 1 na rozhraní API v2 s důrazem na zachování funkčnosti a integrity dat. Tady je průvodce, který vám pomůže vybrat odpovídající verzi rozhraní API pro vaše potřeby:
Scénář A: Aktuální nebo předchozí fakturační období (před 21. dubnem 2025):
- Pokračujte v používání tohoto rozhraní API až do 21. dubna 2025, pokud jste ještě nepřešli na obecně dostupnou verzi API v2.
Scénář B: Aktuální nebo předchozí fakturační období (po 21. dubnu 2025):
- Přepnout na obecně dostupnou verzi API v2 pro veškeré budoucí načítání dat z fakturačního období.
Přechod z rozhraní API v1 na rozhraní API v2 zahrnuje podrobné plánování a přesné provedení. Pokud chcete zajistit hladký přechod na nové rozhraní API, navštivte: API pro denně ohodnocené odsouhlasení fakturovaného a nefakturovaného využití, verze 2 (GA).
Vážíme si vaší pozornosti a snažíme se podpořit váš trvalý úspěch s využitím našich fakturačních rozhraní API.
Jak získat kolekci nefakturovaných podrobností o řádkové položce komerční spotřeby.
Následující metody můžete použít k získání kolekce podrobností nefakturovaných řádkových položek komerční spotřeby (označovaných také jako otevřené řádkové položky využití) prostřednictvím kódu programu.
Důležité
Data o denním poměru využití nezahrnují poplatky za tyto produkty:
- Rezervace Azure
- Úsporný plán pro Azure
- Kancelář
- Dynamika
- Microsoft Power Apps
- Časově neomezený software
- Předplatné softwaru
- Produkt SaaS od jiných společností než Microsoft nebo marketplace
Poznámka:
K nefakturovaným denním položkám účtovaného využití se dostanete prostřednictvím API nebo portálu Partner Center. Aby byla zajištěna přesnost dat, počkejte až 24 hodin na jejich dostupnost. V závislosti na vaší poloze a na tom, kdy měřiče hlásí využití, může dojít k dalším zpožděním.
Nejprve upřednostňujeme včasné doručení fakturovaných údajů o denním využití. Někdy se může stát, že nejnovější nefakturované denní údaje o využití se nemusí zobrazovat, dokud nebudou k dispozici fakturovaná data z předchozího měsíce. Jakmile obdržíte fakturovaná data, můžete získat přístup ke všem aktualizovaným nefakturovaným datům o využití od začátku měsíce.
klíčové body:
- Počkejte až 24 hodin pro dostupnost dat.
- V závislosti na časech hlášení polohy a měřičů může docházet k dalším zpožděním.
- Fakturovaná data o využití s denním hodnocením mají přednost před nefakturovanými daty.
Vaše porozumění a trpělivost si vážíme, když se snažíme poskytovat co nejpřesnější a včasné informace.
Požadavky
- Přihlašovací údaje, jak je popsáno v ověření Partner Center. Tento scénář podporuje ověřování pomocí samostatných přihlašovacích údajů aplikace i přihlašovacích údajů aplikace a uživatele.
C#
Získání řádkových položek pro zadanou fakturu:
- Zavolejte metodu ById, abyste získali rozhraní pro operace faktury pro zadanou fakturu.
- Zavolejte metodu Get nebo GetAsync pro načtení objektu faktury.
Objekt faktury obsahuje všechny informace o zadané faktuře. Poskytovatel identifikuje zdroj nefakturovaných podrobných informací (například OneTime). InvoiceLineItemType určuje typ (například UsageLineItem).
Následující ukázkový kód používá smyčku foreach ke zpracování kolekce InvoiceLineItems . Pro každou InvoiceLineItemType se načte samostatná kolekce řádkových položek.
Pro získání kolekce řádkových položek, které odpovídají instanci InvoiceDetail, postupujte následovně:
- Předejte instanci BillingProvider a InvoiceLineItemType metodě By.
- Zavolejte metodu Get nebo GetAsync, abyste načetli přidružené položky řádku.
- Vytvořte enumerátor pro procházení kolekce, jak je znázorněno v následujícím příkladu.
// 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);
}
}
}
Podobný příklad najdete tady:
- Ukázka: Konzolová testovací aplikace
- Projekt: Ukázky sady SDK v Partnerském centru
- Třída: GetUnBilledConsumptionReconLineItemsPaging.cs
Požadavek REST
Syntaxe požadavku
V závislosti na vašem případu použití můžete pro požadavek REST použít následující syntaxe. Další informace najdete v popisech jednotlivých syntaxí.
metoda | URI žádosti | Popis případu použití syntaxe |
---|---|---|
GET | {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period} HTTP/1.1 | Tato syntaxe slouží k vrácení úplného seznamu každé řádkové položky pro danou fakturu. |
GET | {baseURL}/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode={currencycode}&period={period}&size={size} HTTP/1.1 | Tuto syntaxi použijte pro velké faktury. Pomocí této syntaxe se zadanou velikostí a posunem na základě 0 vrátíte stránkovaný seznam řádků. |
GET | Pomocí této syntaxe získáte další stránku položek řádku odsouhlasení pomocí seekOperation = "Next" . |
Parametry identifikátoru URI
Při vytváření požadavku použijte následující identifikátor URI a parametry dotazu.
Name | Typ | Požadováno | Popis |
---|---|---|---|
Zprostředkovatel | string | Ano | Zprostředkovatel: OneTime. |
typ položky na faktuře | string | Ano | Typ podrobností faktury: "UsageLineItems", "UsageLineItems". |
měnový kód | řetězec | Ano | Kód měny pro nefakturované řádkové položky. |
období | řetězec | Ano | Období nefakturované rekonce (například: aktuální, předchozí). Předpokládejme, že potřebujete zadávat dotazy na nefakturované údaje o využití fakturačního období (1. 1. 2020 – 31. 1. 2020) v lednu, zvolte období jako Aktuální, jinak Předchozí. |
velikost | Číslo | Ne | Maximální počet položek, které se mají vrátit. Výchozí velikost je 2000. |
seekOperation | řetězec | Ne | Nastavte seekOperation=Next , abyste získali další stránku řádkových položek s vyrovnáním. |
Záhlaví žádosti
Další informace najdete v hlavičkách REST Partnerského centra.
Text požadavku
Žádný.
Odpověď REST
V případě úspěchu odpověď obsahuje soubor podrobností o řádkových položkách.
U řádkové položky ChargeType je hodnota Nákup namapována na Nový a hodnota Vrácení je namapována na Storno.
Kódy úspěšnosti a chyb odpovědi
Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam viz Kódy chyb REST v Partnerském centru.
Příklady odpovědí na žádosti
Příklad odpovědi požadavku 1
Následující podrobnosti platí pro tento příklad:
- Zprostředkovatel: OneTime
- InvoiceLineItemType: UsageLineItems
- Období: Předchozí
Příklad požadavku 1
GET https://api.partnercenter.microsoft.com/v1//invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode=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
Důležité
Od června 2023 se teď archivuje nejnovější verze sady .NET SDK partnerského centra 3.4.0. Vydání sady SDK si můžete stáhnout z GitHubu, spolu s readme souborem, který obsahuje důležité informace.
Doporučujeme partnerům, aby nadále používali rozhraní Partner Center REST API.
Příklad odpovědi 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¤cycode=usd&period=previous&size=2000",
"method": "GET",
"headers": []
},
"next": {
"uri": "/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode=usd&period=previous&size=2000&seekOperation=Next",
"method": "GET",
"headers": [
{
"key": "MS-ContinuationToken",
"value": "AQAAAA=="
}
]
}
},
"attributes": {
"objectType": "Collection"
}
}
Příklad odpovědi požadavku 2
Následující podrobnosti platí pro tento příklad:
- Zprostředkovatel: OneTime
- InvoiceLineItemType: UsageLineItems
- Období: Předchozí
- VyhledávacíOperace: Další
Příklad požadavku 2
GET https://api.partnercenter.microsoft.com/v1/invoices/unbilled/lineitems?provider=onetime&invoiceLineItemType=usagelineitems¤cyCode=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
Příklad odpovědi 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¤cycode=usd&period=previous&size=2000",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}