@using BTCPayServer.Client.Models @model InvoiceDetailsModel @{ ViewData["Title"] = $"Invoice {Model.Id}"; } @section PageHeadContent { } @section PageFootContent { } @if (Model.CanRefund) { }

Invoice Information

@if (!string.IsNullOrEmpty(Model.TypedMetadata.OrderId)) { } @if (Model.TypedMetadata.PaymentRequestId is not null) { } @if (!string.IsNullOrEmpty(Model.RefundEmail)) { } @if (!string.IsNullOrEmpty(Model.NotificationUrl)) { } @if (!string.IsNullOrEmpty(Model.RedirectUrl)) { }
Store @Model.StoreName
Invoice Id @Model.Id
Order Id @if (!string.IsNullOrEmpty(Model.TypedMetadata.OrderUrl)) { @if (string.IsNullOrEmpty(Model.TypedMetadata.OrderId)) { View Order } else { @Model.TypedMetadata.OrderId } } else { @Model.TypedMetadata.OrderId }
Payment Request Id @Model.TypedMetadata.PaymentRequestId
State @if (Model.CanMarkStatus) { } else { @Model.State }
Created Date @Model.CreatedDate.ToBrowserDate()
Expiration Date @Model.ExpirationDate.ToBrowserDate()
Monitoring Date @Model.MonitoringDate.ToBrowserDate()
Transaction Speed @Model.TransactionSpeed
Total Fiat Due @Model.Fiat
Refund Email @Model.RefundEmail
Notification Url @Model.NotificationUrl
Redirect Url @Model.RedirectUrl
@if (Model.PosData.Count == 0) {

Product Information

@if (!string.IsNullOrEmpty(Model.TypedMetadata.ItemCode)) { } @if (!string.IsNullOrEmpty(Model.TypedMetadata.ItemDesc)) { } @if (Model.TaxIncluded is not null) { }
Item code @Model.TypedMetadata.ItemCode
Item Description @Model.TypedMetadata.ItemDesc
Price @Model.Fiat
Tax Included @Model.TaxIncluded
} @if (Model.TypedMetadata.BuyerName is not null || Model.TypedMetadata.BuyerEmail is not null || Model.TypedMetadata.BuyerPhone is not null || Model.TypedMetadata.BuyerAddress1 is not null || Model.TypedMetadata.BuyerAddress2 is not null || Model.TypedMetadata.BuyerCity is not null || Model.TypedMetadata.BuyerState is not null || Model.TypedMetadata.BuyerCountry is not null || Model.TypedMetadata.BuyerZip is not null ) {

Buyer Information

@if (Model.TypedMetadata.BuyerName is not null) { } @if (Model.TypedMetadata.BuyerEmail is not null) { } @if (Model.TypedMetadata.BuyerPhone is not null) { } @if (Model.TypedMetadata.BuyerAddress1 is not null) { } @if (Model.TypedMetadata.BuyerAddress2 is not null) { } @if (Model.TypedMetadata.BuyerCity is not null) { } @if (Model.TypedMetadata.BuyerState is not null) { } @if (Model.TypedMetadata.BuyerCountry is not null) { } @if (Model.TypedMetadata.BuyerZip is not null) { }
Name @Model.TypedMetadata.BuyerName
Email @Model.TypedMetadata.BuyerEmail
Phone @Model.TypedMetadata.BuyerPhone
Address 1 @Model.TypedMetadata.BuyerAddress1
Address 2 @Model.TypedMetadata.BuyerAddress2
City @Model.TypedMetadata.BuyerCity
State @Model.TypedMetadata.BuyerState
Country @Model.TypedMetadata.BuyerCountry
Zip @Model.TypedMetadata.BuyerZip
} @if (Model.PosData.Count != 0) {

Product information

@if (!string.IsNullOrEmpty(Model.TypedMetadata.ItemCode)) { } @if (!string.IsNullOrEmpty(Model.TypedMetadata.ItemDesc)) { }
Item code @Model.TypedMetadata.ItemCode
Item Description @Model.TypedMetadata.ItemDesc
Price @Model.Fiat
Tax included @Model.TaxIncluded

Point of Sale Data

}

Invoice Summary

@if (Model.Deliveries.Count != 0) {

Webhooks

@foreach (var delivery in Model.Deliveries) { }
Status ID Type Url Date Action
@if (delivery.Success) { } else { } @delivery.Id @delivery.Type @delivery.PayloadUrl @delivery.Time.ToBrowserDate()
} @if ((Model.Refunds?.Count ?? 0) > 0) {

Refunds

@foreach (var refund in Model.Refunds) { var blob = refund.PullPaymentData.GetBlob(); }
Pull Payment Amount Date
@refund.PullPaymentData.Id @blob.Limit @blob.Currency @refund.PullPaymentData.StartDate.ToBrowserDate()
}

Events

@foreach (var evt in Model.Events) { }
Date Message
@evt.Timestamp.ToBrowserDate() @evt.Message