Accept crypto payments on your website
Add a USDT, Bitcoin, Ethereum and TON checkout to your online store, SaaS or service site. Customers pay on a hosted page and come back to your site, while your server gets a signed webhook.
Who uses it
Any website that sells online can take crypto, with the API or with payment links that need no code.
Online stores
Add crypto next to your other payment methods and mark orders paid automatically.
SaaS and subscriptions
Charge for plans, credits and renewals and unlock the account on the webhook.
Digital products
Sell software, templates, files and licences with instant delivery after payment.
Freelancers and agencies
Send clients a payment link for an invoice, no website integration needed.
Online courses
Open lessons and memberships as soon as the student pays.
Top-up and wallet sites
A permanent deposit address per customer, credited to their account balance.
How it works on a website
- 1
Verify your domain
Add your domain and prove ownership with a DNS TXT record, a file or a meta tag. We review and switch it live.
- 2
Create an invoice
At checkout your server calls the API with the amount, order ID and the page to return to.
- 3
Redirect to checkout
Send the customer to the checkout URL. They pick a coin, scan the QR code and pay.
- 4
Mark the order paid
You get a signed invoice.paid webhook and the customer returns to your success page.
Works with any backend
Create the invoice from PHP, Node.js, Python or any language that can send an HTTP request. Redirect to the checkout and listen for the webhook.
- Return URL must be on your verified domain
- Verify every webhook with your signing secret
- Same order ID returns the same invoice, so retries are safe
// 1. Checkout: create the invoice and redirect $res = Http::withToken($key)->post($api.'/invoices', [ 'amount' => $order->total, 'order_id' => $order->id, 'return_url' => 'https://novastore.com/thanks', ]); return redirect($res['data']['checkout_url']); // 2. Webhook: verify the signature, then mark paid if (hash_equals(hash_hmac('sha256', $t.'.'.$body, $secret), $v1) && $event['event'] === 'invoice.paid') { Order::find($event['data']['order_id'])->markPaid(); }
Made for websites
Hosted checkout with return
A mobile-friendly payment page in three languages that sends customers back to your success page.
Payment links
No developer? Create a link with a fixed or open amount and put it on a button or in an email.
Dashboard and CSV export
Every payment with coin, network, fee and net amount, plus CSV export for your accounting.
Signed webhooks
HMAC-signed events for paid, underpaid, expired and late payments, retried until your server answers.
Website crypto payments: questions
How do I accept crypto payments on my website?
Create a ScarabPay project for your domain and verify it. At checkout, create an invoice with the API and redirect the customer to the checkout URL. Mark the order paid when the invoice.paid webhook arrives.
Is there a plugin for my store platform?
There is no ready-made plugin at the moment. Any platform that can send an HTTP request can use the API, and payment links work without any code.
How do I verify my domain?
Choose one method: a TXT record on scarabpay-challenge.yourdomain, a file at /.well-known/scarabpay-verify.txt, or a meta tag on your home page. Each project gets its own code.
Can customers come back to my site after paying?
Yes. Pass a return_url with the invoice or set a success URL for the project. It must use https on your verified domain or one of its subdomains.
Which coins can customers pay with?
USDT on TRC20, BEP20, ERC20 and TON, USDC on BEP20, Bitcoin, Ethereum and Toncoin.
How much does it cost?
0.8% per successful payment, with no setup or monthly fee.
Keep reading
Add crypto to your checkout
Verify your website and create your first invoice in minutes. You only pay when you get paid.