How to Accept Crypto Payments on Your Website (2026): The Non-Custodial Way

·8 min read

A practical guide to accepting crypto payments — hosted checkout, payment links, plugins, or API — where funds go straight to your own wallet and nobody can freeze them.

Contents
  1. 1The one decision that matters: custodial or non-custodial
  2. 2What it actually costs
  3. 3The four ways to integrate (pick one, or mix)
  4. 4The detail most gateways get wrong: customers who pay from exchanges
  5. 5Speed: what "0-conf detection" means for your checkout
  6. 6Choosing chains and tokens
  7. 7Do you need KYC to start?
  8. 8What about refunds and chargebacks?
  9. 9A 15-minute start, concretely
  10. 10FAQ

The short answer: you can accept crypto payments in about 15 minutes with one API call, a payment link, or a WooCommerce/Shopify plugin — and in 2026 you should insist on doing it non-custodially, meaning every payment settles directly into a wallet only you control. No platform balance, no withdrawal queue, no one who can freeze your money. This guide walks through how that works, what it costs, and the four integration paths, using real code. (Reading and doing aren't exclusive: the sandbox is free while you scroll.)

The one decision that matters: custodial or non-custodial

Every crypto payment provider falls into one of two categories, and most merchants only discover the difference when something goes wrong.

Custodial gateways (BitPay, NOWPayments, Coinbase Commerce and most others) receive your customer's payment into their wallets, credit an account balance, and let you withdraw later. That model gives them real capabilities — fiat conversion, for one — but it also means your revenue sits in someone else's custody. Accounts get reviewed. Withdrawals get delayed. Terms change. If you've read a "my payout has been frozen for three weeks" thread on Reddit, this is where it came from.

Non-custodial gateways never touch the money. The customer pays to an address, and the settlement rules — who receives what — are enforced on-chain, in the same transaction. The platform's job shrinks to detection, notification, and bookkeeping: it tells your server "order #1042 is paid" and the money is already in your wallet.

Finality is built entirely in the second category, with one property worth spelling out: the settlement destination is welded into each payment address at creation. Changing where funds go would produce a different address. That's not a policy promise — it's address derivation. Nobody, including us, can redirect a payment.

What it actually costs

One number: 1% per successful payment, carved out on-chain during settlement — you always receive the net amount. There's no monthly fee, no setup fee, no minimum, and nothing charged on payments that never settle. Compare that with typical custodial pricing (0.5–1% plus withdrawal fees, conversion spreads, and in some cases monthly plans) and with card processing at 2.9% + $0.30.

Because settlement happens per-payment on-chain, there is also no "payout schedule". The phrase doesn't apply. Money lands as customers pay.

The four ways to integrate (pick one, or mix)

1. Payment links — no website needed (~2 minutes)

Generate a link in the dashboard, send it by chat, email, or invoice, or print its QR code. Each link produces a dedicated payment address tied to your order reference, so reconciliation is automatic. This is the fastest path for freelancers, OTC sales, and invoice-based businesses.

2. Plugins — WooCommerce, WordPress, Shopify (~10 minutes)

Install, paste two API keys, done. Your checkout gains a crypto option with a hosted payment page; your store receives the same "paid" signal it gets from any other method. No code involved.

3. Hosted checkout via API (~15 minutes)

One call from your backend:

bash
curl -X POST https://finality.money/v1/intents \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "chain": "solana",
    "token": "USDC",
    "amount": "49.00",
    "merchant_order_id": "ORD-1042"
  }'

You get back a dedicated payment address and a hosted checkout URL. When the payment lands on-chain, a signed webhook (payment.settled) hits your server, and you ship the order. Two touch points, total. (Full reference and a live test console are in the API explorer.)

4. Embedded widget

For teams that want checkout inside their own page rather than a redirect — same non-custodial rails, your UI.

The detail most gateways get wrong: customers who pay from exchanges

Here's a real-world fact that Web3-native checkouts ignore: a large share of paying customers keep their crypto on an exchange, not in a browser wallet. Wallet-connect-only checkout locks those customers out.

Because each Finality payment has its own dedicated address, a customer can simply withdraw from Binance or Coinbase straight to the payment address — no wallet extension, no contract interaction, no signature. Our nodes detect the deposit the moment it lands in a block, match the exact amount to your order, and settle with the on-chain fee split in the same flow. A QR code (Solana Pay or EIP-681 format) makes the same path work from any mobile wallet.

This "just send a transfer" mode sounds mundane. It's the difference between accepting crypto from everyone and accepting it only from people with a configured browser wallet.

Speed: what "0-conf detection" means for your checkout

Finality runs its own full nodes on every supported chain. Payments are detected the moment they enter a block — sub-second on Solana, a few seconds on EVM chains — and the customer's checkout page flips to "paid" without waiting for extra confirmations. Detection speed is what your customer feels; settlement finality is what your books rely on. You get both, and the webhook you fulfill against (payment.settled) only fires when the money has actually moved to your wallet.

Choosing chains and tokens

You don't have to pick one. Finality supports five chains today — Solana, Ethereum, Base, BNB Chain, and Robinhood Chain — with the major stablecoins (USDC, USDT, and chain-native equivalents) plus native coins. Practical guidance:

Do you need KYC to start?

To start integrating and receiving payments: no. You create an account, get API keys, and payments settle to your own wallet — there is no custodian holding client funds who would be required to verify you first. That's a structural consequence of non-custody, not a regulatory loophole: your obligations as a business (taxes, local licensing for your industry) are unchanged, and they're yours regardless of how you accept payment. What disappears is the platform's gatekeeping between you and your own revenue.

What about refunds and chargebacks?

Crypto payments are final — there is no chargeback mechanism, which removes an entire category of fraud that card merchants price into everything they sell. Refunds still exist, but they become something you do (send funds back from your wallet) rather than something a platform does on your behalf — because the platform never has your money. For most merchants this trade — no chargebacks, self-executed refunds — is strongly positive; it's also worth stating honestly before you switch.

A 15-minute start, concretely

  1. 1Create an account at finality.money — no KYC to start
  2. 2Add your wallet address per chain in Settings (this is where money will land)
  3. 3Grab a sk_test_ sandbox key, create a test payment, click "simulate payment" on the hosted checkout, and watch the webhook arrive — zero real money involved
  4. 4Swap in your sk_live_ key, or install the WooCommerce/Shopify plugin instead

The developer docs cover webhook signature verification, the full event list, and per-chain details; the API explorer lets you fire real requests from the browser.

FAQ

Which cryptocurrencies should I accept first?

Stablecoins (USDC/USDT) on Solana and Base cover most real purchase intent with minimal fees. Add native coins if your audience holds them.

Can customers pay without a crypto wallet extension?

Yes — any exchange withdrawal or mobile wallet transfer to the payment address works. This is exactly what dedicated per-payment addresses enable.

What happens if a customer underpays?

The order stays pending and reports the remaining amount; the customer can top up to the same address. You're never asked to ship against a partial payment.

Is a non-custodial gateway harder to integrate?

No — the API surface looks like any modern payment API (create a payment, receive a webhook). The difference is where the money goes, not how the code reads.

How to accept crypto payments as a business, step by step?

Create an account, add your wallet address per chain, rehearse in sandbox, go live via link, plugin, or API — the 15-minute walkthrough above is the whole list. Accepting cryptocurrency payments as a business doesn't require a crypto department; it requires an afternoon.

How to accept crypto payments on a website specifically?

Three paths: a hosted checkout via one API call, a WooCommerce/Shopify plugin, or payment links if you'd rather not touch the site at all. All three settle to the same place — your wallet.

Can a small business accept cryptocurrency?

Especially a small business — the economics flip hardest in your favor: no monthly fee, no fixed per-transaction fee, no hardware, and a $0 month costs $0.

What's the best way to accept crypto payments — link, plugin, or API?

Match it to your shape: no website means links; store platform means plugin; custom checkout means API. They're the same machine underneath, so you can start with links today and move to the API later without re-onboarding.

How do I take crypto payments in person?

A QR code is the terminal — printed for fixed prices, generated per-order for variable ones. Your phone shows the confirmation; the counter workflow is here.

Is accepting crypto payments safe for the merchant?

Settled payments are final and land in a wallet only you control — the classic merchant risks (chargebacks, frozen accounts, payout failure) structurally don't exist. The new responsibility is guarding your own wallet keys and double-checking your payout address.

Do I need a license to accept crypto payments?

For your own goods into your own wallet: being paid isn't money transmission — the sober compliance map is here. Taxes and industry licensing apply exactly as always.

Can customers pay without crypto knowledge or wallets?

Yes — every payment gets a dedicated address, so a plain exchange withdrawal is a complete payment. If your customer can use an exchange's withdraw screen, they can pay you.

Related reading