Use cases
Accept crypto payments for a SaaS or subscription
A SaaS accepts crypto with Crypto Merchant by creating an invoice for each billing period and extending the account when the signed invoice.paid webhook arrives. Crypto wallets can't be charged automatically, so a renewal is an invoice the customer pays, with a reminder when one expires. For prepaid credits, sticky wallets give each customer a permanent deposit address that credits their balance on deposit.confirmed. The fee is 1% per paid invoice, with no monthly fee.
Updated 6 November 2026
Everything on this page describes how Crypto Merchant works today, as set out in the API reference, the checkout docs and Pricing. Nothing here is a claim about other gateways.
At a glance
| Topic | How it works |
|---|---|
| How customers pay | An invoice page per billing period, linked from your billing screen or a renewal email. For prepaid balances, their own permanent deposit address, one per network. |
| What you build | A job that creates an invoice when a period ends, with metadata naming the account and period, and a webhook endpoint that extends the account. Or POST /sticky-wallets per account. |
| Recurring charges | Not automatic. A crypto wallet can't be debited, so each renewal is a new invoice the customer pays. The invoice.expired event tells you when to send a reminder. |
| Pricing and holding | Price plans in dollars or another supported currency; stablecoins count as one US dollar each. Swap everything you receive into USDT or USDC so revenue doesn't move with the market. |
| Customer records | Send customer_email and payments are grouped by customer in the portal; order_id and metadata come back on every webhook. |
| Documents to sign up | None. You don't need a registered company to open an account; the Terms still apply. |
How does it work, step by step?
A monthly plan, from the end of one period to the start of the next:
- 1
Create an invoice when the period ends
A scheduled job calls
POST /invoiceswith the plan price, anorder_idsuch as the subscription id plus the period, the customer's email, aredirect_urlback to your billing page, andmetadatanaming the account and period. - 2
Show the customer where to pay
Put the
checkout_urlbehind a “Pay with crypto” button on the billing page and in the renewal email. The customer picks a coin, the rate is locked, and the invoice stays open for the time you set, 30 minutes by default. - 3
Extend the account on invoice.paid
Verify the signature, save the event, reply 2xx, then extend the account named in
metadataby one period. Use the eventidso a repeated delivery doesn't extend it twice. - 4
Remind on invoice.expired
If the invoice expires unpaid, create a fresh one and email it. An expired invoice keeps nothing: the rate was locked only while it was open.
- 5
Prepaid credits: give each customer a permanent address
With sticky wallets,
POST /sticky-walletswith your own id for the customer returns the same addresses every time. Show them on a top-up page; ondeposit.confirmed, credit the customer named insticky_wallet.reference.
The one API call it takes
curl https://cryptomerchant.online/api/v1/invoices \
-H "Authorization: Bearer $CM_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": "29.00",
"currency": "USD",
"order_id": "sub_8f3a-2026-11",
"description": "Pro plan, November 2026",
"customer_email": "[email protected]",
"redirect_url": "https://app.example/billing?paid=1",
"metadata": { "account": "8f3a", "period": "2026-11" }
}'
# On "invoice.paid": extend account 8f3a by one month (metadata is echoed back).
# On "invoice.expired": send a reminder with a fresh invoice.What does it cost?
1% of each paid invoice, deducted when the payment is credited to your balance. There is no setup fee, no monthly fee and no payment to go live; expired and cancelled invoices cost nothing. Moving coins (sweeps, swaps and payouts) carries a gas fee, taken from your gas balance if you add one, otherwise from the coins being moved. Customers also pay a gas fee on each invoice: it is added to the amount they send, shown at checkout and never more than $5. Swap rates include a 1% service margin. Every cost is in one table on Pricing.
What Crypto Merchant doesn't do here
- No automatic renewals. There is no card on file to charge and no subscription object. Your job creates each period's invoice, and the customer pays it.
- No tax or dunning engine. Crypto Merchant creates invoices, takes payments and tells your server; VAT, receipts and reminder emails are yours to build.
- Custodial, crypto-only. Balances sit in a pool wallet Crypto Merchant holds until you pay out to your own addresses. There is no bank settlement.
Who is this for?
- Developer tools, APIs and software sold to customers in many countries.
- Products whose customers already hold stablecoins and prefer to pay with them.
- Teams without a registered company that can't open a traditional merchant account.
Frequently asked questions
Can Crypto Merchant charge my customers automatically every month?
How do I know which account a payment belongs to?
Can I price my plans in USDT?
What are sticky wallets for?
Related pages
- API reference
- Webhooks
- Sticky wallets
- How to add crypto top-ups to customer accounts
- Crypto settlement for developers
- Stablecoin payments for business
- Pricing and fees
Other use cases
Start accepting crypto today
Free setup, no documents to sign up, 1% per paid invoice, and payouts whenever you want.