How do I let members subscribe from inside Discord?

Run /flatpass panel in the channel you want it in, then pin the plans panel it posts. Each tier gets a button per billing period with its price, and pressing one sends the member a private checkout link with no Discord sign-in.

Posting the panel

  1. Open the channel you want it in. The panel posts into the channel you run the command in and nowhere else, so start in #welcome or wherever new members land.
  2. Run /flatpass panel. Discord restricts the whole /flatpass group to members with Manage Server. A server admin can change who may run it under Server Settings → Integrations.
  3. Pin the panel. It is an ordinary message, so pinning it is what makes it the thing new members find.

It works in any channel. The bot does not need permission to send messages there, because the panel is the reply to your command. It always lands in the channel you ran the command in.

What members see

The panel opens with your server description: the one you wrote under Server description on your dashboard, or your Discord server description if you left that empty. It’s the same text your invite page leads with, cut to 200 characters if it’s longer. Save a new one and the pinned panel changes with it. A description you edit in Discord reaches the panel straight away. If the bot was offline when you changed it, Re-sync on your dashboard catches it up.

One block per tier, headed by that tier’s own art: its name, the “Recommended” marker if you spotlighted it, and your description. Under that sits one button per billing period, each labelled with the period and that period’s price, and a longer period also with what it saves against paying monthly; the recommended tier’s buttons are the highlighted ones. The prices are on the buttons and nowhere else, so someone weighing monthly against annual sees both without touching the panel.

Pressing a price answers the member privately, with that plan’s renewal terms and a Pay link labelled with the price and already tied to their Discord account. It opens Stripe Checkout with no Discord sign-in. Discord asks before opening any link outside it, so the answer tells them to choose Visit Site. On a tier with no price, pressing the button gives them the role there and then. When the button is another billing period of a plan the member already has, or another switchable tier while they hold one, the reply asks them to confirm a switch, with what it costs, instead of giving a Pay link.

A pinned panel is one message read by everyone, so it shows your own prices. A member who runs /join gets a private copy of the panel, and that one is in their currency. Stripe Checkout does the real conversion either way.

Members can also run /join themselves for a private copy at any time, and /membership for what they already hold.

Two things worth knowing

Publish a tier first. On a server with nothing published the command answers you privately with what to do instead, rather than pinning invented pricing in a public channel.

The pinned panel keeps itself current. Change a price, edit a tier, archive one or add one, and the panel in your channel is rewritten to match — including the button labels, which are the only place it states a price. You do not have to post it again. If flatpass ever loses the ability to edit it — somebody deleted the message, or the bot can no longer see the channel — your dashboard says so, under your tiers, and tells you to post it again.

Still stuck?

Ask in the flatpass Discord, or email support@flatpass.io. Both are read by the people who build it.