Skip to content
LayerHop

LayerHop Payments · SaaS subscriptions

Crypto subscriptions for SaaS, billed in USDC or USDT

Create a subscription with the customer's email, a price and an interval (day, week, month or year). At the start of every period LayerHop issues an invoice and emails the pay link; your customer pays it with any token on any chain. Webhooks tell your app when a period is paid, when an invoice goes past due, and when a subscription is canceled for non-payment, so you can grant or pause access.

How to set it up

Three steps, starting in test mode if you like.

  1. 1

    Sign in to the dashboard

    Open dashboard.layerhop.com and sign in with your wallet (no email or password). Turn on test mode to try everything with simulated payments first.

  2. 2

    Create the subscription

    In the dashboard under Payments → Subscriptions, or with POST /v1/subscriptions: customer email, amount, settlement token and chain, interval. The first invoice goes out within about a minute.

  3. 3

    Keep access in sync with webhooks

    Listen for invoice.paid, subscription.past_due and subscription.canceled. Your app decides what each one means for the customer's plan.

What works today, and what doesn't

So you know before you sign up.

Works today

  • Daily, weekly, monthly or yearly billing, with intervalCount for quarterly and similar cycles
  • Invoices due 3 days after issue by default, reminders 1 and 3 days after the due date, cancellation 7 days after it
  • Pause, resume and cancel from the dashboard or the API
  • Each invoice is paid with any token on any chain, with a PDF receipt

Not supported

  • Nothing is charged automatically: a wallet can't be debited without the customer signing, so each period they pay an emailed invoice
  • LayerHop doesn't manage your user accounts or plan tiers; your app decides what each webhook unlocks

Fees

Paid by your customer. You receive at least the amount due.

Setup and monthly feeNone
Customer pays in your settlement token, on your chain0.50% LayerHop fee, added on top for the customer. You receive the full amount.
Customer pays with any other token or chain0.20% LayerHop fee plus the route provider's fees, included in the price the customer sees before signing. You receive at least the full amount.
Slippage buffer on routed paymentsThe customer sends a little more so the amount due is guaranteed: usually under 1%, never more than about 3%. Any extra that arrives is yours.
Network gasPaid by the customer
RefundsNo LayerHop fee; you sign them from your own wallet

Example: a 100.00 USDC payment on Base paid in USDC on Base costs the customer 100.50 USDC (0.50 USDC LayerHop fee) and you receive 100.00 USDC. Paid with ETH on Arbitrum instead, the LayerHop part is about 0.20 USDC, with provider fees and the buffer shown in the customer's quote.

Questions

Can LayerHop charge my customer's wallet automatically every month?

No. A crypto wallet can't be charged without the owner signing each payment, unless they hand over custody or a token approval, which LayerHop doesn't ask for. Instead LayerHop emails an invoice every period and the customer pays it in a minute with any token.

What happens when a customer doesn't pay?

The invoice is due 3 days after it is issued (configurable). Unpaid at the due date, the subscription becomes past_due and you get subscription.past_due. Reminders go out 1 and 3 days after the due date, and 7 days after it the subscription is canceled and its open invoices voided. Paying before then makes it active again.

What does it cost to bill subscriptions in crypto?

Nothing to set up and no monthly fee. If your customer pays in the exact token and chain you settle in, LayerHop adds a 0.50% fee on top for them (100.50 USDC for a 100.00 USDC payment) and you receive the full 100.00. If they pay with anything else, the route includes LayerHop's 0.20% fee and the provider's fees in the price they see before signing, and you still receive at least the amount due. Network gas is paid by the customer. Refunds carry no LayerHop fee.

How do I connect it to my app's plans?

Store the subscription id with the user. Grant access on invoice.paid, warn or limit on subscription.past_due, and remove access on subscription.canceled. All webhooks are signed, and test mode lets you rehearse the whole cycle.

Does LayerHop hold the money?

No. The customer's wallet sends the payment, and the route delivers it straight to your payout address. LayerHop never holds funds or keys, and only marks a payment paid after checking the transfer to your address on the settlement chain.

Try it in test mode first.

Sign in with your wallet, switch on test mode, and run a simulated payment end to end, webhooks included.