Website payments

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.

0.8%fee per payment
$0monthly fee
8coins and networks
3ways to verify a domain

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. 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. 2

    Create an invoice

    At checkout your server calls the API with the amount, order ID and the page to return to.

  3. 3

    Redirect to checkout

    Send the customer to the checkout URL. They pick a coin, scan the QR code and pay.

  4. 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
API docs
checkout.php
// 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.