You can sell Discord or Telegram access with a Shopify subscription. The member gets a Discord role or a seat in your Telegram group when they subscribe, keeps it while they pay, and loses it when they cancel or pause. On any paid Subi plan, Subi sends a webhook when a membership starts, pauses, resumes or is canceled, and when a renewal payment succeeds or fails, and it answers the API. You or your developer run the small piece that listens and talks to Discord; for Telegram, a tool like Make or Zapier can do it.
How does access follow the subscription?
A Subi webhook is a signed message Subi posts to your https:// address the moment a membership starts, resumes, pauses or is canceled, or a renewal payment succeeds or fails.
What Subi does:
- Sends those webhooks to the address you register under Settings, then Webhooks, one per event, after you click Activate.
- Answers API calls that turn the Shopify customer ID in a webhook into the member's email and list their memberships.
What you build:
- A Discord bot that can manage roles and create invites, or a Telegram bot that is a group admin allowed to invite and ban users.
- A small server for the Discord bot; the Telegram steps can also run in Make or Zapier.
When is access given and taken away?
Give access on Subscription Created and Subscription Resumed. Take it away on Subscription Paused and Subscription Canceled, unless the member still has another active membership.
A failed renewal does not pause or cancel the membership by itself; Subi keeps it active while it retries the charge, and what happens when the retries run out depends on your payment recovery settings. To stop access as soon as a payment fails, also take it away on Subscription Billing Failed, and give it back on Subscription Billing Succeeded, which Subi sends when a retry pays.
A membership that ends after its last payment, such as a prepaid one or one with a set number of renewals, sends no webhook, so a nightly check through the API catches those; keep access until that contract's next billing date, the end of the period its last payment paid for. If you sell other subscriptions too, give access only when the contract's lines include your membership product.
How does it work in Discord?
Each member opens a link once and logs in with Discord. If the verified email on their Discord account has an active membership in your store, the bot adds them to your server with the members' role, and from then on the webhooks keep the role in step.
Members who joined earlier through a plain invite get the same link once, for example in a pinned message. To check one yourself, look them up by email, then list their memberships:
curl -G "https://api.subi.co/public/v1.0/subscribers/" \
--data-urlencode [email protected] \
-H "X-Api-Key: $SUBI_API_KEY"
curl -G "https://api.subi.co/public/v1.0/subscription-contracts/" \
-d customer_id=<id> -d status=ACTIVE \
-H "X-Api-Key: $SUBI_API_KEY"
The email filter also returns addresses that only contain the one you send, so keep only the subscriber whose email equals it exactly, ignoring case. The list leaves out each contract's lines; GET subscription-contracts/{id}/ shows whether one holds your membership product. A member whose Discord email differs from the one they bought with can be linked by hand.
How does it work in Telegram?
A Telegram bot can create a one-person invite link and remove a member, so the group follows the membership:
- On Created or Resumed, read the member's email from the Subi API, create the invite link and email it to them.
- When they join, record which Telegram account used the link, then revoke it.
- On Paused or Canceled, if they have no other active membership, remove them without a permanent ban, so they can rejoin if they resume.
WhatsApp cannot work this way: WhatsApp offers no supported way for a tool to add and remove members of an ordinary group, so Telegram or Discord is the way to make access follow the membership.
What should the listener check?
- Check
X-Subi-Hmac-Sha256before trusting the body. It is the base64 HMAC-SHA256 of the raw body, made with the signing secret on the Webhooks page; a hex comparison rejects every delivery. - Answer 2xx within 10 seconds and do the slow work after. Subi does not follow redirects, so register the final address.
- Skip an
X-Subi-Event-Idyou have already handled, since Subi resends a delivery that got no 2xx answer. - Send API calls to
https://api.subi.cowith the key inX-Api-Key, at most 60 a minute.
Which Subi plans include the API and webhooks?
Every current paid plan includes them: Starter at $29 a month plus 1.6% per subscription transaction, Subi and Subi Plus, and so do almost all older plans. The Free plan offered to new stores today does not. Your first paid plan starts with a 7-day free trial.
Set it up
- Keep your members' Discord, Telegram, course or members' area access in step with their Subi membership: the full recipe.
- How to set up and manage Webhooks in Subi: registering and testing them.
- The developers page: a signature check in code and both references.
Would you rather not build it? Tell us what you want to connect and, on any paid Subi plan, we prepare it for your store and set it up with you. For perks inside your store, such as member-only discounts and gated content, see Subi memberships and how Shopify membership apps compare.
Install Subi from the Shopify App Store; your first paid plan starts with a 7-day free trial.