Integrations

Plug subscriptions into anything

One subscribe link, paid in stablecoins on Solana or TON, settling straight to your wallet — then wired into the surfaces you already use. Here's everything you can connect today, and what's coming next.

Developer API & SDK

Zero-friction: create a link once, send subscribers to it, then gate anything. Stablecoin subscriptions on Solana & TON — auto-renewing, with Telegram access built in. The access check is public (safe in the browser); managing links and subscribers uses a secret key, server-side only. Only a hash of each key is stored, and a key only ever sees links you own.

  1. 1 Create a link — in your dashboard or with one POST /v1/api/links. Pick Solana or TON, USDC/USDT, the period, and (optionally) a Telegram channel to gate.
  2. 2 Send subscribers to the link. The hosted checkout handles Phantom / TON Connect wallet signing, Telegram binding, and every renewal automatically.
  3. 3 React to events — take webhooks pushed to your endpoint, or gate on demand with one access call from the browser SDK or your backend.
# Browser — gate anything, no key needed (subscription state is public) <script src="https://subs.fi/sdk.js"></script> <script> const subs = SubsFi(); subs.gate({ subscriber: wallet, // the connected Solana / TON address object: "abc12", // your link slug onGranted: () => unlock(), onDenied: () => subs.openCheckout("abc12"), // send them to checkout }); </script>
# Backend — manage links & subscribers with a key (server-side only). # Create the key in /app, then replace YOUR_KEY / YOUR_SLUG / WALLET. curl -H "Authorization: Bearer YOUR_KEY" "https://api.subs.fi/v1/api/links" curl -H "Authorization: Bearer YOUR_KEY" "https://api.subs.fi/v1/api/subscribers?object=YOUR_SLUG" curl -H "Authorization: Bearer YOUR_KEY" "https://api.subs.fi/v1/api/access/check?subscriber=WALLET&object=YOUR_SLUG" # → { "access": true, "status": "active", "until": "…", "kind": "telegram" }
# Create a subscription link programmatically. TON links go live instantly; # Solana returns an unsigned create_plan tx for your payout wallet to sign, # then POST /v1/api/links/<option id>/confirm once it lands on-chain. curl -X POST "https://api.subs.fi/v1/api/links" \ -H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \ -d '{"source":"https://t.me/your_channel","rail":"ton","period":"1mo", "priceDecimal":5,"kind":"telegram","chatId":"@your_channel"}' # → { "group": { "link": "https://subs.fi/abc12", "qr": "…" }, # "options": [ … ], "signatureRequired": false }
// Receive webhooks — verify the signature, then trust the payload. import { createHmac, timingSafeEqual } from "node:crypto"; app.post("/webhooks/subsfi", express.raw({ type: "*/*" }), (req, res) => { const [t, v1] = req.get("subsfi-signature").split(",").map(p => p.split("=")[1]); const expected = createHmac("sha256", process.env.SUBSFI_WEBHOOK_SECRET) .update(`${t}.${req.body}`).digest("hex"); if (!timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(v1, "hex"))) return res.sendStatus(400); const { event, data } = JSON.parse(req.body); // payment.collected · subscription.created / activated / cancelled / expired // data.subscription.subscriber, data.object.slug, data.amount, data.currency res.sendStatus(200); // any 2xx = delivered; else we retry with backoff });
Create an API key Auth with Authorization: Bearer or x-api-key · SDK at subs.fi/sdk.js
Access & gating
Live

Telegram

Gate private channels & groups (join-request approval) and public ones (auto-remove non-subscribers). Includes a Mini App and TON Connect so subscribers link their account in one tap.

channelsgroupsmini app
Set up in dashboard →
Coming soon

Discord

Grant and revoke server roles automatically as subscriptions renew or lapse — the same enforcement engine that powers Telegram, pointed at your Discord.

rolesservers
In development
Coming soon

GitHub

Token-gate private repos and team access to paying subscribers — invite on subscribe, remove on lapse.

reposteams
In development
Coming soon

Hosted & gated content

Put files, downloads or private links behind a subscription and let Subs.fi check access on every request — no server code required.

fileslinks
In development
Payments & wallets
Live

Solana

Recurring, on-chain subscriptions in USDC and USDT via the Subs.fi Subscriptions & Allowances program. Renewals pull automatically each period.

USDCUSDTauto-renew
How it works →
Live

TON

Subscriptions in USDT on TON using Wallet V5 extensions and TEP-74 jettons — the same lifecycle as Solana, native to the Telegram ecosystem.

USDTwallet v5
How it works →
Live

Phantom & TON Connect

Subscribers connect Phantom (Solana) or any TON Connect wallet to subscribe and to prove ownership. Sign in to the dashboard the same way.

phantomton connect
Connect a wallet →
Coming soon

Card payments

Fiat checkout via Stripe for subscribers who'd rather pay by card, settling alongside your crypto rails.

stripefiat
Planned
Developer
Live

REST API & keys

Scoped API keys plus endpoints to list your /v1/api/links, read /subscribers, and verify a wallet with /access/check from your backend.

linkssubscribersaccess check
Manage keys →
Live

JavaScript SDK

A dependency-free drop-in at subs.fi/sdk.js — gate access in the browser (no key), send users to hosted checkout, and manage links from your server.

browserno build stepgate + checkout
View the SDK →
Live

Webhooks

Signed payment.collected and subscription.* events POSTed to your endpoint the moment money moves — HMAC-signed, retried with backoff, and queued durably so nothing is lost if you're down.

eventshmac signedretries
Add an endpoint →
Coming soon

SDK & embeds

A drop-in subscribe button and a JavaScript SDK for access checks, so you can add subscriptions to any site or app in a few lines.

js sdkweb component
Preview →
Links, QR & identity
Live

Payment links & QR

Every subscription is a short subs.fi/<slug> link with a matching QR code — share it anywhere, online or in the physical world.

short linksqr
Create a link →
Live

Unified identity

Email, Solana wallet, TON wallet and Telegram all resolve to one account. Sign in with any of them and see the same subscriptions and earnings.

emailSIWSton prooftelegram
Sign in →

Need an integration that isn't here yet? Start building — the developer API works today, and the rest is on the way.