Subscriptions for your own product. Without building billing.
Plans by API, a hosted subscribe page, card or crypto — and webhooks your backend can act on.
You create a plan, send a customer to a page we host, and from then on your server hears about every renewal, failed payment and cancellation with your own customer id attached. Card subscriptions renew through Stripe; crypto pays one period at a time. The take is 10% and there is nothing else to pay.
- 10% take, no monthly fee
- Card renews by itself · crypto per period
- Webhooks: created · renewed · payment_failed · canceled · expired
Built for products that live outside the marketplace
A Getly listing sells a file. Getly Billing charges for something you run yourself.
SaaS and tools
A hosted app, an API, a browser extension with a paid tier. Your backend checks our status endpoint or listens to webhooks and unlocks features.
Communities and content
A Discord, a Telegram channel, a members-only site. Grant the role on created, remove it on expired or canceled.
Anyone who needs crypto
Card billing where Stripe works, USDT/USDC everywhere else. One plan, both rails, one set of webhooks.
How it works
Five steps from zero to a paying subscriber
- 1
Apply
Tell us the website and what you will sell. A human reviews it — Getly is the merchant of record, so we need to know what we charge for.
- 2
Create a plan
POST /api/v1/billing/plans with a name, an amount in cents and an interval — month, year, or any count of days or weeks.
- 3
Send the customer to checkout
POST /api/v1/billing/checkout with your customer reference and your success and cancel URLs. You get a hosted page URL, valid for 24 hours.
- 4
Act on webhooks
billing.subscription.created, renewed, payment_failed, canceled and expired reach your endpoint with the same customer reference you sent.
- 5
Check status any time
GET /api/v1/billing/subscriptions/{id} answers "is this person paid up" — for the moments a webhook is not enough.
Two calls to integrate, one webhook to keep
The plan lives in our API. The subscribe page lives on our domain. Your backend never touches a card.
Every webhook carries externalCustomerRef — the id you handed us at checkout — so your handler needs no lookup. Deliveries are signed, retried, and listed in your developer dashboard. Cancel from your side with POST /api/v1/billing/subscriptions/{id}/cancel; the subscriber can also cancel from their Getly account and keeps access to the end of the paid period.
API docscurl -X POST https://www.getly.store/api/v1/billing/checkout \
-H "Authorization: Bearer gk_your_api_key" \
-d '{ "planId": "…", "customerRef": "user_8841",
"successUrl": "https://your-app.com/welcome",
"cancelUrl": "https://your-app.com/pricing" }'
{ "success": true,
"data": { "url": "https://www.getly.store/billing/subscribe/…" } }
# later, on every renewal:
{ "event": "billing.subscription.renewed",
"externalCustomerRef": "user_8841",
"status": "active",
"currentPeriodEnd": "2026-10-08T09:14:00.000Z" }Questions developers ask
Is this the same as Member Plans?
What does it cost?
Where does the money go?
How does crypto renew?
Why is access by application?
Can a subscriber cancel without me?
Charge for what you built
Apply from your dashboard. A human reviews it, and the API is open the moment it is approved.
Open Billing