Skip to main content

Best Crypto Payment Gateway for SaaS: What to Look For

· 9 min read
OrcaRail
Crypto payment rails for web2 apps

A crypto payment gateway for SaaS has more work to do than a checkout for one-off orders. It has to bill the same customer every month, run free trials, handle failed renewals and tell your app when to turn access on or off. Many crypto gateways were built for single payments, and the gaps show up in billing.

This guide lists what to check before you choose one: how renewals are collected, what fees do to a $10 plan, which coins your customers can pay with, the API and webhooks, and where the money goes. Every competitor figure links to the provider's own page.

Disclosure: OrcaRail publishes this blog and is one of the gateways below. Competitor facts come from each provider's own pages, linked, with the date we checked. Pricing changes, so confirm with the provider before you decide.

Why SaaS billing is harder with crypto​

With cards, the processor keeps the card on file and charges it every month. A crypto wallet works the other way: nobody can take tokens from it unless the owner signs a permission. So a gateway can collect a renewal in one of two ways:

  • A payment link each cycle. The gateway sends an invoice or a link, and the customer pays it from their wallet by hand.
  • A pre-approved pull. The customer signs once, and the gateway pulls each renewal. On EVM chains this is an ERC-20 allowance; on Solana it is an SPL token delegation.

Every manual renewal is a chance for the customer to forget, so for monthly plans the second model matters. SaaS billing also needs small payments to stay cheap, and your app needs a webhook when a renewal succeeds or fails.

What to look for in a crypto payment gateway for SaaS​

What to checkWhy it matters for SaaSOrcaRail
Renewals that charge on their ownFewer missed renewals on monthly plansAuto-charge on EVM chains and Solana, or a payment link each cycle
Fees on small paymentsA fixed fee per invoice takes a big share of a $10 plan0.5% per completed transaction, first 100 free, no fixed fee
Coins your customers holdCustomers pay with what is already in their walletUSDC, USDT and other tokens on 70 mainnets
Trials, pauses and cancellationsStandard rules for any SaaS plantrial_period_days, pause_collection, cancel_at_period_end
Subscription webhooksYour app turns access on or off from events13 subscription events, signed like every OrcaRail webhook
API and SDKsYour backend creates and manages subscriptionsREST API, Node and PHP SDKs, Laravel Cashier, MCP server
Where the money goesCustody risk and cash flowForwarded to your own wallets; no balance held
SandboxTest renewals before real customers payFree sandbox organizations on testnets

Renewals that charge on their own​

OrcaRail has both collection methods on the same subscription object:

Payment link each cycleAuto-charge
collection_methodsend_payment_link (default)auto_charge
Customer action each cycleOpens the link and paysNone after the first approval
When a renewal failsThe link goes overdue after days_until_due, and the status becomes past_dueThe pull fails, the status becomes past_due, and the customer is emailed
Good forAnnual plans, or customers who want to approve every paymentMonthly SaaS plans, memberships and API plans

With auto-charge, the customer approves once and OrcaRail pulls each period's amount from that approval. It runs on EVM chains and Solana, not on Bitcoin. The customer can revoke the approval from their wallet at any time. See auto-charge for the approve and revoke steps, and recurring crypto payments for a longer comparison of the two models.

Fees on a $10 plan​

SaaS plans are often small monthly amounts, so a fixed fee per invoice matters as much as the percentage.

GatewayPublished feeFee on a $10 paymentRecurring billingChecked
OrcaRail0.5% per completed transaction, first 100 free$0.05Payment link each cycle, or on-chain auto-charge11 Nov 2026
Stripe stablecoin payments1.5%$0.15Stripe Billing; stablecoin subscriptions in private preview10 Nov 2026
NOWPaymentsFrom 1%; +1% when coins differFrom $0.10Recurring invoices10 Nov 2026 (fee), 31 Oct 2026 (recurring)
CoinGate1% (Standard plan)$0.10Scheduled bills10 Nov 2026
MoonPay Commerce2%, or 1% with a HelioX Pass$0.20 ($0.10 with the pass)Monthly or annual subscriptions10 Nov 2026
BitPay2% + 25¢ under $500K a month$0.45Email billing (invoices)10 Nov 2026

Network (gas) fees come on top for most providers; Stripe's fee includes gas sponsorship. On a $10 plan, BitPay's fixed 25¢ alone is 2.5% of the payment. For the details behind each row, see BitPay alternatives and our list of crypto payment gateways.

Coins your customers hold​

Stablecoins suit SaaS because the price stays the same in dollars from one cycle to the next. An OrcaRail subscription bills a fixed amount in a currency such as usd, paid in the token and network you choose, for example USDC on Base or USDT on Polygon. OrcaRail covers 70 mainnets: EVM chains, Solana and Bitcoin. Tron is not supported yet. See Networks and tokens.

Trials, pauses and cancellations​

  • Free trials: set trial_period_days (or trial_end). The subscription starts as trialing, and OrcaRail emails the customer about 3 days before the trial ends. See trial periods.
  • Intervals: day, week, month or year, with interval_count for periods such as every 3 months.
  • Fixed terms: total_cycles ends the plan after a set number of periods.
  • Pause and resume: pause_collection stops billing until you resume.
  • Cancel at period end: cancel_at_period_end: true lets the customer keep the period they paid for.

See manage subscriptions for every updatable field.

Subscription webhooks that control access​

EventWhat your SaaS app does
subscription.createdSave the subscription ID on the customer's account
subscription.payment_link.paidKeep access on until the new current_period_end
subscription.payment_link.payment_failedShow a "renewal failed" notice; the status is past_due
subscription.auto_charge.allowance_insufficientAsk the customer to approve a new allowance
subscription.canceledRemove access, or schedule it for the end of the paid period

Verify the signature on every event before you act on it. See subscription webhooks and webhook signatures.

Where the money goes​

OrcaRail holds no balance. Each payment is forwarded automatically to withdrawal addresses you control. Other providers work differently: Stripe and BitPay can settle in fiat, and some hosted gateways keep the funds in an account until you withdraw them. Check this before you sign up, because it decides who holds your revenue between payments.

How to set up crypto subscriptions for SaaS with OrcaRail​

  1. Open a sandbox. Sign up at app.orcarail.com and create a sandbox organization with an ak_test_ key. Sandboxes use testnets, so no real funds move.

  2. Pick what you bill in, for example USDC on Base. List the options with GET /payments/networks and GET /payments/networks/:id/tokens and keep the token and network IDs.

  3. Set withdrawal addresses for EVM and Solana, so renewals reach your own wallets.

  4. Create a subscription from your backend when a customer picks a plan. With the Node SDK:

    import OrcaRail from '@orcarail/node'

    const orcarail = new OrcaRail(
    process.env.ORCARAIL_API_KEY!,
    process.env.ORCARAIL_API_SECRET!,
    { baseUrl: 'https://api.orcarail.com/api/v1' }
    )

    const subscription = await orcarail.subscriptions.create({
    description: 'Pro plan',
    amount: '10.00',
    currency: 'usd',
    token_id: tokenId,
    network_id: networkId,
    interval: 'month',
    collection_method: 'send_payment_link',
    payer_email: '[email protected]',
    metadata: { account_id: 'acct_123' },
    })

    Send the customer to subscription.latest_payment_link?.link to pay the first cycle.

  5. Offer auto-charge. Use collection_method: 'auto_charge' so customers approve once and renewals are pulled on their own. The auto-charge guide covers the approval and the API calls.

  6. Turn access on and off from webhooks, using the events in the table above.

  7. Test renewals. In the sandbox, open a cycle's payment link and click Simulate payment. The payment goes through the normal flow and fires the usual webhooks. See simulate payments.

  8. Go live with a live organization and an ak_live_ key.

On Laravel? Cashier OrcaRail keeps subscription state in your database and syncs it from signed webhooks. Prefer no code? A pricing widget with a recurring price starts a subscription when the customer picks the plan. See OrcaRail subscriptions for an overview.

FAQ​

What is the best crypto payment gateway for SaaS?​

The best one renews without a manual payment each cycle, keeps fees low on small plans, accepts the stablecoins your customers hold, and has an API and webhooks your app can use. OrcaRail covers these with auto-charge on EVM chains and Solana, 0.5% per completed transaction with the first 100 free, USDC and USDT on 70 mainnets, and 13 subscription webhook events. Compare other options in our list of crypto payment gateways.

Which crypto payment gateways have recurring billing?​

Of the providers we checked: OrcaRail (a payment link each cycle or on-chain auto-charge), MoonPay Commerce (monthly or annual subscriptions) and Stripe (stablecoin subscriptions in private preview). NOWPayments and CoinGate send recurring invoices or bills, and BitPay offers email billing.

Can crypto subscriptions charge automatically?​

Yes, once the customer approves it. On EVM chains the customer signs an ERC-20 allowance; on Solana, an SPL token delegation. The gateway then pulls each renewal within the approved amount, and the customer can revoke the approval at any time. OrcaRail auto-charge does not run on Bitcoin.

Do customers need a crypto wallet to subscribe?​

Yes. Customers pay from a wallet that holds the token, such as USDC on Base. With auto-charge, they also sign the approval from that wallet.

Can I offer a free trial with crypto subscriptions?​

Yes. Set trial_period_days when you create the subscription. It starts as trialing, no payment is collected during the trial, and OrcaRail emails the customer about 3 days before the trial ends.


Start in the sandbox · Subscriptions · Pricing