Aracılığıyla paylaş


Faturalandırılmış ve faturalanmamış günlük derecelendirilmiş kullanım mutabakatı API'si v2 (GA)

Şunlar için geçerlidir: İş Ortağı Merkezi (Azure Kamu, Azure Almanya veya Azure China 21Vianet'te kullanılamaz.)

Zaman uyumsuz API'lerimiz, Azure blobları aracılığıyla faturalama ve mutabakat verilerine erişmek için daha hızlı ve daha yönetilebilir bir yol sunar. Bu API'lerle bağlantıyı saatlerce açık tutmanız veya 2.000 satırlık öğelerden oluşan toplu işlemler arasında döngü yapmanız gerekmez.

Vale anahtarı ve zaman uyumsuz istek-yanıt desenlerini kullanarak yeni ticaret günlük derecelendirilmiş kullanım mutabakat API'lerimizi iyileştirdik. Bu API'leri kullandığınızda, tüm özniteliklere veya günlük derecelendirilmiş kullanım mutabakat verilerinin bir alt kümesine erişmek için kullanabileceğiniz bir belirteç alırsınız.

Not

Yeni API'ler İş Ortağı Merkezi API ana bilgisayarında barındırılamaz. Bunun yerine bunları MS Graph'ta bulabilirsiniz: İş ortağı faturalama verilerini dışarı aktarmak için Microsoft Graph API'sini kullanma - Microsoft Graph v1.0 | Microsoft Learn. Bu API'lere erişmek için aşağıdaki ayrıntılara bakın.

Bu API'leri yalnızca MS Graph genel/genel bulutu için kullanabilirsiniz. Bunlar henüz Azure Kamu, Azure Almanya veya Azure China 21Vianet için kullanılamaz.

Not

Beta sürümümüzü kullandıysanız genel kullanıma sunulan (GA) sürümde önemli değişiklikler fark etmeyebilirsiniz. Farklılıkları ve güncelleştirmeleri anlamak için iki sürümü karşılaştırmanızı öneririz.

Önemli

Yeni ticaret günlük derecelendirmeli kullanım, bu ürünlerin ücretlerini içermez:

  • Azure rezervasyonu
  • Azure tasarruf planı
  • Office
  • Dynamics
  • Microsoft Power Apps
  • Kalıcı yazılım
  • Yazılım aboneliği
  • Microsoft dışı SaaS ürünü

API’ye genel bakış

Yeni ticaret günlük derecelendirilmiş kullanım satırı öğelerini zaman uyumsuz olarak almak için iki API uç noktası kullanın. Süreç şu şekildedir:

Kullanım satır öğesi uç noktası

Faturalanmış veya faturalanmamış günlük derecelendirilmiş kullanım satırı öğelerini almak için bu API'yi kullanın. Konum üst bilgisinde 202 HTTP durumunu ve URL'yi alırsınız. Bildirim URL'si ile bir başarı durumu elde edene kadar düzenli aralıklarla bu URL'yi yokla.

İşlem durumu uç noktası

Başarı durumunu almak için bu API'yi düzenli aralıklarla çağırmaya devam edin. Veriler hazır değilse API yanıtı, yeniden denemeden önce ne kadar beklemeniz gerektiğini gösteren bir Yeniden Deneme-Sonra üst bilgisi içerir. İşlem tamamlandığında, kullanım verilerini indirebileceğiniz depolama klasörüne sahip bir bildirim kaynağı alırsınız. Yanıt, iyileştirilmiş aktarım hızı ve G/Ç paralelliği için dosyaları daha küçük parçalara ayırır.

Sıralı diyagram

Mutabakat verilerini indirme adımlarını gösteren bir sıralı diyagram aşağıdadır.

Mutabakatı indirme adımlarını gösteren diyagram.

Kullanıcı eylem dizisi

Yeni ticaret günlük derecelendirilmiş kullanım mutabakatı satırı öğelerini almak için şu adımları izleyin:

1. Adım: İstek gönderme

API uç noktasına bir POST isteği gönderin.

Faturalanmamış günlük derecelendirilmiş kullanım satırı öğelerini alma

Geçerli veya son takvim ayı veya faturalama dönemi için yeni ticari faturalanmamış günlük derecelendirilmiş kullanım satırı öğeleri alın.

API isteği
POST https://graph.microsoft.com/v1.0/reports/partners/billing/usage/unbilled/export

Accept: application/json

Content-Type: application/json

{

"currencyCode": "USD",

"billingPeriod": "current",

"attributeSet": "basic"

}
Request body
Öznitelik Zorunlu Türü Açıklama
attributeSet False String Tüm öznitelikler için "tam" veya sınırlı bir küme için "temel" seçeneğini belirleyin. Varsayılan değer "tam"dır. (Öznitelik listesine buradan bakın). isteğe bağlı.
billingPeriod Doğru String Geçerli veya son takvim ayı veya faturalama dönemi için günlük derecelendirilmiş kullanım elde etmek için "geçerli" veya "son" (V1 API'lerinde "önceki" ile aynı) kullanın. Gerekli.
currencyCode Doğru String İş ortağı faturalama para birimi kodu. Gerekli.
İstek üst bilgileri

API için üst bilgi istemek için bkz . Güvenilirlik ve destek.

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

API'yi kullandığınızda genellikle bir HTTP 202 durumu döndürür. İsteklerinize göre diğer olası durumları görmek için bkz . Standart API yanıt durumları.

Kod Description
202 – Kabul Edildi İsteğiniz kabul edildi. İsteğinizin durumunu denetlemek için konum üst bilgisinde sağlanan URL'yi sorgula.

Faturalanan günlük derecelendirilmiş kullanım satırı öğelerini alma

Kapatılan faturalama dönemine ait bir fatura için yeni ticaret faturalanmış günlük derecelendirmeli kullanım satırı öğelerini alın.

API isteği
POST https://graph.microsoft.com/v1.0/reports/partners/billing/usage/billed/export

{  
"invoiceId": "G00012345",  
"attributeSet": "full"  
}

Sorgu parametreleri

Yok

Request body
Öznitelik Zorunlu Türü Açıklama
invoiceId Doğru String Her fatura için benzersiz bir tanımlayıcı. Gerekli.
attributeSet False String Tüm öznitelikler için "tam" veya sınırlı bir küme için "temel" seçeneğini belirleyin. Varsayılan değer "tam"dır. (Öznitelik listesine buradan bakın). isteğe bağlı.
İstek üst bilgisi

API için istek üst bilgileri. Daha fazla bilgi edinmek için güvenilirlik ve destek konularına bakın.

API yanıtı

HTTP/1.1 202 Kabul Edildi
Yer: https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14

API'yi kullandığınızda genellikle bir HTTP 202 durumu döndürür. İsteklerinize göre diğer olası durumlar için bkz. Durum.

Kod Description
202 – Kabul Edildi İsteğiniz kabul edildi. İsteğinizin durumunu denetlemek için konum üst bilgisinde sağlanan URL'yi sorgula.

2. Adım: İstek durumunu denetleme

İsteğin durumunu denetlemek için "başarılı" veya "başarısız" durumuna sahip bir HTTP 200 yanıtı bekleyin. İstek başarılı olursa bildirim URL'si "resourceLocation" özniteliğinde sağlanır.

İşlem durumunu alma

İsteğin durumunu alır.

API isteği

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

İstek parametreleri
Veri Akışı Adı Dahil et Zorunlu Türü Açıklama
operationId İstek URI'si Doğru String İstek durumunu denetlemek için benzersiz bir kimlik. Gerekli.
İstek üst bilgisi

API için üst bilgi istemek için bkz . Güvenilirlik ve destek.

Request body

Yok.

Yanıt durumu

API, standart HTTP durumlarına ek olarak aşağıdaki HTTP durumunu döndürebilir:

Kod Description
410 – Gitti Bildirim bağlantısı yalnızca sunucu tarafından ayarlanan belirli bir süre boyunca etkindir. Bu süre geçtikten sonra bildirime erişmek için yeni bir istek göndermeniz gerekir.
Yanıt yükü

API yanıt yükü aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
id True Her yanıt için benzersiz bir kimlik. Gerekli.
durum True Değerler ve eylemler (gerekli):

notstarted: "Retry-After" üst bilgisinde belirtilen süreyi bekleyin, ardından durumu denetlemek için başka bir çağrı yapın.

running: "Retry-After" üst bilgisinde belirtilen süreyi bekleyin, ardından durumu denetlemek için başka bir çağrı yapın.

başarılı: Veriler hazır. resourceLocation içinde belirtilen URI'yi kullanarak bildirim yükünü alın.

başarısız oldu: İşlem kalıcı olarak başarısız oldu. Yeniden başlatın.
createdDateTime True İsteğin yapıldığı zaman. Gerekli.
lastActionDateTime True Durumun son değiştirildiği saat. Gerekli.
resourceLocation False Bildirim yükünün URI'sini. isteğe bağlı.
error False İşlem başarısız olursa, hata ayrıntıları JSON biçiminde sağlanır. isteğe bağlı.

Aşağıdaki öznitelikler dahil edilebilir:

ileti (Gerekli): Hatanın ayrıntılı açıklaması.

code (Gerekli): Oluşan hatanın türü.
Kaynak konumu nesnesi
Öznitelik Açıklama
id Bildirim için benzersiz bir tanımlayıcı.
schemaVersion Bildirim şemasının sürümü.
dataFormat Faturalama veri dosyasının biçimi.

compressedJSON: her blob JSON satır biçiminde veri içeren sıkıştırılmış bir dosya olduğunda veri biçimi. Her blobdan verileri almak için açın.
createdDateTime Bildirim dosyasının oluşturulduğu tarih ve saat.
eTag Bildirim verilerinin sürümü. Faturalama bilgilerinde yapılan bir değişiklik yeni bir değer oluşturur.
partnerTenantId İş ortağının kiracısının kimliği.
rootDirectory Dosyanın kök dizini.
sasToken Dizinin altındaki tüm dosyaları okumanızı sağlayan SAS (paylaşılan erişim imzası) belirteci.
partitionType "partitionValue" özniteliğine göre verileri birden çok bloba böler. Sistem, desteklenen sayıyı aşan bölümleri böler. Varsayılan olarak, veriler dosyadaki satır öğelerinin sayısına göre bölümlenmiştir. Bu değerler değişebileceğinden kodda sabit sayıda satır öğesi veya dosya boyutu ayarlamayın.
blobCount Bu iş ortağı kiracı kimliği için toplam dosya sayısı.
bloblar İş ortağı kiracı kimliği için dosya ayrıntılarını içeren "blob" nesnelerinden oluşan bir JSON dizisi.
blob nesnesi Aşağıdaki ayrıntıları içeren bir nesne:
Adı Blobun adı.
partitionValue Dosyayı içeren bölüm. Büyük bölüm, her dosya aynı "partitionValue" içeren birden çok dosyaya bölünür.
API isteği
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>
API yanıtı

Yanıt, verileri işlerken yeniden denemeden önce 10 saniye beklemenizi önerir.

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 isteği

(Önceki istekte 10 saniye sonra...)

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

API, "resourceLocation" için "başarılı" durumunu ve URI'sini döndürür.

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"

            }

        \]

    }

}

3. Adım: Azure blob depolamadan günlük derecelendirilmiş kullanım mutabakatı satır öğelerini indirme

"sasToken" ve "rootDirectory" özelliklerinden bildirim yükü API'sinin yanıtından paylaşılan erişim imzası (SAS) belirtecini ve blob depolama konumunu alın. Blob dosyasını indirip açmak için Azure Depolama SDK'sını/aracını kullanın. JSONLines biçimindedir.

İpucu

Azure blob dosyasını indirip yerel veritabanınıza açmak için örnek kodumuzu gözden geçirin.

Standart API yanıt durumları

BU HTTP durumlarını API yanıtından alabilirsiniz:

Kod Açıklama
400 – Hatalı İstek İstek eksik veya yanlış veriler içeriyor. Hata ayrıntıları için yanıt gövdesini denetleyin.
401 – Yetkisiz Arayan kimliği doğrulanmamıştır ve ilk çağrıyı yapmadan önce iş ortağı API hizmetiyle kimlik doğrulaması yapmanız gerekir.
403 – Yasak İsteği yapmak için gerekli yetkilendirmeye sahip değilsiniz.
404 – Bulunamadı İstenen kaynaklar sağlanan giriş parametreleriyle kullanılamaz.
410 – Gitti Bildirim bağlantısı zaman aşımına uğradı veya süresi doldu. Yeni bir istek gönderin.
500 – İç Sunucu Hatası API veya bağımlılıklarından biri şu anda isteği karşılayamaz. Daha sonra tekrar deneyin.
5000 – Kullanılabilir veri yok Sistem, sağlanan giriş parametreleri için veri içermiyor.

Beta ve GA sürümlerini karşılaştırma

Beta ve genel kullanıma sunulan (GA) sürümleri arasındaki farkları anlamak için karşılaştırma tablosuna bakın. Beta sürümünü kullanıyorsanız GA sürümüne geçiş yapmak kolay olacaktır.

Önemli bilgiler Beta Genel kullanılabilir
API konak uç noktası https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/ https://graph.microsoft.com/v1.0/reports/partners/billing/usage/
HTTP yöntemi POST POST
Faturalanmamış günlük derecelendirilmiş kullanım API'si uç noktası https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage https://graph.microsoft.com/v1.0/reports/partners/billing/usage/unbilled/export
Faturalanmamış günlük derecelendirilmiş kullanım API'sinin giriş parametreleri API isteğinde parametreleri belirtmek için bunları istek URL'sinin sorgu dizesine ekleyin.
Örneğin, period ve currencyCode parametrelerini belirtmek için istek URL'sine ekleyin ?period=current&currencyCode=usd .
Giriş sağlamak için istek gövdesine bir JSON nesnesi ekleyin. JSON nesnesi aşağıdaki özellikleri içermelidir:
* currencyCode: Faturanın para birimi kodu. Örneğin, ABD doları.
* billingPeriod: Faturanın faturalama dönemi. Örneğin, geçerli.
Aşağıda currencyCode ve billingPeriod özelliklerini içeren bir JSON nesnesi örneği verilmiştir:<br>{<br> "currencyCode": "USD",<br> "billingPeriod": "current"<br>}
Faturalanan günlük derecelendirmeli kullanım API'si uç noktası https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{InvoiceId} https://graph.microsoft.com/v1.0/reports/partners/billing/usage/billed/export
Faturalanan günlük derecelendirmeli kullanım API'sinin giriş parametreleri API isteğinde parametreleri belirtmek için istek URL'sine invoiceId değerini ekleyin. Ayrıca, tüm öznitelik kümesini almak için sorgu dizesine isteğe bağlı bir parça parametresi ekleyebilirsiniz.
Örneğin, öznitelik kümesinin tamamını almak için istek URL'sine ekleyin ?fragment=full .
Giriş sağlamak için istek gövdesine bir JSON nesnesi ekleyin. JSON nesnesi aşağıdaki özellikleri içermelidir:
* invoiceId: Faturanın kimliği. Örneğin, G00012345.
* attributeSet: Yanıta eklenecek öznitelik kümesi. Örneğin, tam.
InvoiceId ve attributeSet özelliklerini içeren bir JSON nesnesi örneği aşağıda verilmiştir:
{<br> "invoiceId": "G00012345",<br> "attributeSet": "full"<br>}
Bildirim kaynağı Bildirim kaynağını almak için ayrı bir GET /manifests/{id} yöntemi kullanın. GET /manifests/{id} yöntemine ayrı bir çağrı gereksinimini ortadan kaldırarak resourceLocation içindeki ilgili bildirim kaynağını döndüren GET /operations/{Id} yöntemini kullanın.
Bildirim şemasındaki değişiklikler
"id": Kullanılamıyor "id": Bildirim kaynağının benzersiz tanımlayıcısı.
"sürüm": Kullanılabilir "version": "schemaversion" olarak yeniden adlandırıldı.
"dataFormat": Kullanılabilir "dataFormat": Kullanılabilir.
"utcCretedDateTime": Kullanılabilir "utcCretedDateTime": "createdDateTime" olarak yeniden adlandırıldı.
"eTag": Kullanılabilir "eTag": Kullanılabilir.
"partnerTenantId": Kullanılabilir "partnerTenantId": Kullanılabilir
"rootFolder": Kullanılabilir "rootFolder": "rootDirectory" olarak yeniden adlandırıldı.
"rootFolderSAS": Kullanılabilir "rootFolderSAS": "sasToken" olarak yeniden adlandırıldı. Artık bir belirteç sağlar ve artık kök dizin yolunu içermiyor. Dizine erişmek için bunun yerine "rootDirectory" özelliğini kullanın.
"partitionType": Kullanılabilir "partitionType": Kullanılabilir.
"blobCount": Kullanılabilir "blobCount": Kullanılabilir.
"sizeInBytes": Kullanılabilir "sizeInBytes": Kullanılamaz.
"bloblar": Kullanılabilir "bloblar": Kullanılabilir.
"blob nesnesi": Kullanılabilir "blob nesnesi": Kullanılabilir.
"name": Kullanılabilir "name": Kullanılabilir.
"partitionValue": Kullanılabilir "partitionValue": Kullanılabilir.

Günlük derecelendirilmiş kullanım mutabakatı satır öğesi öznitelikleri

"Tam" veya "temel" öznitelik kümeleri için günlük derecelendirilmiş kullanım mutabakat API'sinin döndürdiği öznitelikleri karşılaştırmak için aşağıdaki bilgilere bakın.

Öznitelik Tam Temel
İş Ortağı Kimliği evet evet
PartnerName evet evet
CustomerId evet evet
CustomerName evet Yes
CustomerDomainName evet hayır
CustomerCountry evet hayır
MpnId evet hayır
Tier2MpnId evet hayır
InvoiceNumber evet evet
Ürün Kimliği evet evet
SkuId evet evet
AvailabilityId evet hayır
SkuName evet evet
ProductName evet hayır
PublisherName evet evet
PublisherId evet hayır
SubscriptionDescription evet hayır
SubscriptionId evet evet
ChargeStartDate evet evet
ChargeEndDate evet evet
UsageDate evet evet
MeterType evet hayır
MeterCategory evet hayır
MeterId evet hayır
MeterSubCategory evet hayır
MeterName evet hayır
MeterRegion evet hayır
Birim evet evet
ResourceLocation evet hayır
ConsumedService evet hayır
ResourceGroup evet hayır
ResourceURI evet evet
ChargeType evet evet
UnitPrice evet evet
Miktar evet evet
UnitType evet hayır
BillingPreTaxTotal evet evet
BillingCurrency evet evet
PricingPreTaxTotal evet evet
PricingCurrency evet evet
ServiceInfo1 evet hayır
ServiceInfo2 evet hayır
Etiketler evet hayır
AdditionalInfo evet hayır
EffectiveUnitPrice evet evet
PCToBCExchangeRate evet evet
EntitlementId evet evet
EntitlementDescription evet hayır
PartnerEarnedCreditPercentage evet hayır
CreditPercentage evet evet
CreditType evet evet
BenefitOrderID evet evet
Avantaj Kimliği evet hayır
BenefitType evet evet

Önemli

v1'den API v2'ye geçerken bu değişiklikleri not edin.

  • Her özniteliğin adı büyük harfle başlar.

  • unitOfMeasure artık Unit oldu. Özniteliğin anlamı ve değeri aynıdır.

  • resellerMpnId artık Tier2MpnId'dir. Özniteliğin anlamı ve değeri aynıdır.

  • rateOfPartnerEarnedCredit adı ve değeri PartnerEarnedCreditPercentage olarak değiştirildi. Özniteliğin yeni adı ve değeri kesir yerine yüzdeyi yansıtır. Örneğin, 0,15 artık 15'tir.

  • rateOfCredit artık CreditPercentage oldu. Özniteliğin anlamı ve değeri değişti. Örneğin, 1,00 artık 100'dür.

Örnek kod

Daha fazla bilgi edinmek için bkz . İş Ortağı Merkezi API örnekleri: Faturalama mutabakat verilerini alma.