How to accept crypto payments on Shopify (manual payment method + pay button)
Shopify only lets approved gateways plug into checkout, and most crypto gateways charge a percentage and require KYC. There's a simpler route that keeps you self-custodial: a manual payment method at checkout plus a CryptoInvoice payment link. Orders land as "payment pending" until the chain confirms.
Step 1 — create the manual payment method
- Shopify admin → Settings → Payments → scroll to Manual payment methods → Create custom payment method.
- Name:
Pay with crypto (XRP, ADA, ETH, USDC). - Additional details (shown at checkout):
After placing your order you'll receive a payment link. Your order ships once the payment confirms on-chain (usually a few minutes). - Payment instructions (shown on the thank-you page + order email):
Pay at https://cryptoinvoice.dev/pay/yourstore — enter your order number as the note and the order total as the amount.
Step 2 — confirm and fulfil
The order appears in Shopify with Payment pending. When your CryptoInvoice dashboard shows the payment (the customer's note carries the order number), open the order and click Mark as paid, then fulfil. For exact amounts, create the invoice yourself from the dashboard with the order total and email the link — it takes seconds and avoids any rounding questions.
Step 3 (optional) — a pay button in your theme
For deposits, services or tips outside the cart: Online Store → Themes → Customize → add a Custom Liquid (or Custom HTML) section and paste the button code below. Shopify Flow or a small app can also call the API to create an invoice per order and attach the link to the order note — ask your developer, or use the webhook to mark orders paid automatically.
Honest limitations
- The customer must type the amount/note on the pay page unless you send them a per-order invoice link. Shopify doesn't let manual methods generate dynamic links.
- Shopify Payments rules still apply to your store; a manual method doesn't change them.
- USDC/USDT: Ethereum mainnet only.
The button code (works on every platform)
From the dashboard's Pay page & buttons tab you get a link like https://cryptoinvoice.dev/pay/yourname?amount=49¤cy=USD&memo=Order. Wrap it in any button:
<a href="https://cryptoinvoice.dev/pay/yourname?amount=49¤cy=USD&memo=Order%20123"
target="_blank" rel="noopener"
style="display:inline-block;padding:12px 20px;border-radius:10px;background:#0f172a;color:#5eead4;font:600 15px system-ui;text-decoration:none">
Pay with crypto (XRP / ADA / ETH / USDC)
</a>
Leave out amount to let the customer type one (tips, deposits), or add &asset=XRP to lock the asset. Every payment shows up in your dashboard with the memo, and an optional webhook can update your own systems.
Set it up in 60 seconds
Create a workspace, paste your wallet address, copy the button. Free for 50 invoices a month, no sign-up form, no KYC, and the money never passes through us.
Open the dashboard API docsOther platforms: WordPress & WooCommerce · Shopify · Wix · Squarespace · Webflow · by coin: XRP · Cardano · Ethereum · USDC