---
title: "Get All Invoices"
canonical: "https://docs.dk.is/space/DKPLUS/7897416/Get%20All%20Invoices"
format: markdown
---
Here is an example of getting all invoices for a company.


```csharp
        Console.WriteLine("Getting Invoices!");
        var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", apiKey);
        DateTime queryFrom = new DateTime(1900, 1, 1); //Load from config
        List<dkPlus.Core.Model.Sales.Invoice.SalesInvoice> invoices = null;
        List<dkPlus.Core.Model.Sales.Invoice.SalesInvoice> totoalInvoices = new List<dkPlus.Core.Model.Sales.Invoice.SalesInvoice>();
        bool doFetch = true;

        int page = 1;
        do
        {
            Console.WriteLine($"Page:{page}, Modified:{queryFrom.ToUniversalTime().ToString("o")}");
            var response = await httpClient.GetAsync($"{apiUrl}/api/v1/sales/invoice/page/{page}/1000?modifiedAfter={queryFrom.ToUniversalTime().ToString("o")}");
            var rspContent = await response.Content.ReadAsStringAsync();
            invoices = Newtonsoft.Json.JsonConvert.DeserializeObject<List<dkPlus.Core.Model.Sales.Invoice.SalesInvoice>>(rspContent);
            page++;
            doFetch = invoices != null && invoices.Count >= 1000;
            totoalInvoices.AddRange(invoices);
            if (totoalInvoices.Count >= 50000) //if limit is hit for 50.000 objects "Paging" https://apidoc.dkplus.is/
            {
                queryFrom = invoices.Last().ObjectDate.Value.AddMilliseconds(1);
                page = 1;
            }
        } while (doFetch);
        var nextSyncData = totoalInvoices.OrderBy(x => x.ObjectDate).Last().ObjectDate.Value.AddMilliseconds(1);
        Console.WriteLine($"Fetched {totoalInvoices.Count} invoices");
        Console.WriteLine($"Next Sync Date To Use for Orders:{nextSyncData}");
```