Accept stablecoins in an afternoon
HashPay drops a crypto checkout onto your site and settles payments straight into your own wallet — no custody, no chargebacks, no merchant account. This guide takes you from zero to a live, paying integration, one easy step at a time.
What you're building
By the end of this guide a customer on your site will click a button, see a clean checkout overlay, pay in USDC or USDT on the chain of their choice, and watch it confirm — while the money lands directly in a wallet only you control. Your server gets a signed webhook the moment it's confirmed, so you can unlock the order, send the license, or upgrade the plan.
The whole flow is just five pieces of setup and one short webhook handler:
<!-- 1. Load the widget once, anywhere on the page -->
<script src="https://cdn.hashpay.dev/embed.js" data-pk="pk_live_your_key"></script>
<!-- 2. Any button that opens checkout for a price you defined -->
<button data-hashpay-price="price_123">Pay with crypto</button>
That's the customer-facing half — two lines. The other half is telling your backend when a payment lands, which we build together at the very end.
The six steps
Each step is short and mostly point-and-click in the dashboard. We've ordered them so you're always building on something that already works — by the time you write a single line of code, your account, wallet and checkout are already live.
Create your account
Sign in with Google, land in the dashboard, and start in test mode for free.
Add your domain
Tell HashPay which site will show the checkout. It goes live immediately.
Add your wallets
Paste the wallet addresses where you want to be paid. This is where the money goes.
Add the checkout widget
Create a price, grab your key, and paste one <script> tag onto your page.
Add a pay button
One button attribute opens checkout. Test the full flow without spending a cent.
Receive webhooks
The finishing touch: a short endpoint that hears "paid" and fulfils the order.
You can do the entire thing in test mode first. Test keys settle simulated payments — you'll click your own button, mark it paid, and watch a real webhook arrive, all without touching a blockchain or spending a cent. Flip to live only when you're happy.
How HashPay works, in 30 seconds
It helps to know what's happening under the hood — though you never have to think about it again after this.
- You define prices, not addresses. A Price is just "this much USD." The buyer's browser never sets the amount, so buyer-driven checkout stays safe.
- The buyer picks a chain and token in the widget. HashPay hands them your wallet address and the exact amount to send.
- HashPay watches the chain and matches the incoming transfer to that exact amount. When it's confirmed, your wallet already has the money — HashPay only ever observed it.
- Your webhook fires. A signed
payment.confirmedevent hits your server so you can fulfil the order.
Because settlement is on-chain and straight to your wallet, HashPay is non-custodial: there's no balance to withdraw, no payout schedule, and nothing for us to freeze. Stablecoins are treated 1:1 with USD, so a $29.00 price means the buyer pays 29.00 USDC or USDT.
New to HashPay? Just follow the steps in order — each page ends with a button to the next one. Already integrated and need exact field names? Jump to the API & webhook reference.