How Verification Works
What members see when they verify, which Discord permissions are requested, which checks run, and what happens afterwards.
Members verify by authorizing your server's own Discord bot on Discord's official OAuth2 screen. RestoreCord then runs your security checks, gives the right roles and saves the authorization so you can add the member back later. Members never share their Discord password or login with RestoreCord.
What members see
Open the verify link
The member clicks the Verify button in your verification channel, or opens a verify link you shared. The button posted by /setup goes straight to Discord's authorization screen and skips the web page.
See the verify page
The page shows your server icon, name, description and socials, plus optional review and product carousels. A green badge reading “Your IP address will NOT be logged or saved.” appears when IP Logging is off. Servers verified by RestoreCord show a yellow verified badge.
Authorize on Discord
Clicking Verify opens Discord's authorization screen for your bot. The member reviews the requested permissions and clicks Authorize. If your server uses a captcha, the member is brought back to the verify page after authorizing, solves it, and is then sent on to Discord again automatically.
Checks run
RestoreCord runs the checks you have turned on, such as firewall rules, VPN and alt-account detection, and a minimum account age.
Success
The member gets their roles and is sent to your Redirect After Verify URL, or back to the verify page, which shows “Success — You have successfully verified in <server>!”
If something fails, the verify page shows “Error: <code>” with a message. Look up the code in Verification Errors.
Page variants
A few server settings change what the verify page shows before the member reaches Discord.
NSFW servers
Servers marked as NSFW Server first ask “Are you 18 years of age or older?”. Answering No leaves the page.
Password-locked servers
When the server requires a verification password, the page shows Enter Password instead of Verify. Members get the password from the server's staff. Passwords are set up in the firewall.
Private servers
A Private Server is hidden from Discovery and all public listings, and its verify page has no Verify button.
Go to Security › Private Server
The Discord authorization screen
Discord shows your bot's name and avatar, not “RestoreCord”, and lists the permissions (OAuth2 scopes) being requested. Which scopes appear depends on your settings:
| Permission (scope) | What it allows | Requested when | Setting |
|---|---|---|---|
identify | Your Discord username, avatar and ID | Always | — |
guilds.join | Adding you to Discord servers through this bot | Join Servers For User is on | Go to Security › Join Servers For User |
email | Your email address | Access Email is on, or a firewall rule checks email domains | Go to Security › Access Email |
guilds | The list of servers you are in | View Server Memberships is on, or a firewall rule checks server membership | Go to Security › View Server Memberships |
guilds.join is what lets you pull members back later. If Join Servers For User is off, members who verify cannot be added back to your server.
If a member unticks the email permission when it is required, verification fails with error 990048. Clicking Cancel instead of Authorize gives error 990049. In both cases the member can simply verify again.
Checks that run
After the member authorizes, RestoreCord checks the attempt against your security settings, in this order. The first check that fails stops verification and shows its error code.
| Check | What it does | Member sees |
|---|---|---|
| Bypass | A member with an active bypass from staff skips every check below | — |
| Firewall rules | Your custom rules: users, roles, IPs, countries, ASNs, email domains or server membership | 990031 or 990046 |
| Protections | Block VPNs & Proxies, Block Wireless Connections and Block Alt Accounts | 990044, 990043 or 990045 |
| Password | Enforce Passwords, or a rule that requires a password | 990032 / 990033 |
| Captcha | A captcha to stop automated sign-ups; members already in the server skip it | A captcha to solve |
| Alt detection | Another member of this server verified from the same network or browser | 990045 |
| Minimum account age | Blocks Discord accounts younger than the number of days you set | 990035 |
Each check is configured on the server's Security tab or in the Firewall. For what each error means and how to fix it, see Verification Errors.
Go to Servers › Manage › Security
Only the server's staff can unblock a member or give them a bypass. If you are blocked as a member, contact the server's staff; RestoreCord support cannot change another server's settings.
After verifying
When every check passes:
-
Added to the server: if Add verified members is on, the bot adds the member to your Discord server even if they had not joined yet.
-
Roles: the On Verify Action runs: the verified role is given, the unverified role is removed, or both. Roles from matching firewall rules or the password used are added too.
-
Other servers: with Multi-server pulling, the member is also added to your other servers, with their own role actions.
-
Saved for recovery: the member is saved so you can pull them back later. Any pending reminder or auto kick is cancelled.
-
Logs: a verified log is posted to your webhook logs channel.
-
DM: the bot sends the member a “verified” message.
-
Redirect: the member is sent to the Redirect After Verify URL, or back to the verify page with a success message.
With Authorize Only (Enterprise), verification only saves the member. No roles are changed, no webhook log is sent and nothing else happens.
Verify link formats
All of these open the same verify page:
| Format | Example |
|---|---|
| Server name | https://restorecord.com/verify/<server name> |
| Discord server ID | https://restorecord.com/verify/<Discord server ID> |
| Tracking code (12 characters) | https://restorecord.com/verify/<tracking code> |
| Custom domain | https://verify.example.com/verify/<server name> |
The server-name link uses your RestoreCord Server Name, so renaming the server changes that link.
Go to General › RestoreCord Server Name
Tracking links
Tracking links give each promotion its own verify link, so you can count how many members verified through each one.
Every tracking link comes in three formats, and all of them count towards the link:
- Direct link (Discord): goes straight to Discord's authorization screen and skips your verify page.
- Verify link (code): your verify page, with only the link code in the URL.
- Verify link (server name): your verify page, with the server name and link code in the URL.
Deleting a tracking link stops its counting; members who already verified through it stay in your server. You can filter the Members page by tracking link.
Custom domains
Every link above also works on your bot's custom domain, either a free RestoreCord domain or one you own. After switching domains, add the new redirect URL in the Discord Developer Portal and run /setup to republish the verification message. Until the redirect is added, members on the new domain get error 10005.
Why the custom bot matters
Members authorize your bot, not a shared RestoreCord bot. That has three consequences:
- Members see your bot's name on Discord's screen, never “RestoreCord”.
- Members can only be pulled back by the bot they verified with. If that bot is deleted or banned by Discord, or its token cannot be recovered, its members cannot be pulled.
- Deleting the bot in RestoreCord also deletes its members and servers.
Own the bot with a dedicated Discord account that has 2FA on and never joins servers. See Custom Bot for setup.
Revoking access
Members can stop a server from adding them back at any time, either by clicking Unauthorize for that server at restorecord.com/mydata, or by removing the bot under Discord → User Settings → Authorized Apps. A member who revokes access cannot be pulled until they verify again. See Member Privacy for what servers can see and how to remove your data.
Still stuck? Contact support.