Accept BTC, USDC, USDT & EURC in your store.
Without ever touching crypto custody.

Price in your own currency — any of 165 world currencies. Your customer picks what to pay with, scans one QR code, and the money goes straight to your wallet — send21 never holds a cent. One integration covers all three ways your customers pay: AI agents, webshops, and payment devices at the counter.

One API, three ways to get paid

Flow diagram: an AI agent reads a machine-readable checkout, the operator's wallet signs, the shop is paid on-chain and its backend gets a signed webhook

Enable AI agents

Agentic commerce is here — customers increasingly send an AI agent to research, order, and pay. Every send21 checkout is machine-readable (structured JSON, standard payment URIs, /llms.txt, OpenAPI, and a native MCP server at send21.io/mcp), so an agent can complete a purchase in your shop end to end and pay from its operator's own wallet. No stored cards, no chargebacks. How it works.

Flow diagram: a webshop cart calls the API, the hosted pay page shows a QR, the customer's phone pays at a locked rate straight to the merchant's address, and an HMAC-signed webhook confirms the order

Enable crypto in your webshop

One API call at checkout returns a hosted pay page and QR. Your customer pays the exact fiat price you quoted — in BTC, USDC, USDT, or EURC at a locked rate — straight to your address. The HMAC-signed webhook carries your order id, the amount, and the conversion rate, so orders reconcile themselves.

Flow diagram: a point-of-sale terminal shows a QR for the basket total, the customer pays from their own wallet to the merchant wallet with no card rails, and the confirmation webhook closes the sale on the device

Enable crypto on payment devices

Turn any terminal, tablet, or kiosk into a crypto point of sale: the device creates a payment request for the basket total and shows the QR; the customer scans and pays from their own wallet. The confirmation webhook closes the sale on the device — no card rails, no acquirer fees, funds land directly in your wallet.

How a checkout works

  1. Create a payment request — one API call or a click in the dashboard

    Set the price in any of the 165 supported world currencies (USD, EUR, SEK, NGN, VND, …) and list which currencies you accept, each with your own receiving address. You get back a hosted pay link and QR code.

    curl -X POST https://send21.io/api/v1/payment-requests \
      -H "Authorization: Bearer s21_yourkey" \
      -H "Content-Type: application/json" \
      -d '{
        "fiatCurrency": "EUR",
        "fiatAmount": 49.90,
        "orderId": "shop-order-1042",
        "memo": "Order #1042 — Blue hoodie",
        "options": [
          { "currency": "Btc",  "network": "Mainnet",  "address": "bc1q..." },
          { "currency": "Usdc", "network": "Solana",   "address": "5Gv7..." },
          { "currency": "Usdt", "network": "Ethereum", "address": "0xAb..." }
        ]
      }'
  2. Show the customer the pay page or QR

    Redirect to the hosted page, embed the link in an invoice, or show the QR at the counter. The customer picks BTC, USDC, USDT, or EURC — the exchange rate locks the moment they choose, so your price is guaranteed.

  3. Customer scans and pays from their own wallet

    One standard QR (BIP-21 / Solana Pay / EIP-681) — works with ordinary wallets, no PSBT knowledge needed. Funds move directly from the customer's wallet to your address.

  4. Get a webhook with everything your books need

    When the payment confirms, the signed webhook tells you what was sent, what it was worth in your currency, and the exact conversion rate — plus your own order id.

    {
      "event": "draft.confirmed",
      "data": {
        "draftId": "7d21…",
        "status": "Confirmed",
        "txId": "3QzV…",
        "confirmations": 1,
        "sentCurrency": "USDC",
        "network": "Solana",
        "sentAmount": "53.870000",
        "fiatCurrency": "EUR",
        "fiatAmount": 49.90,
        "conversionRate": 0.9263,
        "rateSource": "coinbase",
        "orderId": "shop-order-1042"
      }
    }

Using Shopify? There's a ready-made integration

The send21 Shopify app adds crypto payments to your store without touching your theme's checkout code: the customer picks “Crypto (send21)” at checkout, receives the pay link, pays from their own wallet — and the app marks the Shopify order paid automatically when the payment confirms on-chain. Your order confirmation email carries the pay link; reconciliation runs on your order ids.

  1. Create a send21 API key and webhook

    In your send21 account, create an API key with drafts:read + drafts:write, save your receiving addresses in the address book (“My own — I receive here”), and add a webhook for draft.confirmed pointing at the app.

  2. Install the app on your store

    Install the send21 app, then approve the requested order permissions (read_orders, write_orders) — the app subscribes to new orders automatically.

  3. Add the manual payment method

    In Shopify admin: Settings → Payments → Manual payment methods → create “Crypto (send21)”, and add the pay link snippet to your order confirmation email. That's it — orders paid in BTC, USDC, USDT, or EURC settle straight to your wallet and flip to paid on their own.

Setup details and the email snippet: [email protected]. Refunds are out of band (crypto is push-only): refund from your own wallet, then refund the order in Shopify admin. Other platforms (WooCommerce, custom carts) integrate with the same one-call payment-request API.

Why retailers pick send21

Zero custody, zero float

Customers pay your addresses directly. There is no balance at send21 to withdraw, freeze, or lose.

Price in fiat, get paid in crypto

You quote 49.90 — the customer pays exactly that at a locked, recorded rate with full provenance.

One-scan checkout

Single-output payments encode into one QR that every mainstream wallet understands.

Accounting-ready webhooks

Sent currency, sent amount, fiat value, conversion rate, and your order id — HMAC-signed.

Low, transparent fees

Tiered from 0.49% on small payments down to 0.01% — billed to you as an accrued fee, never deducted from the customer's payment. Full schedule.

Settle fees on your terms

Pay your accrued balance with one payment in BTC, USDC, USDT, or EURC — one click in the dashboard, or one API call (POST /fees/accrued/settle) that returns a ready-to-pay QR. Your books see a single fee payment, not per-sale deductions.

AI agents can buy from you

The whole checkout is machine-readable — an AI agent shopping for its owner can complete a purchase in your shop end to end. How it works.

Questions about integrating your shop or agent? Write to [email protected].

Ready for customers who send an AI agent

Agentic commerce is here: people increasingly let AI agents research, order, and pay on their behalf. Card checkouts break for agents — sharing card numbers with an agent is a liability, and form-filling is fragile. A send21 checkout is different: it is an API-first, machine-readable payment instruction that an agent can read, verify, and pay from its operator's own wallet — without your shop or the agent ever touching a card number or a private key it shouldn't have.

Machine-readable checkout

Every payment request returns structured JSON and standard payment URIs (BIP-21 / Solana Pay / EIP-681) — the same data behind the human pay page, parseable by any agent framework.

Discoverable by agents

/llms.txt and an OpenAPI spec describe the full flow in the format AI agents look for — an agent landing on your checkout knows exactly what to do.

Safe for everyone involved

The agent pays from a wallet its operator controls; you receive funds directly at your address. No stored cards, no credentials to leak, no chargebacks — the confirmation is on-chain and final.

Reconciliation built in

Your orderId travels through the whole flow and comes back in the HMAC-signed confirmation webhook with the exact amount and conversion rate — agent purchases book themselves like any other order.

agent places order → your backend creates a payment request → agent reads the machine-readable options → pays from its operator's wallet → signed webhook confirms with your order id

Nothing extra to build: the same payment request that renders a QR for a human is the one an agent consumes. Integrating your shop today makes it agent-ready by default.

Person-to-person requests too

The same flow works between individuals: create a request for what a friend owes you, send them the link, and they pay in whichever offered currency suits them. You are always the receiver; they always sign in their own wallet.