Quickstart
From zero to first payment in about 10 minutes. This guide uses testnet so you can practice without spending real Bitcoin.
What you'll need
- A Stacks wallet (Leather or Xverse recommended)
- A small amount of testnet STX for transaction fees — free from a faucet
- A small amount of testnet sBTC — also free from a faucet
- 1
- 2
Get testnet tokens from the faucet
You need two things: STX for transaction fees, and sBTC to send as a payment.
- STX faucet: explorer.hiro.so/sandbox/faucet
- sBTC testnet faucet: platform.hiro.so/faucet
Paste your testnet address, wait a minute, and refresh your wallet. You should see a balance of a few STX and some sBTC.
- 3
Register as a merchant
Open the sBTC Pay dashboard and connect your wallet:
https://testnet.sbtc-pay.com/dashboardClick Connect Wallet, pick your wallet, and approve the connection. On first connect, the dashboard will prompt you to register as a merchant. Give yourself a merchant name and confirm the transaction.
The transaction takes about 30 seconds to confirm on testnet. When it's done, you'll land on the Dashboard Overview.
- 4
Create your first invoice
From the dashboard, go to Invoices → Create Invoice. Fill in:
- Amount: for testnet, try
1000sats (0.00001 sBTC) - Memo: a short description (e.g., "Test invoice #1")
- Token: sBTC
Confirm the transaction in your wallet. When it confirms, you'll see the invoice in your list with status Pending.
- Amount: for testnet, try
- 5
Pay the invoice yourself
Click the invoice to open its public payment page. Copy the URL — it looks like this:
https://testnet.sbtc-pay.com/pay/1Open that URL in a new tab (or a different browser). Click Pay with sBTC, approve the transaction in your wallet, and wait for confirmation.
Flip back to your dashboard. The invoice status will flip to Paid, and your revenue counter goes up.
- 6
Embed a Pay button on your site
From the dashboard, go to Widget Generator. Pick Direct, set an amount, and copy the generated embed code. It looks like this:
html<!-- Load the SDK once per page --> <script src="https://testnet.sbtc-pay.com/sbtcpay.js" async></script> <!-- Drop a Pay button anywhere --> <div data-sbtcpay="direct" data-sbtcpay-merchant="ST123..." data-sbtcpay-amount="10000"></div>Paste this into any HTML page. A styled Pay button appears; clicking it opens a modal where the customer connects a wallet and pays. The payment lands in your dashboard in real time.
You just shipped a payment integration.
Everything you did on testnet works the same way on mainnet — with real sBTC. The URLs change from testnet.sbtc-pay.com to sbtc-pay.com, and you'll connect a wallet that holds real testnet tokens.
Next steps
- Learn the full invoice feature set in Creating Invoices.
- Set up recurring billing in Subscriptions.
- Explore the three widget variants in Widget Overview.
- Understand what's happening under the hood in Architecture.