@using BTCPayServer.Client @using BTCPayServer.Client.Models @using BTCPayServer.Services @using SetPasswordViewModel = BTCPayServer.Models.ManageViewModels.SetPasswordViewModel @inject DisplayFormatter DisplayFormatter @model InvoicesModel @{ ViewData.SetActivePage(InvoiceNavPages.Index, "Invoices"); var statusFilterCount = CountArrayFilter("status") + CountArrayFilter("exceptionstatus") + (HasBooleanFilter("includearchived") ? 1 : 0) + (HasBooleanFilter("unusual") ? 1 : 0); var hasDateFilter = HasArrayFilter("startdate") || HasArrayFilter("enddate"); var appFilterCount = Model.Apps.Count(app => HasArrayFilter("appid", app.Id)); } @functions { private int CountArrayFilter(string type) => Model.Search.ContainsFilter(type) ? Model.Search.GetFilterArray(type).Length : 0; private bool HasArrayFilter(string type, string key = null) => Model.Search.ContainsFilter(type) && (key is null || Model.Search.GetFilterArray(type).Contains(key)); private bool HasBooleanFilter(string key) => Model.Search.ContainsFilter(key) && Model.Search.GetFilterBool(key) is true; private bool HasCustomDateFilter() => Model.Search.ContainsFilter("startdate") && Model.Search.ContainsFilter("enddate"); } @section PageHeadContent { } @section PageFootContent { @*Without async, somehow selenium do not manage to click on links in this page*@ @* Custom Range Modal *@ } @Html.HiddenFor(a => a.Count)

Invoices are documents issued by the seller to a buyer to collect payment.

An invoice must be paid within a defined time interval at a fixed exchange rate to protect the issuer from price fluctuations.

You can also apply filters to your search by searching for filtername:value. Be sure to split your search parameters with comma. Supported filters are:

  • orderid:id for filtering a specific order
  • itemcode:code for filtering a specific type of item purchased through the pos or crowdfund apps
Learn More
@* Custom Range Modal *@
@if (Model.Apps.Any()) { }
@if (Model.Invoices.Any()) {
@foreach (var invoice in Model.Invoices) { var detailsId = $"invoice_details_{invoice.InvoiceId}"; }
Date
Invoice Id Order Id Status Amount
0 selected
@if (HasBooleanFilter("includearchived")) { }
@invoice.Date.ToBrowserDate() @invoice.InvoiceId
@if (invoice.ShowCheckout) {   Checkout [^] }
@DisplayFormatter.Currency(invoice.Amount, invoice.Currency)
@* Leaving this as partial because it abstracts complexity of Invoice Payments *@
} else {

There are no invoices matching your criteria.

}