How to Sell Discord Roles and Paid Discord Server Access
Learn how to sell Discord roles and paid Discord server access: bot permissions, role hierarchy, OAuth2 linking, recurring access and refund revocation.
9 min read
To sell Discord roles, you connect a bot to your server, tie each product in your store to a specific role, and have the bot assign that role to the buyer's Discord account as soon as payment is confirmed. The role then unlocks private channels or perks, so paid Discord server access is really just role-based permissions plus an automated way to grant and remove them. The hard parts are knowing which Discord account belongs to the buyer, getting the bot's permissions right, and deciding what happens when someone refunds or files a chargeback.
This guide walks through how role-based access works under the hood, the decisions you need to make before launch, and how to set it up with OpenStock if you want the grant-and-revoke logic handled for you.
Key takeaways
- A paid Discord role is a normal server role that gates channels; the selling part is automating who gets it and when.
- The bot needs permission to manage roles, and its own role must sit above every role it sells in the server's role list.
- Linking the buyer's Discord account through OAuth2 is what lets the bot know exactly which member to give the role to.
- Decide upfront how you handle refunds and chargebacks, and whether access is one-time or recurring.
- Follow Discord's Terms of Service and Developer Policy; your bot and your store are both subject to them.
Why sell Discord roles at all
A paid role lets you charge for access inside the space your audience already uses, instead of moving them to a separate members' site. Common examples include:
- Premium channels with early announcements, exclusive content, or direct access to the creator.
- Support tiers for software products, where buyers get a private help channel.
- Course or cohort communities, where a role unlocks lesson channels and discussion threads.
- Trading, gaming, or hobby groups that keep a free public area and a paid inner circle.
The model works well when the value is ongoing interaction, not a single file. If what you are really selling is a download or a license key, a role can be a bonus, but the product itself should probably be delivered directly. Our guide to selling digital products online covers how to pick the right delivery method for each product type.
How role-based access works
Discord permissions are attached to roles, and channels can be configured so only members with a given role can see or post in them. Selling access means you only ever change one thing per buyer: whether they hold the role.
Set up the role and channels first
Create a role for each tier you plan to sell, for example "Supporter" and "VIP". Then open each private channel's permission settings, deny "View Channel" for @everyone, and allow it for the paid role. Test this with an alternate account before you take any money.
Keep paid roles free of moderation permissions. A role you sell should grant visibility and maybe a display color, never the ability to kick members, manage messages, or edit the server.
The bot needs the right permissions
A bot can only add or remove roles if it has the Manage Roles permission. If it should also add buyers to the server directly, it needs to be authorized for that (more on OAuth2 below). If you plan to remove members on chargeback, it also needs permission to kick members.
Some integrations ask for broader permissions to keep setup simple. OpenStock's setup screen, for example, notes that its bot needs Administrator permissions to manage roles. Whatever tool you use, understand what you are granting, and keep your server's own role structure tidy so a bot with wide permissions is not touching roles it should not.
Role hierarchy is the most common failure
Discord enforces a role hierarchy: a bot can only assign or remove roles that sit below its own highest role in the server's role list. If your "VIP" role is above the bot's role, the bot will fail to grant it even with every permission enabled.
The fix is simple. Open Server Settings, go to Roles, and drag the bot's role above every role you sell. Do this again whenever you create a new paid role, because new roles are often placed in a position you did not expect.
OAuth2 linking tells you who the buyer is
An email address does not identify a Discord account. To grant a role, the bot needs the buyer's Discord user ID, and the reliable way to get it is Discord's OAuth2 flow: the buyer clicks "Connect Discord", approves the request on Discord's own page, and your store receives their user ID.
With the right OAuth2 scopes, an application can also add the user to your server directly, so the buyer does not need a separate invite link. This avoids the classic support ticket where someone pays, never joins, and cannot figure out why they have no access. Discord documents the available scopes and permissions in its developer documentation.
Linking also helps after the sale: because the role is tied to a verified account ID rather than a typed username, you can revoke or restore access precisely.
One-time vs recurring access
Before you set prices, decide what the buyer is actually paying for.
| Model | What the buyer gets | What you need to manage |
|---|---|---|
| One-time purchase | Role kept indefinitely | Clear wording that "lifetime" means as long as the server exists |
| Fixed-term pass | Role for a set period | A way to remove the role when the term ends |
| Recurring subscription | Role while payments continue | Removing the role on cancellation or failed payment |
One-time access is the simplest to run and explain. Recurring access matches ongoing value with ongoing payment, but members who pay monthly expect new content or activity each month.
Whatever you choose, state it plainly on the product page. "One-time payment, access for as long as the server is active" and "Access ends if you cancel" are both fine. Ambiguity about duration is a common reason buyers dispute charges later. Our guide to reducing chargebacks on digital goods goes deeper on writing descriptions that prevent this.
Revoking access on refunds and chargebacks
If a buyer gets their money back, they generally should not keep the role. The question is how firm to be.
- Remove the role and the member. Strongest option, appropriate when a chargeback looks like abuse.
- Remove the role only. The person drops back to the free area of your server. This is friendlier for legitimate refunds and for communities with a public tier.
- Do nothing. Sometimes reasonable, for example if you issued a goodwill refund and are happy for them to stay.
Automate this. Chargebacks often arrive weeks after the purchase, and manual revocation depends on someone noticing.
Also think about what the role exposed. If paid channels contained downloadable files or private links, removing the role stops future access but not what was already saved. For high-value material, deliver it in a way you can revoke separately, such as license keys. See selling software license keys for that approach.
Follow Discord's rules
Your server, your bot, and the way you sell access are all subject to Discord's Terms of Service, Community Guidelines, and, for bots, the Developer Policy and Developer Terms. Read them before you launch, and recheck them occasionally, since platform policies change.
A few principles always hold: do not sell anything that is not allowed on Discord, do not collect more user data through your bot than you need, and be honest about what the paid role includes. Discord also has its own creator monetization features; check its official documentation and help center for whether they fit your situation.
Setting it up with OpenStock
OpenStock is a hosted platform for selling digital products, and Discord roles are one of the delivery types it supports alongside license keys and file downloads. The Discord integration covers the mechanics described above, so you configure behavior instead of writing and hosting your own bot. The full list of capabilities is on the features page.
The setup is three steps: add the OpenStock bot to your server, select the server to link to your store, and map products to roles. Buyers then receive the mapped role automatically after purchase. Remember to move the bot's role above the roles you sell.
You then choose three behaviors.
Join mode
- After Payment: the buyer is added to the server and granted the role once payment completes.
- On Link: the buyer joins the server when they link their Discord account, and receives the role on purchase.
"After Payment" suits fully paid servers; "On Link" suits communities with a free area.
Join requirement
- Required: the buyer must join Discord to complete the purchase.
- Optional: the buyer can choose whether to join.
- Disabled: Discord joining is not offered at checkout.
Use "Required" when the role is the product, so nobody pays without linking an account. Use "Optional" when Discord is a bonus on top of another product, such as a key or file.
Revocation behavior
For refunds and chargebacks you can pick Revoke & Remove (remove the role and kick the member), Revoke Role Only (remove the role but keep them in the server), or Do Nothing (keep the role even after a refund). These map directly to the three options discussed earlier.
Verification page, webhooks and custom bots
Each store can have a public Discord verification page, and the dashboard shows a list of verified members, which helps when someone says they paid but cannot see the channels. OpenStock can also post store events to a Discord webhook, including order.created, order.completed, order.refunded and product.created, so your team sees sales and refunds in a staff channel.
If you want your own bot branding, you can link custom Discord bots to API keys, with logs. The Free and Silver plans include one bot, and Gold and above allow multiple bots. Plan details are on the pricing page, and setup instructions are in the documentation.
If you are ready to try it, you can create a free OpenStock account and connect a test server before you sell to real members.
Frequently asked questions
Why does my bot fail to assign the paid role?
The most common cause is role hierarchy. A bot can only manage roles positioned below its own highest role, so move the bot's role above the roles you sell in Server Settings. If that is already correct, confirm the bot has the Manage Roles permission.
Do buyers need to link their Discord account to receive a role?
In practice, yes. The bot needs the buyer's Discord user ID, and OAuth2 linking is the reliable way to get it. Typing a username at checkout is error-prone and makes it hard to revoke access later.
Should I sell lifetime access or a subscription?
It depends on whether your value is ongoing. Lifetime access is simple and easy to explain, while recurring access fits communities that publish new content or provide regular interaction. Whichever you pick, state the duration clearly on the product page.
What should happen to a role after a chargeback?
Most sellers remove the role, and many also remove the member if the chargeback looks abusive. For ordinary refunds, removing only the role and leaving the person in your free area is usually a fairer default. Automating this based on payment status keeps it consistent.
Is selling Discord server access allowed?
You need to follow Discord's Terms of Service, Community Guidelines, and Developer Policy, and only sell content that is permitted on the platform. Check Discord's official documentation directly, since its policies and monetization programs can change.
Can I sell Discord roles alongside other products?
Yes. A role can be the whole product or a bonus attached to a license key, file, or course. On OpenStock, setting the join requirement to Optional lets buyers of other products choose whether to join your server.
Related guides
Delivery · Guides
Automated Digital Product Delivery: How It Works and Setup
Automated digital product delivery explained: keys, files, KeyAuth licenses and Discord roles, what happens after payment, out-of-stock handling and support.
9 min read
Guides · Payments
How to Sell Digital Products Online: A Practical Guide
Learn how to sell digital products online: choosing a product, pricing, storefronts, payment methods, instant delivery, fraud prevention and launching.
9 min read
Licensing · Delivery
How to Sell Software License Keys Online with Auto Delivery
How to sell software license keys online: key formats, stock management, automated license key delivery, KeyAuth licenses, durations and leak prevention.
9 min read
OpenStock