Generate Access Codes
Create redeemable access codes for free memberships, offline sales, giveaways, team access, or influencer campaigns.
By the end of this page, you'll know how to generate access codes in bulk, set expiry rules, export them, and understand the quota system.
An access code is a unique alphanumeric key that a user can redeem instead of paying through a payment gateway. Each code is tied to a specific subscription plan and grants one subscription when redeemed. Perfect for:
- Offline sales — you took a bank transfer, cash, or invoice-based payment, and now you issue a code.
- Giveaways — free access for community winners, contest participants, or loyal fans.
- Influencer gifting — send 50 codes to an influencer to distribute to their audience.
- Team access — grant employees or collaborators free memberships without going through billing.
- Access-code-only plans — some plans are designed to only be reachable via codes (see Subscription plans → Access codes only).
Navigating to Access Codes. Select a project first, then open Access Codes from the sidebar.
Prerequisites
Before you can generate codes, two things must be in place:
- A connected bot — codes are redeemed via Telegram, so the bot needs to exist. See Connect your bot.
- Access Codes enabled as a payment method — toggle it on from Payment Methods. No configuration fields needed, just enable it.
Generate codes
Click Generate New Access Codes at the top-right of the Access Codes page.
Pick a subscription plan
Every code is tied to one plan. When redeemed, the user gets that plan's subscription. Choose from the dropdown — only active plans are shown.
Quantity
How many unique codes to generate in this batch. Up to 1,000 per batch — generate multiple batches if you need more.
Every code is a freshly-generated string unique to your project — members can't guess or brute-force codes, and two projects never share code space.
Code expiry
This controls when the code itself becomes unredeemable — not the subscription duration. A subscription activated by a code follows the plan's normal billing cycle.
- No expiry — the code stays redeemable indefinitely.
- Presets — 1 day, 1 week, 1 month, 1 year.
- Custom — enter a custom number of days (e.g. "redeemable for 3 days only").
Unredeemed codes that pass their expiry are automatically deleted to free up your quota. Redeemed codes stay in your history for reporting.
Consent & review
Tick the consent checkbox to confirm you're generating codes you intend to distribute. Review the summary — including any fees if you're over your free quota (see below).
Click Generate Codes. The system queues a background job and the bot sends you the codes via Telegram as soon as they're ready.
How the codes arrive
You'll receive the batch directly in your Telegram chat with the bot. For small batches (under 25 codes), each code is sent as an individually forwardable message — convenient for gifting or pasting into Slack/DMs. For larger batches, the bot delivers a CSV file you can download and manage in Excel, Google Sheets, or Airtable.
The CSV export contains these columns per code:
| Column | What it holds |
|---|---|
| Access Code | The actual redeemable string |
| Plan Name | Which plan this code unlocks |
| Join Link | A deep-link to your bot: https://t.me/YourBot?start=code={code} |
| Expires At | When the code becomes invalid |
| Price | Face value of the plan |
| Currency | Currency of the plan |
| Started On | When the code was generated |
| Ends On | When the resulting subscription would expire (if the plan is not Lifetime) |
Paste the Join Link into email campaigns, landing pages, or influencer packs — tapping it drops the user into your bot with the code already applied, so they just confirm and get their access.
How subscribers redeem
From your subscriber's perspective:
The easiest redemption path — one tap.
- You share the Join Link (from the CSV) with them.
- They tap it. Telegram opens your bot and passes the code as a parameter.
- The bot greets them, confirms the plan, and after consent, activates the subscription.
Works for anyone who receives just the code (e.g. typed on a business card, printed flyer, forwarded in DM).
- They open your bot and send
/start. - The bot shows its normal plan list.
- They tap a dedicated Redeem a code option.
- They paste the code. The bot validates and activates the subscription.
View, filter, and audit codes
The Access Codes page lists every code you've generated, with filters for plan, redemption status, and expiry window. You can:
- Search by the code string itself (handy when a subscriber emails you a code that "doesn't work" — you can look it up).
- Filter by status — show only unredeemed codes, only redeemed, only expired, etc.
- Export CSV — download the filtered view for external reporting, including the columns shown above.
Quotas and fees
Every creator plan includes a free quota of access codes per billing cycle:
- Free: 5 codes per cycle
- Starter monthly: 200 codes per cycle
- Starter annually: 2,600 codes per cycle
- Growth monthly: 500 codes per cycle
- Growth annually: 6,500 codes per cycle
Going over quota
If you try to generate more than your quota allows:
- Per-code overage fee applies to codes beyond the free limit.
- The fee is included in your monthly MemberPass invoice (metered billing).
- You'll see the expected overage cost in the generation modal before you confirm.
Unused quota doesn't roll over. If your cycle gives you 200 codes and you only generate 30, the remaining 170 disappear at cycle-end. Plan bulk campaigns to land within a single cycle if you're on tight quotas.
Deleted codes free up quota
Unredeemed codes that expire are auto-deleted, and the deletion frees up quota for the current cycle. So a code you generated yesterday that expires today doesn't count against your allowance anymore.
Frequently asked
Related
- Payment methods — enable Access Codes as a payment method before generating.
- Subscription plans — the plans your codes unlock.
- Exporting data — CSV export details, including access code columns.
- Redeem an access code — the subscriber-side experience.