@using BTCPayServer.Services.Apps @using BTCPayServer.Abstractions.Models @using BTCPayServer.Views.Apps @using BTCPayServer.Abstractions.Extensions @using BTCPayServer.Services.Stores @model BTCPayServer.Plugins.PointOfSale.Models.UpdatePointOfSaleViewModel @{ ViewData.SetActivePage(AppsNavPages.Update, "Update Point of Sale", Model.Id); var checkoutFormOptions = CheckoutFormSelectList.WithSelected(Model.FormId); }
@foreach (var type in Enum.GetValues()) { }
Uses the store's default currency (@Model.StoreDefaultCurrency) if empty.

Checkout

Tips
Discounts
Not recommended for customer self-checkout.
Custom Payments

Additional Options

You can host point of sale buttons in an external website with the following code.

@if (Model.Example1 != null) { For anything with a custom amount
@Model.Example1
} @if (Model.Example2 != null) { For a specific item of your template
@Model.Example2
}

You can embed this POS via an iframe. @{ var iframe = $""; }
@iframe

A POST callback will be sent to the specified notificationUrl (for on-chain transactions when there are sufficient confirmations):

@Model.ExampleCallback

Never trust anything but id, ignore the other fields completely, an attacker can spoof those, they are present only for backward compatibility reason:

  • Send a GET request to https://btcpay.example.com/invoices/{invoiceId} with Content-Type: application/json; Authorization: Basic YourLegacyAPIkey", Legacy API key can be created with Access Tokens in Store settings
  • Verify that the orderId is from your backend, that the price is correct and that status is settled
  • You can then ship your order

@section PageHeadContent { } @section PageFootContent { }