@model BTCPayServer.Models.InvoicingModels.InvoiceReceiptViewModel @using BTCPayServer.Client @using BTCPayServer.Client.Models @using BTCPayServer.Components.QRCode @using BTCPayServer.Services @inject BTCPayServerEnvironment Env @inject DisplayFormatter DisplayFormatter @{ Layout = null; ViewData["Title"] = $"Receipt from {Model.StoreName}"; var isProcessing = Model.Status == InvoiceStatus.Processing; var isFreeInvoice = (Model.Status == InvoiceStatus.New && Model.Amount == 0); var isSettled = Model.Status == InvoiceStatus.Settled; } @if (isProcessing) { } else if (isFreeInvoice) { }
@if (isProcessing) {
The invoice has detected a payment but is still waiting to be settled.
} else if (!isSettled) {
The invoice is not settled.
} else { if (Model.ReceiptOptions.ShowQR is true) { }
Amount Paid
@DisplayFormatter.Currency(Model.Amount, Model.Currency, DisplayFormatter.CurrencyFormat.Symbol)
Date
@Model.Timestamp.ToBrowserDate()
@if (!string.IsNullOrEmpty(Model.OrderId)) {
Order ID
@Model.OrderId
}
Print
}
@if (isProcessing) { This page will refresh periodically until the invoice is settled. } else if (isSettled) { if (Model.AdditionalData?.Any() is true) {

Additional Data

} if (Model.Payments?.Any() is true) {

Payment Details

@foreach (var payment in Model.Payments) { @if (!string.IsNullOrEmpty(payment.Destination)) { } @if (!string.IsNullOrEmpty(payment.PaymentProof)) { } }
Date Paid Payment
@payment.ReceivedDate.ToBrowserDate() @payment.PaidFormatted @payment.AmountFormatted @payment.PaymentMethod
Destination
Payment Proof
@foreach (var payment in Model.Payments) {
@payment.PaidFormatted = @payment.Amount @payment.PaymentMethod, Rate: @payment.RateFormatted @if (!string.IsNullOrEmpty(payment.PaymentProof)) {
Proof: @payment.PaymentProof
}
}
} } @if (!string.IsNullOrEmpty(Model.OrderUrl)) { Return to @(string.IsNullOrEmpty(Model.StoreName) ? "store" : Model.StoreName) }