Delen via


Een verzameling facturen ophalen

van toepassing op: Partnercentrum | Partnercentrum beheerd door 21Vianet | Partnercentrum voor Microsoft Cloud voor de Amerikaanse overheid

Een verzameling facturen van de partner ophalen.

Voorwaarden

  • Referenties zoals beschreven in Partnercentrum-authenticatie. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als app+gebruikersreferenties.

C#

Als u een verzameling van alle beschikbare facturen wilt ophalen, gebruikt u de eigenschap Facturen om een interface voor factuurbewerkingen op te halen en roept u vervolgens de methode Get of GetAsync aan om de verzameling op te halen.

Als u een gepaginade verzameling facturen wilt ophalen, roept u eerst de methode BuildIndexedQuery aan en geeft u het paginaformaat door om een IQuery--object te maken. Gebruik vervolgens de eigenschap Facturen om een interface voor factuurbewerkingen op te halen en geef vervolgens het IQuery-object door aan de Query- of QueryAsync- methode om de aanvraag te verzenden en de eerste pagina op te halen.

Gebruik vervolgens de eigenschap Enumerators om een interface op te halen voor de verzameling ondersteunde enumerators voor resourceverzamelingen en roep vervolgens Invoices.Create aan om een opsomming te maken voor het doorlopen van de verzameling facturen. Gebruik ten slotte de enumerator om elke pagina met facturen op te halen en te gebruiken, zoals wordt weergegeven in het volgende codevoorbeeld. Elke aanroep naar de methode Volgende verzendt een aanvraag voor de volgende pagina met facturen op basis van het paginaformaat.

// 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();
}

Zie voor een iets ander voorbeeld Voorbeeld: Console-test-app. Project: Voorbeelden van partnercentrum-SDK's klasse: GetPagedInvoices.cs

Notitie

Dezelfde API wordt gebruikt voor alle moderne commerciële aankopen, evenals 145p- en Office-licenties. Grootte en offset worden alleen in aanmerking genomen voor verouderde facturen. Voor alle moderne commerciële aankopen wordt de paginagrootte & genegeerd.

REST-aanvraag

Aanvraagsyntaxis

Methode Aanvraag-URI
GET {baseURL}/v1/invoices?size={size}&offset={offset} HTTP/1.1
GET {baseURL}/v1/invoices?size={size}&offset={offset}&filter={"LeftFilter":{"Field":{field},"Value":{value },"Operator":{operator}},"RightFilter":{"Field":{field},"Value":{value},"Operator":{operator}},"Operator":{operator}} HTTP/1.1

URI-parameters

Gebruik de volgende queryparameters bij het maken van de aanvraag.

Naam Soort Vereist Beschrijving
grootte Int Nee Het aantal factuurbronnen dat in het antwoord moet worden teruggestuurd. Deze parameter is optioneel.
offset Int Nee De op nul gebaseerde index van de eerste factuur die moet worden geretourneerd.
filter reeks Nee Aangepaste filtercriteria op basis van tekst om de factuurresources in het antwoord te verminderen. Gebruik deze voorwaarde om time-outfouten te voorkomen. Zie hoe je de filtervoorwaarde kunt gebruiken

De filtervoorwaarde gebruiken

Een voorbeeld van de filtervoorwaarde:

/v1/invoices?size=10&offset=0&filter={"LeftFilter":{"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"},"RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"},"Operator":"and"}

Als u uw gegevens effectief wilt filteren, begrijpt u de drie belangrijkste onderdelen van de filtercriteria:

  • LeftFilter: Geef het veld, de waarde en de operator voor de linkerkant van de filterexpressie op om de initiële voorwaarde in te stellen.
  • Veld: Kenmerk dat moet worden gebruikt om te filteren
  • Waarde: Waarde van het kenmerk

"LeftFilter": {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"} bijvoorbeeld facturen op of na 1 januari 2023 filtert.

  • RightFilter: Definieer het veld, de waarde en de operator aan de rechterkant van de filterexpressie om de voorwaarde te voltooien.

"RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"} filtert bijvoorbeeld facturen op of vóór 31 december 2023.

  • Operator: Verbind de linker- en rechterfilters met een logische operator. Gebruik 'and' of 'or' om de criteria te combineren.

"Operator": "and" zorgt er bijvoorbeeld voor dat het filter facturen bevat die aan beide voorwaarden voldoen.

Voer voor één filter de veldnaam, waarde en operator in zonder de constructs LeftFilter of RightFilter nodig te hebben.

Met deze aanpak kunt u uw gegevens nauwkeurig en efficiënt filteren.

Aanvraagheaders

Zie Partnercentrum REST-headersvoor meer informatie.

Aanvraaginhoud

Geen

Voorbeeld van aanvraag

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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Belangrijk

Vanaf juni 2023 wordt de nieuwste Versie van Partner Center .NET SDK 3.4.0 gearchiveerd. U kunt de SDK-release downloaden van GitHub, samen met een readme-bestand met nuttige informatie.

Partners worden aangemoedigd om de Partner center REST API'ste blijven gebruiken.

REST-antwoord

Als het succesvol is, bevat de hoofdtekst van het antwoord de verzameling Factuur bronnen.

Geslaagde antwoorden en foutcodes

Elk antwoord wordt geleverd met een HTTP-statuscode die succes of mislukking aangeeft en andere informatie voor foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Partnercentrum REST-foutcodesvoor de volledige lijst.

Voorbeeld van antwoord

HTTP/1.1 200 OK
Content-Length: 256
Content-Type: application/json; charset=utf-8
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
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"
    }
}