@using BTCPayServer.Services.Apps @using BTCPayServer.Abstractions.Models @addTagHelper *, BundlerMinifier.TagHelpers @model UpdatePointOfSaleViewModel @{ ViewData.SetActivePage(AppsNavPages.Update, "Update Point of Sale", Model.Id); }
Uses the store's default currency (@Model.StoreDefaultCurrency) if empty.

Appearance

Choose the point of sale style for your customers.

Discounts

Not recommended for customer self-checkout.

Custom Payments

Tips

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 { }