請求書のコレクションを取得するGet a collection of invoices

適用対象Applies To

  • パートナー センターPartner Center
  • 21Vianet が運営するパートナー センターPartner Center operated by 21Vianet
  • Microsoft Cloud ドイツのパートナー センターPartner Center for Microsoft Cloud Germany
  • 米国政府機関向け Microsoft Cloud のパートナー センターPartner Center for Microsoft Cloud for US Government

パートナーの請求書のコレクションを取得する方法。How to retrieve a collection of the partner's invoices.

前提条件Prerequisites

  • パートナー センターの認証に関するページで説明している資格情報。Credentials as described in Partner Center authentication. このシナリオでは、スタンドアロンアプリとアプリ + ユーザー資格情報の両方を使用した認証がサポートされています。This scenario supports authentication with both standalone App and App+User credentials.

C#C#

使用可能なすべての請求書のコレクションを取得する には、invoice プロパティを 使用して請求書操作へのインターフェイスを取得し、 Get または GetAsync メソッドを呼び出してコレクションを取得します。To get a collection of all available invoices, use the Invoices property to get an interface to invoice operations, and then call the Get or GetAsync method to retrieve the collection.

ページ分割された請求書のコレクションを取得するには、まず Buildindexedquery メソッドを呼び出し、それにページサイズを渡して iquery オブジェクトを作成します。To get a paged collection of invoices, first call the BuildIndexedQuery method and pass it the page size to create an IQuery object. 次に、invoice プロパティを使用して請求 書操作へのインターフェイスを取得し、 クエリ または QueryAsync メソッドに iquery オブジェクトを渡して、要求を送信して最初のページを取得します。Next, use the Invoices property to get an interface to invoice operations, and then pass the IQuery object to the Query or QueryAsync method to send the request and get the first page.

次に、 列挙子 プロパティを使用して、サポートされているリソースコレクション列挙子のコレクションへのインターフェイスを取得し、[請求書] を呼び出し [**ます。 作成** ] をクリックして、請求書のコレクションを走査するための列挙子を作成します。Next, use the Enumerators property to get an interface to the collection of supported resource collection enumerators, and then call Invoices.Create to create an enumerator for traversing the collection of invoices. 最後に、列挙子を使用して、次のコード例に示すように、請求書の各ページを取得して操作します。Finally, use the enumerator to retrieve and work with each page of invoices as shown in the following code example. のメソッドを呼び出すたびに、ページサイズに基づいて請求書の次のページの要求が送信されます。Each call to the Next method sends a request for the next page of invoices based on the page size.

// IAggregatePartner partnerOperations;
// int invoicePageSize;

// Is this an unpaged or paged request?
bool isUnpaged = (this.invoicePageSize <= 0);

// If the scenario is unpaged, get all the invoices, otherwise get the first page.
var invoicesPage = (isUnpaged)
                 ? partnerOperations.Invoices.Get()
                 : partnerOperations.Invoices.Query(QueryFactory.Instance.BuildIndexedQuery(this.invoicePageSize));

// Create an invoice enumerator for traversing the invoice pages.
var invoicesEnumerator = partnerOperations.Enumerators.Invoices.Create(invoicesPage);
int lineCounter = 1;

while (invoicesEnumerator.HasValue)
{
    // Print the current invoice results page.
    var invoices = invoicesEnumerator.Current.Items;

    foreach (var i in invoices)
    {
        Console.WriteLine(String.Format("{0,3}. {1}  {2}  {3,16:C2}",
            lineCounter++,
            i.Id,
            i.InvoiceDate.ToString("yyyy&#39;-&#39;MM&#39;-&#39;dd&#39;T&#39;HH&#39;:&#39;mm&#39;:&#39;ss&#39;Z&#39;"),
            i.TotalCharges));
    }

    Console.WriteLine();
    Console.Write("Press any key to retrieve the next invoices page");
    Console.ReadKey();

    // Get the next page of invoices.
    invoicesEnumerator.Next();
}

少し異なる例については、「 サンプル: コンソールテストアプリ」を参照してください。For a slightly different example, see Sample: Console test app. プロジェクト: パートナーセンター SDK サンプル クラス: GetPagedInvoices.csProject: Partner Center SDK Samples Class: GetPagedInvoices.cs

注意

同じ API が、すべての最新の商用購入に加え、145p と Office のライセンスにも使用されます。The same API is used for all modern commercial purchases as well as 145p and Office licenses. サイズとオフセットは、従来の請求書に対してのみ考慮されます。Size and offset are only considered for legacy invoices. すべての最新の商用購入については、pagesize & オフセットは無視されます。For all modern commercial purchases, pagesize & offset will be ignored.

REST 要求REST request

要求の構文Request syntax

認証方法Method 要求 URIRequest URI
GETGET {baseURL}/v1/invoices? size = {size} &オフセット = {OFFSET} HTTP/1.1{baseURL}/v1/invoices?size={size}&offset={offset} HTTP/1.1

URI パラメーターURI parameters

要求の作成時には、次のクエリパラメーターを使用します。Use the following query parameters when creating the request.

名前Name 種類Type 必須Required 説明Description
サイズsize INTint いいえNo 応答で返される請求リソースの数。The number of invoice resources to return in the response. このパラメーターは省略できます。This parameter is optional.
offsetoffset INTint いいえNo 返される最初の請求書の0から始まるインデックス。The zero-based index of the first invoice to return.

要求ヘッダーRequest headers

詳細については、「パートナー センター REST ヘッダー」を参照してください。For more information, see Partner Center REST headers.

[要求本文]Request body

なしNone

要求の例Request example

GET https://api.partnercenter.microsoft.com/v1/invoices?size=200&offset=0 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: e88d014d-ab70-41de-90a0-f7fd1797267d
MS-CorrelationId: de894e18-f027-4ac0-8b5a-34f0c222af0c
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

REST 応答REST response

成功した場合、応答本文には 請求 リソースのコレクションが含まれます。If successful, the response body contains the collection of Invoice resources.

応答の成功とエラーのコードResponse success and error codes

各応答には、成功または失敗を示す HTTP ステータス コードと、追加のデバッグ情報が付属しています。Each response comes with an HTTP status code that indicates success or failure and additional debugging information. このコード、エラーの種類、追加のパラメーターを読み取るには、ネットワーク トレース ツールを使用します。Use a network trace tool to read this code, error type, and additional parameters. 完全な一覧については、パートナー センターの REST エラーコードに関する記事を参照してください。For the full list, see Partner Center REST error codes.

応答の例Response example

HTTP/1.1 200 OK
Content-Length: 256
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 57eb2ca7-755f-450f-9187-eae1e75a0114
MS-RequestId: a45e6643-1caf-4429-8f90-07c03d85bc2b
Date: Thu, 24 Mar 2016 05:21:01 GMT
{
    "totalCount": 2,
    "items": [
        {
            "id": "D02005YFHI",
            "invoiceDate": "2017-01-21T00:00:00Z",
            "totalCharges": 24606.35,
            "paidAmount": 1000,
            "currencyCode": "GBP",
            "currencySymbol": "£",
            "pdfDownloadLink": "/invoices/D02005YFHI/documents/statement",
            "taxReceipts": [
                {
                    "id": "123456",
                    "taxReceiptPdfDownloadLink": "/invoices/D02005YFHI/receipts/123456/documents/statement"
                }
            ],
            "invoiceDetails": [
                {
                    "invoiceLineItemType": "billing_line_items",
                    "billingProvider": "office",
                    "links": {
                        "self": {
                            "uri": "/invoices/Recurring-D02005YFHI/lineitems/Office/BillingLineItems",
                            "method": "GET",
                            "headers": []
                        }
                    },
                    "attributes": {
                        "objectType": "InvoiceDetail"
                    }
                }
            ],
            "documentType": "invoice",
            "invoiceType": "Recurring",
            "links": {
                "self": {
                    "uri": "/invoices/Recurring-D02005YFHI",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Invoice"
            }
        },
        {
            "id": "G000024130",
            "invoiceDate": "2018-02-08T01:22:47.603895Z",
            "totalCharges": 586366,
            "paidAmount": 0,
            "currencyCode": "CHF",
            "currencySymbol": "CHF",
            "pdfDownloadLink": "/invoices/G000024130/documents/statement",
            "taxReceipts": [
                {
                    "id": "234567",
                    "taxReceiptPdfDownloadLink": "/invoices/G000024130/receipts/234567/documents/statement"
                }
            ],
            "invoiceDetails": [
                {
                    "invoiceLineItemType": "billing_line_items",
                    "billingProvider": "one_time",
                    "links": {
                        "self": {
                            "uri": "/invoices/OneTime-G000024130/lineitems/OneTime/BillingLineItems",
                            "method": "GET",
                            "headers": []
                        }
                    },
                    "attributes": {
                        "objectType": "InvoiceDetail"
                    }
                }
            ],
            "amendments": [
                {
                    "id": "G000024131",
                    "invoiceDate": "2018-02-08T18:44:37.5381456Z",
                    "totalCharges": 107661.12,
                    "paidAmount": 0,
                    "currencyCode": "CHF",
                    "currencySymbol": "CHF",
                    "invoiceDetails": [
                        {
                            "invoiceLineItemType": "billing_line_items",
                            "billingProvider": "one_time",
                            "attributes": {
                                "objectType": "InvoiceDetail"
                            }
                        }
                    ],
                    "documentType": "adjustment_note",
                    "amendsOf": "G000024130",
                    "invoiceType": "OneTime",
                    "attributes": {
                        "objectType": "Invoice"
                    }
                }
            ],
            "documentType": "void_note",
            "invoiceType": "OneTime",
            "links": {
                "self": {
                    "uri": "/invoices/OneTime-G000024130",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Invoice"
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/invoices?size=2&offset=0",
            "method": "GET",
            "headers": []
        },
        "next": {
            "uri": "/invoices?size=2&offset=2",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Collection"
    }
}