Aracılığıyla paylaş


Faturalanan fatura mutabakat API'si v2 (GA)

Şunlar için geçerlidir: İş Ortağı Merkezi (bağımsız bulutta kullanılamaz)

Zaman uyumsuz API'miz, 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 ile bir bağlantıyı saatlerce açık tutmanız veya aynı anda 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 faturalanmış fatura mutabakat API'mizi iyileştirdik. Bu API, tüm özniteliklere veya faturalanan fatura mutabakat verilerinin bir alt kümesine erişmek için kullanabileceğiniz bir paylaşılan erişim imzası (SAS) belirteci sağlar.

Not

Yeni API, İş Ortağı Merkezi API ana bilgisayarında barındırılmıyor. Bunun yerine, bunu MS Graph'ta Microsoft Graph API'sini kullanarak iş ortağı faturalama verilerini dışarı aktarma - Microsoft Graph v1.0 sayfasında bulabilirsiniz. Bu API'ye erişmek için aşağıdaki ayrıntılara bakın.

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

API’ye genel bakış

Faturalanan yeni ticari fatura mutabakat verilerini zaman uyumsuz olarak almak için iki API uç noktası kullanın. Süreç şu şekildedir:

Faturalanan fatura mutabakatı uç noktası

Bu API'yi yeni ticaret faturalanmış fatura mutabakat satırı öğelerini almak için kullanın. API, 202 HTTP durumunu ve URL içeren bir konum üst bilgisini döndürür. 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

Burada, yeni ticari fatura mutabakat verilerini indirme adımlarını gösteren bir sıralı diyagram yer alır.

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

Kullanıcı eylem dizisi

Faturalanan fatura mutabakat verilerini almak için şu adımları izleyin:

1. Adım: İstek gönderme

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

Faturalanan fatura mutabakat satırı öğelerini alma

API isteği

POST https://graph.microsoft.com/v1.0/reports/partners/billing/reconciliation/billed/export

Accept: application/json

Content-Type: application/json

{

"invoiceId": "G016907411",

"attributeSet": "basic"

}

Sorgu parametreleri

Yok

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. (Bu makaledeki öznitelik listesine bakın). isteğe bağlı.
invoiceId Doğru String Her fatura için benzersiz bir tanımlayıcı. Gerekli.

İstek üst bilgileri

Microsoft Graph'i kullanmaya yönelik en iyi yöntemler altında listelenen adımları kullanarak API için üst bilgileri isteyin.

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 genellikle HTTP 202 durumuyla yanıt verir. İsteklerinize bağlı olarak diğer olası durumlar bu makaledeki Standart API yanıt durumlarında listelenmiştir.

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 "resourceLocation" özniteliğinde bildirim URL'sini alırsınız.

İş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

Microsoft Graph'i kullanmaya yönelik en iyi yöntemler altında listelenen adımları kullanarak API için üst bilgileri isteyin.

Request body

Yok.

Yanıt durumu

Bu makaledeki Standart API yanıt durumlarında listelenen standart HTTP durumlarına ek olarak, API aşağıdaki HTTP durumunu döndürebilir:

Kod Description
410 – Gitti Bildirim bağlantısının süresi belirli bir süreden sonra dolar. Bildirim bağlantısını yeniden almak için yeni bir istek gönderin.

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 dahildir:
ileti: Hatanın ayrıntılı açıklaması.
kod: 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. Kodda sabit sayıda satır öğesi veya dosya boyutu ayarlamayın çünkü bu değerler değişebilir.
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:
name: 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.
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, verileriniz işlemeye devam ederken 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: Faturalanan fatura mutabakat verilerini Azure blob depolama alanından 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ı indirmek ve sıkıştırmasını açmak için Azure Depolama SDK'sı/aracı. 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'nin yanıtından alabilirsiniz:

Kod Description
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ı artık geçerli veya etkin değil. 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.

Faturalanan fatura mutabakatı veri öznitelikleri

Faturalanan fatura mutabakat API'sinin "tam" veya "temel" öznitelik kümeleri için döndürdiği öznitelikleri karşılaştırmak için aşağıdaki tabloya bakın.

Öznitelik Tam Temel
İş Ortağı Kimliği evet evet
CustomerId evet evet
CustomerName evet evet
CustomerDomainName evet hayır
CustomerCountry evet hayır
InvoiceNumber evet evet
MpnId evet hayır
Tier2MpnId evet evet
OrderId evet evet
OrderDate evet evet
Ürün Kimliği evet evet
SkuId evet evet
AvailabilityId evet evet
SkuName evet hayır
ProductName evet evet
ChargeType evet evet
UnitPrice evet evet
Miktar evet hayır
Alt Toplam evet evet
TaxTotal evet evet
Toplam evet evet
Para birimi evet evet
PriceAdjustmentDescription evet evet
PublisherName evet evet
PublisherId evet hayır
SubscriptionDescription evet hayır
SubscriptionId evet evet
ChargeStartDate evet evet
ChargeEndDate evet evet
TermAndBillingCycle evet evet
EffectiveUnitPrice evet evet
Unittype evet hayır
AlternateId evet hayır
BillableQuantity evet evet
BillingFrequency evet hayır
PricingCurrency evet evet
PCToBCExchangeRate evet evet
PCToBCExchangeRateDate evet hayır
MeterDescription evet hayır
ReservationOrderId evet evet
CreditReasonCode evet evet
SubscriptionStartDate evet evet
SubscriptionEndDate evet evet
ReferenceId evet evet
ProductQualifiers evet hayır
PromotionId evet evet
ProductCategory evet evet

Örnek kod

API'yi kullanma yönergeleri için C# dilinde örnek kod içeren aşağıdaki bağlantıya bakın.

İş Ortağı-Merkezi Faturalama-Mutabakat Örnekleri: İş Ortağı Merkezi'nden (github.com) Faturalama mutabakat verilerini almaya yönelik API örnekleri.