No chargebacks
A Lightning payment is final once it settles. There is no card to dispute and no reserve held back.
FOR POS COMPANIES
Give your merchants a Lightning payment option inside the POS they already use. Your backend uses two endpoints: one requests an invoice, the other tells you when it's paid. You keep the sale, the order and the customer; the bitcoin goes straight to the merchant's wallet.
Or email hello@satsrail.com. For iOS, Android, desktop and web POS software. No new hardware: it runs on your existing screen and internet connection. Ready to build? Read the integration guide. Setting your merchants up for them? See the reseller program.
Sale #1042
$25.00
Choose a payment method
WHY ADD LIGHTNING
A Lightning payment is final once it settles. There is no card to dispute and no reserve held back.
The customer approves in their own wallet and the merchant's wallet receives it moments later, not days.
Merchants pay SatsRail a flat monthly plan, free up to — a month in bitcoin payments, and 0% per payment. See pricing.
Funds go straight to each merchant's wallet, so your company never touches the money. There is no card network or acquirer to integrate, and SatsRail charges your company nothing to build it.
THE INTEGRATION
paid is true, then close the sale and print your receipt. Optional payment.received webhooks can notify your backend too.# 1. Request a payment for the sale total POST /api/v1/m/payment_requests { "payment_request": { "amount_cents": 2500, "payment_method": "lightning" } } → 201 { "id": "4e14…", "payment_request": "lnbc…" } # 2. Check it, then close the sale GET /api/v1/m/invoices/4e14…/status → 200 { "status": "paid", "paid": true }
Idempotency-Key: a retry with the same key gets the first response back for 24 hours. Create one payment per sale at a time.payment.received webhooks tell you, or check about every 30 seconds: a QR left open for 15 minutes and checked every 10 seconds would use 90 of the hour's — requests.AT THE COUNTER
One more payment button in the POS they already use. No new device, and nothing for the cashier to install.
Any Lightning wallet, or an exchange app that pays Lightning invoices, scans the same QR. The customer approves the amount on their phone.
As soon as the payment confirms. The bitcoin is already in the merchant's wallet: no batch to settle and no payout to wait for.
The bitcoin goes directly to the merchant. SatsRail never holds the funds.
Your POS stays the source of truth: catalog, basket, tax, stock, customer details and receipts stay in your system. There is no catalog migration or basket sync; SatsRail keeps only the payment record. On-chain is in early access through the API; ask us for its notes.
WHAT THE INTEGRATION INVOLVES
This is a custom software integration. It requires access to your POS code or a supported extension point.
Payments settle in bitcoin, to the merchant's Lightning wallet or, for on-chain (early access), to fresh addresses from the merchant's own watch-only key. Bank conversion, if needed, is handled separately through an exchange. See wallet setup options
Free up to — a month in bitcoin payments, then Starter at — a month with no cap, or Pro at — (coming soon); prices by business category. Your company never sits in the money flow. Wallet, network and conversion costs may apply separately.
BEFORE YOU BUILD
Nothing. A SatsRail account and the API are free. Testing the paid state takes a small real payment, which lands in the merchant's own wallet. Each merchant pays its own SatsRail plan, free up to — a month in bitcoin payments, with 0% per payment.
Only to go above — a month in bitcoin payments. The free plan needs no business verification; paid plans require it (KYB).
Each merchant opens a SatsRail account, connects a Lightning wallet by Lightning Address, and creates a secret API key that can create payment requests and read invoice status. Your backend stores that key for the merchant and makes the calls.
The API side is small: two endpoints on your backend. Most of the work is your payment screen and the edge cases, such as an invoice that expires or a terminal that reconnects. The integration guide lists every state to test before going live.
No. Your merchants keep using your POS. SatsRail provides the payment connection behind the Lightning option you add. (Merchants without a POS can use SatsRail's browser POS.)
Yes, if your app can talk to your backend and display a QR code. Your backend holds the merchant's secret API key and calls SatsRail; never put the key in the app. The same approach works for iOS, desktop and web POS software.
Only the free plan has a monthly cap. Once a merchant on it passes — in a month, new payment requests get HTTP 429 with the error volume_limit_exceeded until it chooses a paid plan. It is not the rate limit, which sends a Retry-After header: retrying won't clear it before the month ends, so tell the cashier the merchant's SatsRail plan needs an upgrade. Status checks on open invoices (GET /api/v1/m/invoices/:id/status) keep working, and SatsRail emails the merchant at 80% and 100% of the cap. Paid plans have no cap.
Payment requests are always live, whichever API key you use: each one returns a real invoice from the merchant's wallet. So test the whole flow, paid state included, with a small real payment; it lands in the merchant's own wallet. For building screens alone, the orders API with a test key (sk_test_) returns simulated invoices, which are never paid. Either way, the merchant account must be set up first, with a Lightning wallet connected and the agreements accepted.
No. Send the final amount and keep the link between the payment and your sale in your own system. SatsRail creates a minimal internal order for the payment record; it does not need your basket or customer details.
SatsRail keeps monitoring the invoice. When the terminal reconnects, your system checks the saved invoice ID and updates the sale. Your integration must handle this recovery before showing a final result.
Yes, as a SatsRail reseller. From your reseller area, your team creates each merchant's account (its owner gets an invitation), follows its setup and KYB, and answers its support tickets first. Each merchant still connects its own wallet and subscribes to SatsRail directly, so you never sit in the money flow. See the reseller program.
Yes, the way this page describes: each merchant opens its own SatsRail account, accepts the Terms and subscribes directly, and your backend calls the API with that merchant's key. What the Terms (section 13.3) don't allow without a separate agreement is reselling or sublicensing SatsRail itself, for example selling SatsRail access inside your own plans. For a different arrangement, .
Yes. Lightning is an additional payment method in your POS. Customers who choose it need bitcoin in a Lightning-compatible wallet.
Yes, in early access, through the API (payment_method: "onchain"); its notes aren't in the public reference yet, so . Your integration must show the address or QR code and a "payment seen" state while the payment waits for confirmation. On-chain has no test mode: it needs a live key. The SatsRail POS app itself is Lightning only.
LET'S LOOK AT YOUR POS
Tell us what your POS runs on and how your checkout works. We'll help you map the integration and reply within 24 hours, or email hello@satsrail.com.