Non-custodial crypto checkout

Get paid in crypto.
Keep every coin.

TapCoin Pay gives your business a Pay with Crypto button, payment links, invoices and a WooCommerce gateway. Payments go straight from your customer's wallet to yours. We never touch the money.

Start free
Non-custodial by design XRP, BTC, ETH, USDC Live in 5 minutes Built on Cloudflare
Atlas Pro Consulting · PaymentsExample data
Today
$1,240.00
This month
$18,905.50
Fees paid
$0.00
  • XRP
    Consulting retainer
    100.806452 XRP · tag 482913
    $250.00
    Detected
  • USDC
    Workshop deposit
    600.00 USDC · Ethereum
    $600.00
    Confirmed
  • BTC
    Invoice #1043
    0.00635298 BTC · bc1q…7m2q
    $390.00
    Confirmed
  • ETH
    Payment link: /deposit
    0.00000000 ETH · 0xA7c3…f1A2
    $0.00
    Awaiting
Hosted checkout

This is what your customer sees.

Pick an asset, see the exact amount, scan or copy, done. Try it below. Nothing here touches a real network.

The exact amount, locked for 15 minutes

We quote the crypto amount from a live price feed at checkout time and hold it while the customer pays. The customer sends exactly that figure. No rounding, no surprises.

Straight to your wallet address

The address on the page is yours. XRP payments carry a destination tag; BTC and ETH payments are matched by unique address or unique amount. Funds never pass through TapCoin Pay.

Confirmed by the chain, not by us

TapCoin Pay watches the ledger, verifies the transaction against the checkout, and then updates your dashboard, emails the receipt and fires your webhook.

Demo rates: XRP $2.48, BTC $61,420, ETH $2,910, USDC $1.00. The QR is a placeholder pattern and does not encode a payment.

How it works

Three steps. No custody, ever.

TapCoin Pay sits beside the transaction, never inside it. Your wallets, your keys, your money.

1

Add your wallet addresses

Paste a receiving address for each asset you accept. For Bitcoin you can add an xpub so every payment gets a fresh address. Addresses only, never keys.

2

Create a link, button or invoice

Set a price in your currency and pick which assets to accept. Share the link, drop the button on your site, or email the invoice.

3

Customer pays, chain confirms, dashboard updates

The customer pays from any wallet. TapCoin Pay monitors the chain, verifies the match, and notifies you and the customer.

Ways to get paid

Every surface your customers already use.

Everything below is included in Pro. Every one of them lands in your own wallet.

Pay buttons

Three lines of HTML. Opens a checkout in a modal on desktop, a new tab on mobile.

<!-- paste anywhere -->
<script src="https://tapcoinpay.com/js/tapcoin.js"></script>
<button data-tapcoin-button="btn_8f2k1q">Pay with Crypto</button>

Payment links

A URL you can text, email or put in a bio. Fixed amount, or let the customer enter one.

Invoices

Line items, due dates, customer records, email delivery, a paid stamp when the chain confirms. Void or resend any time.

QR and in-person

Type an amount on your phone, show the QR, the customer scans. Works at a counter, a market stall or a service call.

WooCommerce and WordPress

Install the plugin, paste your API key, and Pay with Crypto appears at checkout. Orders update automatically on confirmation.

REST API and webhooks

Create checkouts from your own stack. Signed webhooks tell you when a payment is detected and confirmed.

POST /v1/checkouts
{ "amount": 25000, "currency": "USD" }

// 201
{ "id": "co_3kD9…", "status": "created",
  "checkout_url": "https://tapcoinpay.com/pay/co_3kD9…" }
Why non-custodial matters

Custody is where the risk lives. We opted out.

Most crypto processors take your customer's payment, hold it, and pay you later. That model is the source of every frozen balance, every settlement delay and every percentage fee.

No frozen funds

We cannot freeze what we do not hold. There is no TapCoin Pay balance, no withdrawal queue and no compliance hold on money that is already in your wallet.

No settlement delays

The chain settles. You already have it. There is no T+2, no payout schedule and no minimum balance before you can move your own funds.

No percentage skim

We charge a flat subscription because we never touch the transaction. A $50 sale and a $50,000 sale cost you the same: nothing extra.

TapCoin Pay is payment orchestration and monitoring software. It is not a bank, exchange, wallet or money transmitter. You keep your own keys and you are responsible for your own wallets, taxes and compliance.
Pricing

Flat $19 a month. 0% transaction fees. Ever.

Start free with 20 payments a month. Upgrade when you need invoices, buttons, WooCommerce or the API.

Free
$0
forever

Try it with real payments.

  • 20 payments a month
  • Payment links and QR
  • Dashboard
  • 1 wallet per asset
Start free
Pro Most popular
$19/mo
or $190 a year (2 months free)

Everything a business needs to get paid.

  • Unlimited payments
  • Invoices and pay buttons
  • WooCommerce plugin
  • API and webhooks
  • Email receipts
  • Custom branding
  • CSV export
Start Pro
Business
$59/mo
or $590 a year

For teams and multiple storefronts.

  • Everything in Pro
  • 5 team seats
  • Multiple stores
  • Custom checkout domain
  • Priority support
  • Advanced reports
Start Business
Enterprise
Talk to us
volume, SLAs, dedicated support

Custom terms for high-volume and regulated businesses.

  • Everything in Business
  • Unlimited seats
  • SLA and onboarding
  • Security review
Contact sales

On $10,000 a month: 1% processors take $100. BitPay about $210. TapCoin Pay: $19.

The gap gets wider the more you sell. TapCoin Pay costs the same at $1,000 a month and at $1,000,000.

$100
1% processor
$210
BitPay entry
$19
TapCoin Pay
ProviderPer transactionCustodyNotes
TapCoin Pay0%, flat $19/mo (Pro)Non-custodialXRP, BTC, ETH, USDC straight to your wallet
CoinGate1%CustodialSettles to you on their schedule
BitPay2% + $0.25 (entry tier)CustodialLower rates need higher volume tiers
Coinbase Business1%CustodialUS only
NOWPayments1% to 1.5%CustodialNot available in the US
BTCPay Server0%Non-custodialSelf-hosted server required; you run and maintain it

Competitor pricing as published September 2026; verify on their sites. Network fees are paid by the sender on every provider, including TapCoin Pay.

Full pricing and calculator

Developers

One request to create a checkout. One webhook to close the loop.

A small, predictable REST API with Stripe-style objects. Idempotency keys, signed webhooks, test mode.

curl https://tapcoinpay.com/v1/checkouts \
  -H "Authorization: Bearer tcp_live_…" \
  -H "Idempotency-Key: order_1043" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25000,
    "currency": "USD",
    "description": "Consulting retainer",
    "assets": ["XRP", "USDC"],
    "redirect_url": "https://atlaspro.co/thanks",
    "metadata": { "order_id": "1043" }
  }'

Amounts are integer minor units: 25000 is $250.00.

Verify a webhook

Every delivery carries TapCoin-Signature: t=<unix>,v1=<hex>. Sign "<t>.<rawBody>" with your endpoint secret and compare.

import { createHmac, timingSafeEqual } from "node:crypto";

function verify(rawBody, header, secret) {
  const { t, v1 } = Object.fromEntries(
    header.split(",").map(p => p.split("=")));
  const expected = createHmac("sha256", secret)
    .update(`${t}.${rawBody}`).digest("hex");
  return Math.abs(Date.now()/1000 - t) < 300
    && timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}

Events

  • payment.created, payment.detected, payment.confirmed
  • payment.underpaid, payment.expired
  • invoice.created, invoice.paid, invoice.expired
Read the docs
FAQ

Straight answers.

Do you hold my crypto?

No. Never, not even for a second. Customers pay directly to the wallet address you added. TapCoin Pay only reads public blockchain data to confirm that a matching payment arrived. We do not store, ask for or derive private keys.

Which coins do you support?

XRP on the XRP Ledger, Bitcoin, Ether on Ethereum mainnet and USDC as an ERC-20 on Ethereum mainnet. More assets are added when we can monitor them reliably, not before.

What if a customer underpays?

The checkout shows the exact amount, so this is rare. When it happens, the checkout is marked underpaid, you get a webhook and a dashboard flag, and the customer sees the outstanding balance with the same address. The funds that did arrive are already in your wallet; you decide whether to accept the partial payment or ask for the rest.

Do I need to run a node?

No. TapCoin Pay does the monitoring. You paste a receiving address (or an xpub for Bitcoin) and we watch the chain for you. If you would rather run everything yourself, BTCPay Server is a good self-hosted option.

Is this legal in the US?

TapCoin Pay is non-custodial software: we never take possession of funds, so we do not operate as a money transmitter. Accepting crypto for goods and services is legal in the United States. Tax treatment, record keeping and licensing vary by business and jurisdiction, so we recommend you consult counsel for your situation.

Can I use it in person?

Yes. Open the dashboard on your phone, enter an amount, and show the QR code. The customer scans and pays, and the screen turns green when the chain confirms. No hardware required.

How is the crypto amount calculated?

At checkout time we fetch the current price for the selected asset in your currency from our price feed, convert your fiat price, and lock that amount for 15 minutes. The customer sends exactly that figure. If the quote expires before payment, the customer can refresh it.

What happens with XRP destination tags?

Every XRP checkout gets a unique destination tag, and the QR encodes it along with your address. That is how we match an incoming payment to a specific checkout on a single address. If a customer omits the tag we show a clear warning before they pay, and if a payment arrives without a tag we flag it in your dashboard so you can match it by hand.

Non-custodial checkout for the web.

Add a wallet address, create a payment link, and take your first crypto payment in the next five minutes. Free for 20 payments a month.