Run /flatpass panel in the channel you want it in, then pin what it posts. Each tier gets its own block with a button per billing period labelled with that period's price, and the card updates itself when you change one.
/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.It works in any channel. The bot does not need permission to send messages there, because the card is the reply to your command. It always lands in the channel you ran the command in.
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 each taking the member straight to Stripe Checkout for that exact plan. The prices are on the buttons and nowhere else, so someone weighing monthly against annual sees both without touching the card.
A pinned card is one message read by everyone, so it shows your own prices. A member who runs /join gets a private copy of the card, 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.
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 card keeps itself current. Change a price, edit a tier, archive one or add one, and the card 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 invite link, and tells you to post it again.
Edit the tier and save the new amount. Members already subscribed keep the price they signed up at; only new checkouts pay the new one.
Discord creates the bot's own role at the bottom of the list, and a bot can only assign roles below it. Drag flatpass above the role you sell.
Add the bot, connect Stripe, pick a role, set a price — about ten minutes, most of it Stripe's own identity check.