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'-'MM'-'dd'T'HH':'mm':'ss'Z'"),
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"
}
}