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
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
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
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 fee | None |
|---|---|
| Customer pays in your settlement token, on your chain | 0.50% LayerHop fee, added on top for the customer. You receive the full amount. |
| Customer pays with any other token or chain | 0.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 payments | The 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 gas | Paid by the customer |
| Refunds | No 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.
Other ways merchants use it
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.