Coinbase Commerce alternative for self-custody merchants (2026)
Coinbase shut down Coinbase Commerce for merchants outside the United States and Singapore on 31 March 2026, and its successor, Coinbase Business, holds your funds and centres on USDC. If you chose Commerce because it was self-custodial, here's how to keep that property — with 0% fees and no KYC — and what you give up.
What you had, what you get
| Coinbase Commerce (self-managed) | Coinbase Business | CryptoInvoice | |
|---|---|---|---|
| Custody | Yours (seed phrase) | Coinbase | Yours — payments go directly to your address |
| Fee | 1% | varies | 0%; optional $9/mo Pro |
| KYC | Coinbase account | Coinbase account + business verification | None |
| Availability | US & Singapore only now | Rolling out by region | Worldwide |
| Assets | BTC, ETH, USDC, … | USDC focus | ETH, USDC, USDT (mainnet), XRP, ADA |
| Hosted checkout, webhooks, API | Yes | Yes | Yes |
Migration in 15 minutes
- Export your Commerce history. Download all transactions (CSV) for your accounting before the portal becomes inaccessible. Move any remaining balance to your own wallet.
- Create a CryptoInvoice workspace at /app. Paste your Ethereum address (one address covers ETH, USDC and USDT) and, if you like, XRP and Cardano addresses. You get a secret key — that's your API key and your login. No email, no KYC.
- Replace your checkout links. Commerce "charges" map to CryptoInvoice invoices:
POST /api/invoiceswithamount,currency,asset,metadataandredirect_urlreturns a hosted checkout URL. Static "Pay with crypto" buttons become pay-page links. - Point your webhook. Commerce's
charge:confirmedbecomesinvoice.confirmed(andinvoice.paidfires earlier, on first sight). Verify the HMAC signature — examples in Node, Python and PHP. - Tell customers about networks. CryptoInvoice detects USDC/USDT on Ethereum mainnet only. If your customers paid on Base or Polygon via Commerce, say so on your checkout or accept XRP for cheap small payments.
Mapping the API
# Coinbase Commerce (old)
POST https://api.commerce.coinbase.com/charges
{"name":"Order 1042","pricing_type":"fixed_price","local_price":{"amount":"25.00","currency":"USD"},"metadata":{"order_id":1042}}
# CryptoInvoice (new)
POST https://cryptoinvoice.dev/api/invoices Authorization: Bearer sk_live_…
{"amount":"25.00","currency":"USD","asset":"USDC","memo":"Order 1042","metadata":{"order_id":1042},"redirect_url":"https://shop.example/thanks"}
# → invoice.url is the hosted checkout; invoice.status: pending → paid → confirmed
One difference: a Commerce charge accepted several currencies at once; a CryptoInvoice invoice is for one asset. Let the customer choose on your side (two buttons) or send them to your pay page, which offers every asset you've configured.
Why not just use Coinbase Business?
If you're in the US, it may be fine — it's convenient and integrated with Coinbase. But it's a custodial account: Coinbase holds the balance, applies its compliance rules, and can freeze or close accounts. Commerce merchants already learned what a product shutdown feels like. A non-custodial tool can't strand your funds, because it never has them.
FAQ
Can I keep accepting Bitcoin?
Not with CryptoInvoice. BTCPay Server (self-hosted, free) is the best self-custodial option for BTC and Lightning; many merchants run both.
Do I need to move my funds?
Only out of Commerce. CryptoInvoice doesn't hold anything — you keep using whatever wallet you like, including a hardware wallet.
Is there a WooCommerce plugin?
Not yet. Use payment links/buttons for simple stores or the API for custom checkouts; see the WordPress guide.
Start in 60 seconds
Create a workspace, paste your address, send your first payment link. Free for 50 invoices a month, no sign-up form, no KYC.
Open the dashboard API docsGuides: XRP · Cardano · Ethereum · USDC & USDT · WordPress · Shopify · Wix · Squarespace · Webflow · Compare