Bagikan melalui


Api rekonsiliasi penggunaan harian yang ditagih dan tidak ditagih

Berlaku untuk: Pusat Mitra (tidak tersedia di Azure Government, Azure Jerman, atau Azure Tiongkok 21Vianet.)

API asinkron kami menawarkan cara yang lebih cepat dan lebih mudah dikelola untuk mengakses data penagihan dan rekonsiliasi melalui blob Azure. Dengan API ini, Anda tidak perlu membuka koneksi selama berjam-jam atau mengulangi batch 2.000 item baris.

Kami mengoptimalkan API rekonsiliasi penggunaan harian perdagangan baru kami menggunakan kunci valet dan pola balasan permintaan asinkron. Saat Anda menggunakan API ini, Anda menerima token yang dapat Anda gunakan untuk mengakses semua atribut atau subset data rekonsiliasi penggunaan harian yang dinilai.

Catatan

API baru tidak dihosting di host API Pusat Mitra. Sebagai gantinya, Anda dapat menemukannya di MS Graph di Menggunakan Microsoft Graph API untuk mengekspor data tagihan mitra - Microsoft Graph v1.0 | Microsoft Learn. Untuk mengakses API ini, lihat detail berikut.

Anda hanya dapat menggunakan API ini untuk cloud publik/global MS Graph. Mereka belum tersedia untuk Azure Government, Azure Jerman, atau Azure Tiongkok 21Vianet.

Catatan

Jika Anda telah menggunakan versi beta kami, Anda mungkin tidak melihat perubahan signifikan dalam versi yang tersedia secara umum (GA). Sebaiknya bandingkan dua versi untuk memahami perbedaan dan pembaruan.

Penting

Penggunaan peringkat harian perdagangan baru tidak termasuk biaya untuk produk-produk ini:

  • Reservasi Azure
  • Paket penghematan Azure
  • Office
  • Dynamics
  • Microsoft Power Apps
  • Perangkat lunak abadi
  • Langganan perangkat lunak
  • Produk SaaS non-Microsoft

Ringkasan API

Untuk mengambil item baris penggunaan harian perdagangan baru secara asinkron, gunakan dua titik akhir API. Berikut prosesnya:

Titik akhir item baris penggunaan

Gunakan API ini untuk mengambil item baris penggunaan harian yang ditagih atau tidak ditagih. Anda mendapatkan status HTTP 202 dan URL di header lokasi. Polling URL ini secara berkala hingga Anda menerima status sukses dengan URL manifes.

Titik akhir status operasi

Untuk mendapatkan status sukses, terus panggil API ini secara berkala. Jika data belum siap, respons API menyertakan header Coba Lagi-Setelah untuk memberi tahu Anda berapa lama menunggu sebelum mencoba lagi. Setelah operasi selesai, Anda mendapatkan sumber daya manifes dengan folder penyimpanan tempat Anda dapat mengunduh data penggunaan. Respons memecah file menjadi bagian yang lebih kecil untuk throughput dan paralelisme I/O yang dioptimalkan.

Diagram urutan

Berikut adalah diagram urutan yang memperlihatkan langkah-langkah untuk mengunduh data rekonsiliasi.

Diagram memperlihatkan langkah-langkah untuk mengunduh rekonsiliasi.

Urutan tindakan pengguna

Untuk mengambil item baris rekonsiliasi penggunaan harian perdagangan baru, ikuti langkah-langkah berikut:

Langkah 1: Kirim permintaan

Kirim permintaan POST ke titik akhir API.

Dapatkan item baris penggunaan harian yang tidak ditagih

Dapatkan item baris penggunaan harian perdagangan baru yang tidak ditagih untuk bulan kalender atau periode penagihan saat ini atau terakhir.

Permintaan API
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"

}
Isi permintaan
Atribut Wajib Tipe Deskripsi
attributeSet Salah String Pilih "penuh" untuk semua atribut atau "dasar" untuk set terbatas. Nilai defaultnya adalah "penuh." (Lihat daftar atribut di sini). Opsional.
billingPeriod Benar String Gunakan "saat ini" atau "terakhir" (sama seperti "sebelumnya" di API V1) untuk mendapatkan penggunaan berperingkat harian untuk bulan kalender atau periode penagihan saat ini atau terakhir. Harus diisi.
currencyCode Benar String Kode mata uang penagihan mitra. Harus diisi.
Header permintaan

Untuk meminta header api, lihat Keandalan dan dukungan.

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

Saat Anda menggunakan API, biasanya mengembalikan status HTTP 202. Untuk melihat kemungkinan status lain berdasarkan permintaan Anda, lihat Status respons API Standar.

Kode Deskripsi
202 – Diterima Permintaan Anda diterima. Untuk memeriksa status permintaan Anda, kueri URL yang disediakan di header lokasi.

Dapatkan item baris penggunaan berperingkat harian yang ditagih

Dapatkan item baris penggunaan berperingkat harian yang ditagih perdagangan baru untuk faktur untuk periode penagihan tertutup.

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

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

Parameter kueri

T/A

Isi permintaan
Atribut Wajib Tipe Deskripsi
invoiceId Benar String Pengidentifikasi unik untuk setiap faktur. Harus diisi.
attributeSet Salah String Pilih "penuh" untuk semua atribut atau "dasar" untuk set terbatas. Nilai defaultnya adalah "penuh." (Lihat daftar atribut di sini). Opsional.
Header permintaan

Meminta header untuk API. Untuk mempelajari lebih lanjut, lihat keandalan dan dukungan.

Respons API

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

Saat Anda menggunakan API, biasanya mengembalikan status HTTP 202. Untuk kemungkinan status lain berdasarkan permintaan Anda, lihat Status.

Kode Deskripsi
202 – Diterima Permintaan Anda diterima. Untuk memeriksa status permintaan Anda, kueri URL yang disediakan di header lokasi.

Langkah 2: Periksa status permintaan

Untuk memeriksa status permintaan, tunggu respons HTTP 200 dengan status "berhasil" atau "gagal." Jika permintaan berhasil, URL manifes disediakan di atribut "resourceLocation".

Dapatkan status Operasi

Mengambil status permintaan.

Permintaan API

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

Parameter permintaan
Nama Sertakan dalam Wajib Tipe Deskripsi
operationId URI Permintaan Benar String ID unik untuk memeriksa status permintaan. Harus diisi.
Header permintaan

Untuk meminta header api, lihat Keandalan dan dukungan.

Isi permintaan

T/A.

Status Respons

Selain status HTTP standar, API dapat mengembalikan status HTTP berikut:

Kode Deskripsi
410 – Hilang Tautan manifes hanya aktif untuk durasi tertentu yang ditetapkan oleh server. Setelah waktu ini berlalu, Anda harus mengirimkan permintaan baru untuk mengakses manifes.
Payload respons

Payload respons API mencakup atribut berikut:

Atribut Wajib Deskripsi
id Benar ID unik untuk setiap respons. Harus diisi.
status Benar Nilai dan tindakan (diperlukan):

notstarted: Tunggu waktu yang ditentukan di header "Coba Lagi-Setelah", lalu lakukan panggilan lain untuk memeriksa status.

berjalan: Tunggu waktu yang ditentukan di header "Coba Lagi-Setelah", lalu lakukan panggilan lain untuk memeriksa status.

berhasil: Data siap. Ambil payload manifes menggunakan URI yang ditentukan dalam resourceLocation.

gagal: Operasi gagal secara permanen. Hidupkan ulang.
createdDateTime Benar Waktu ketika permintaan dibuat. Harus diisi.
lastActionDateTime Benar Waktu status terakhir diubah. Harus diisi.
resourceLocation Salah URI untuk payload manifes. Opsional.
kesalahan Salah Jika operasi gagal, detail kesalahan disediakan dalam format JSON. Opsional.

Atribut berikut mungkin disertakan:

message (Required): Deskripsi terperinci tentang kesalahan.

code (Wajib): Jenis kesalahan yang terjadi.
Objek lokasi sumber daya
Atribut Deskripsi
id Pengidentifikasi unik untuk manifes.
schemaVersion Versi skema manifes.
dataFormat Format file data penagihan.

compressedJSON: format data di mana setiap blob adalah file terkompresi yang berisi data dalam format baris JSON . Untuk mengambil data dari setiap blob, dekompresi.
createdDateTime Tanggal dan waktu ketika file manifes dibuat.
eTag Versi data manifes. Perubahan informasi penagihan menghasilkan nilai baru.
partnerTenantId ID penyewa mitra.
rootDirectory Direktori akar file.
sasToken Token SAS (tanda tangan akses bersama) yang memungkinkan Anda membaca semua file di bawah direktori.
partitionType Membagi data menjadi beberapa blob berdasarkan atribut "partitionValue" . Sistem membagi partisi yang melebihi angka yang didukung. Secara default, data dipartisi berdasarkan jumlah item baris dalam file. Jangan tetapkan jumlah item baris atau ukuran file dalam kode, karena nilai-nilai ini mungkin berubah.
blobCount Jumlah total file untuk ID penyewa mitra ini.
blob Array JSON objek "blob" yang berisi detail file untuk ID penyewa mitra.
objek blob Objek yang berisi detail berikut:
nama Nama blob.
partitionValue Partisi yang berisi file. Partisi besar dibagi menjadi beberapa file, dengan setiap file berisi "partitionValue" yang sama.
Permintaan API
GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>
Respons API

Respons merekomendasikan menunggu selama 10 detik sebelum mencoba lagi saat memproses data.

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"  
}
Permintaan API

(10 detik setelah permintaan sebelumnya...)

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

API mengembalikan status "berhasil" dan URI untuk "resourceLocation."

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"

            }

        \]

    }

}

Langkah 3: Unduh item baris rekonsiliasi penggunaan harian dari penyimpanan blob Azure

Dapatkan token tanda tangan akses bersama (SAS) dan lokasi penyimpanan blob dari properti "sasToken" dan "rootDirectory" respons API payload manifes. Gunakan Azure Storage SDK/tool untuk mengunduh dan membuka zip file blob. Ini dalam format JSONLines .

Tip

Lihat kode sampel kami untuk mengunduh dan membuka zip file blob Azure ke database lokal Anda.

Status respons API standar

Anda mungkin menerima status HTTP ini dari respons API:

Kode Keterangan
400 – Permintaan Buruk Permintaan hilang atau berisi data yang salah. Periksa isi respons untuk detail kesalahan.
401 – Tidak sah Pemanggil tidak diautentikasi, dan Anda harus mengautentikasi dengan layanan API mitra sebelum melakukan panggilan pertama.
403 – Terlarang Anda tidak memiliki otorisasi yang diperlukan untuk membuat permintaan.
404 – Tidak Ditemukan Sumber daya yang diminta tidak tersedia dengan parameter input yang disediakan.
410 – Hilang Tautan manifes kehabisan waktu atau kedaluwarsa. Kirim permintaan baru.
500 – Kesalahan Server Internal API atau salah satu dependensinya tidak dapat memenuhi permintaan saat ini. Coba lagi nanti.
5000 – Tidak ada data yang tersedia Sistem tidak memiliki data untuk parameter input yang disediakan.

Membandingkan versi beta dan GA

Lihat tabel perbandingan untuk memahami perbedaan antara versi beta dan yang tersedia secara umum (GA). Jika Anda menggunakan versi beta, beralih ke versi GA harus mudah.

Informasi penting Beta Tersedia secara umum
Titik akhir host API https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/ https://graph.microsoft.com/v1.0/reports/partners/billing/usage/
Metode HTTP POST POST
Titik akhir API penggunaan harian yang tidak ditagih https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage https://graph.microsoft.com/v1.0/reports/partners/billing/usage/unbilled/export
Parameter input untuk API penggunaan harian yang tidak ditagih Untuk menentukan parameter dalam permintaan API, sertakan dalam string kueri URL permintaan.
Misalnya, untuk menentukan parameter periode dan currencyCode, tambahkan ?period=current&currencyCode=usd ke URL permintaan.
Untuk memberikan input, sertakan objek JSON dalam isi permintaan. Objek JSON harus berisi properti berikut:
* currencyCode: Kode mata uang untuk faktur. Misalnya, USD.
* billingPeriod: Periode penagihan untuk faktur. Misalnya, saat ini.
Berikut adalah contoh objek JSON yang menyertakan properti currencyCode dan billingPeriod:<br>{<br> "currencyCode": "USD",<br> "billingPeriod": "current"<br>}
Titik akhir API penggunaan berperingkat harian yang ditagih https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{InvoiceId} https://graph.microsoft.com/v1.0/reports/partners/billing/usage/billed/export
Parameter input untuk API penggunaan berperingkat harian yang ditagih Untuk menentukan parameter dalam permintaan API, sertakan invoiceId dalam URL permintaan. Selain itu, Anda dapat menyertakan parameter fragmen opsional dalam string kueri untuk mengambil set atribut lengkap.
Misalnya, untuk mengambil sekumpulan atribut lengkap, tambahkan ?fragment=full ke URL permintaan.
Untuk memberikan input, sertakan objek JSON dalam isi permintaan. Objek JSON harus berisi properti berikut:
* invoiceId: ID faktur. Misalnya, G00012345.
* attributeSet: Kumpulan atribut yang akan disertakan dalam respons. Misalnya, penuh.
Berikut adalah contoh objek JSON yang menyertakan properti invoiceId dan attributeSet:
{<br> "invoiceId": "G00012345",<br> "attributeSet": "full"<br>}
Sumber daya manifes Gunakan metode GET /manifests/{id} terpisah untuk mengambil sumber daya manifes. Gunakan metode GET /operations/{Id}, yang mengembalikan sumber daya manifes terkait dalam resourceLocation yang menghilangkan kebutuhan akan panggilan terpisah ke metode GET /manifests/{id}.
Perubahan pada skema manifes
"id": Tidak tersedia "id": Pengidentifikasi unik untuk sumber daya manifes.
"version": Available "version": berganti nama menjadi "schemaversion."
"dataFormat": Tersedia "dataFormat": Tersedia.
"utcCretedDateTime": Tersedia "utcCretedDateTime": diganti namanya menjadi "createdDateTime."
"eTag": Tersedia "eTag": Tersedia.
"partnerTenantId": Tersedia "partnerTenantId": Tersedia
"rootFolder": Tersedia "rootFolder": diganti namanya menjadi "rootDirectory."
"rootFolderSAS": Tersedia "rootFolderSAS": diganti namanya menjadi "sasToken." Sekarang menyediakan token dan tidak lagi menyertakan jalur direktori akar. Untuk mengakses direktori, gunakan properti "rootDirectory".
"partitionType": Tersedia "partitionType": Tersedia.
"blobCount": Tersedia "blobCount": Tersedia.
"sizeInBytes": Tersedia "sizeInBytes": Tidak tersedia.
"blob": Tersedia "blob": Tersedia.
"objek blob": Tersedia "objek blob": Tersedia.
"name": Available "name": Tersedia.
"partitionValue": Tersedia "partitionValue": Tersedia.

Atribut item baris rekonsiliasi penggunaan harian

Untuk membandingkan atribut yang dikembalikan oleh API rekonsiliasi penggunaan berperingkat harian untuk set atribut "penuh" atau "dasar", lihat informasi berikut.

Atribut Penuh Dasar
PartnerId yes yes
PartnerName yes yes
ID Pelanggan yes yes
CustomerName yes Ya
CustomerDomainName yes no
CustomerCountry yes no
MpnId yes no
Tier2MpnId yes no
InvoiceNumber yes yes
ProductId yes yes
SkuId yes yes
AvailabilityId yes no
SkuName yes yes
ProductName yes no
PublisherName yes yes
PublisherId yes no
SubscriptionDescription yes no
SubscriptionId yes yes
ChargeStartDate yes yes
ChargeEndDate yes yes
UsageDate yes yes
MeterType yes no
MeterCategory yes no
MeterId yes no
MeterSubCategory yes no
MeterName yes no
MeterRegion yes no
Unit yes yes
ResourceLocation yes no
ConsumedService yes no
ResourceGroup yes no
ResourceURI yes yes
chargeType yes yes
UnitPrice yes yes
Quantity yes yes
UnitType yes no
BillingPreTaxTotal yes yes
billingCurrency yes yes
PricingPreTaxTotal yes yes
PricingCurrency yes yes
ServiceInfo1 yes no
ServiceInfo2 yes no
Tag yes no
AdditionalInfo yes no
EffectiveUnitPrice yes yes
PCToBCExchangeRate yes yes
EntitlementId yes yes
EntitlementDescription yes no
PartnerEarnedCreditPercentage yes no
CreditPercentage yes yes
CreditType yes yes
BenefitOrderID yes yes
BenefitID yes no
BenefitType yes yes

Penting

Catat perubahan ini saat pindah ke API v2 dari v1.

  • Setiap nama atribut dimulai dalam huruf besar.

  • unitOfMeasure sekarang menjadi Unit. Arti dan nilai atribut sama.

  • resellerMpnId sekarang menjadi Tier2MpnId. Arti dan nilai atribut sama.

  • Nama dan nilai rateOfPartnerEarnedCredit telah berubah menjadi PartnerEarnedCreditPercentage. Nama dan nilai baru atribut mencerminkan persentase alih-alih pecahan. Misalnya, 0,15 sekarang menjadi 15.

  • rateOfCredit sekarang adalah CreditPercentage. Arti dan nilai atribut telah berubah. Misalnya, 1.00 sekarang menjadi 100.

Kode Sampel

Untuk mempelajari selengkapnya, lihat Sampel API Pusat Mitra: Mendapatkan data pengintaian penagihan.