Bitcoin payments,
without the middleman.
Plug in your Electrum xpub, accept BTC from your customers, get signed webhooks. We watch the chain, you keep the keys. 1% per paid invoice, billed monthly in BTC.
No KYC. No card needed. Testnet sandbox included.
Built for sellers who want sovereignty without subscription rent
Stripe-grade DX. Bitcoin-grade sovereignty.
SatLane gives you the parts of a modern payment processor that actually help you ship (webhooks, idempotency, sandbox, dashboard) without asking you to give up custody of your funds.
Non-custodial by construction
We derive a fresh address from your xpub per invoice. Funds flow buyer → your wallet directly. We physically cannot hold your money.
Built like Stripe, for Bitcoin
Real REST API. Signed HMAC webhooks with exponential backoff. Stripe-compatible idempotency keys. Live + test environments.
One bill, in BTC
Fees accrue per paid invoice and consolidate into one monthly BTC invoice. No card on file, no surprise charges, no platform vendor-lock-in.
Hosted checkout or your own UI
Redirect buyers to our branded checkout (QR + live status) or fetch the invoice JSON and render whatever you want.
Payment links for non-developers
No website? Mint a shareable URL with a price, share it anywhere. Click → fresh invoice → paid. Same engine, no API needed.
Mainnet and testnet sandbox
New stores start in test mode. Mint sandbox invoices and simulate payments without spending a sat. Flip to live when you trust the flow.
How it works
From signup to first paid invoice in under 10 minutes if you've got an Electrum wallet handy.
- 1
Register your xpub
Paste your Electrum extended public key. We derive your first 5 addresses for you to verify against your wallet. Keys never leave your machine.
- 2
Mint an API key
Your server uses it to POST /v1/invoices. Test mode by default. Flip to live when you have a verified mainnet xpub.
- 3
Create an invoice
Pass the amount + a callback URL. We return a fresh BTC address, payment URI, and a hosted-checkout link. Buyer pays from any wallet.
- 4
Get a signed webhook
On payment, we POST `invoice.paid` to your endpoint with an HMAC-SHA256 signature. You verify, mark the order paid, ship.
Six lines from "no payments" to "paid orders".
One POST creates a fresh address. One webhook tells you it was paid. Same shape as Stripe. If you've integrated a payment processor before, you've already done this.
// 1. Create the invoice
const res = await fetch('https://api.satlane.com/v1/invoices', {
method: 'POST',
headers: {
'authorization': 'Bearer ' + process.env.SATLANE_API_KEY,
'content-type': 'application/json',
},
body: JSON.stringify({
amount: 49.99,
currency: 'USD',
order_ref: 'order_1234',
callback_url: 'https://yourshop.com/api/satlane/webhook',
}),
});
const { invoice } = await res.json();
// → invoice.address = "bc1q..."
// → invoice.amount_btc = "0.00072421"
// → invoice.hosted_checkout_url
// 2. Redirect the buyer
res.redirect(invoice.hosted_checkout_url);
// 3. Later, your webhook handler receives:
// POST /api/satlane/webhook
// X-SatLane-Signature: t=1715811600,v1=…
// { "event_type": "invoice.paid", "data": { "invoice": { ... } } }Why move?
Most BTC processors hold your funds and rent you access on a monthly subscription that only scales upward. SatLane never touches your money, and you only pay when buyers do.
| Feature | SatLane | Custodial competitors |
|---|---|---|
| Custody model | Non-custodial. Funds → your wallet. | Custodial. Provider holds, then forwards. |
| Pricing | 1% per paid invoice. Billed monthly in BTC. | Tiered subscription, plus per-tx fees. |
| KYC required? | No. | Often yes, depending on plan. |
| Hosted checkout | Yes. Brandable, QR, live status. | Yes. |
| Webhooks | HMAC-SHA256, retries with backoff, replay. | Varies. |
| Payment links (no-code) | Built in. | Sometimes. |
| API design | Stripe-flavored REST + idempotency keys. | Mixed. |
Start accepting Bitcoin in test mode today.
Sign up free, register a testnet xpub, mint a sandbox invoice, and simulate a payment end-to-end. No real money, no commitment.