Do you want to work with a KOL, run ads to get new subscribers, or give your staff free access? Membership Offers lets you send discount codes yourself. You do not need to ask support to set anything up.
A discount code has two layers:
• A campaign holds the deal: how much off, for how many cycles, and which membership tiers it covers
• A discount code is the string your listener types. One campaign can hold many codes, and each code counts its own uses
So "20% off for the first three cycles" is the campaign. KOL20 and PODCAST20 are two codes under that campaign, and you can see how many subscriptions each one brought in.
Before you start
You can use this feature if your show has membership enabled. It works on every creator plan, including the free plan.
Discount codes do not apply in these four cases:
Shows that charge in USD. Discount codes support the TapPay channel only. This page shows an explanation and has nothing to set up. We will tell you when the Stripe channel is supported
Apple Podcasts Subscriptions. Apple sets its own prices, so a discount code has no effect
Free membership tiers. There is no charge to discount
Donations (fixed and custom amounts). Discount codes apply to subscription plans only
Send your first code in three steps
Go to Monetization > Membership > Membership Offers, then click Create campaign.
Enter a campaign name, then choose the discount type and the duration:
Discount type: a fixed amount (NT$100 off) or a percentage (20% off)
Duration: the first cycle only, the first N cycles, or every cycle
Only you can see the campaign name. Your listener sees the discount itself at checkout.
Keep Create the first code too selected. Leave the code field empty and the platform draws a string for you, for example
K7M2-9XQP. Submit the form, then expand the campaign in the list to see how many times the code was used.
To set up the campaign now and send codes later, clear that checkbox. A campaign with no codes is a valid state, and you can add codes at any time.
A cycle is one billing period, not one month
This is the rule readers get wrong most often. The duration counts payments:
The first 3 cycles on a monthly plan is three months
The first 3 cycles on a yearly plan is three years
On a yearly plan, the first 3 cycles discounts three full years. To keep the cost down, use the first cycle only on yearly plans.
Put the code in the link
Add ?code= and your discount code to the checkout link. The code is then filled in and applied automatically:
https://your-show.firstory.me/checkout?planId=YOUR_PLAN_ID&code=KOL20
If your listener must sign in first, the code is kept through sign-in.
This is the best way to work with a KOL or an ad channel. Send a different code to each channel, then export the usage record to see how many subscriptions each channel brought in. Wrap the link in a short URL to track the clicks.
What you cannot change later
After you create a campaign, you can only rename it or disable it. You cannot change the discount, the duration, the tiers, or the redemption window. To run a different discount, create a new campaign.
After you send a code out, you cannot change its string. To use a different string, add a new code and disable the old one. You can only change the redemption limit and the on/off state.
Some more rules:
Codes are stored in upper case, and your listener can type them in any case. One show can hold only one active code per string, across all of its campaigns
A fixed amount cannot equal or exceed the plan price. To give free access, use a percentage of 100
A percentage below 100 is also refused if it floors the charge to 0, for example 99% off an NT$60 plan. Only 100% can charge nothing
The charge is rounded down. 33% off NT$101 charges 67, not 68
The service fee is calculated on the charged amount, not on the list price. A charge of 0 has a fee of 0
One order takes one discount code. Codes do not stack
An existing member cannot use a code. A code is redeemed at a new subscription checkout only, so a listener who already subscribes to your show is refused
Three levels of disable
All three share one rule: a member who already redeemed a code is not affected, and their discount runs for its full duration.
Disable the campaign. No code under it, in any batch, can be redeemed. You can enable it again, and each code keeps its own state and limit
Disable a batch. Only the unredeemed codes in that batch stop working. Other codes under the same campaign are not affected
Disable one code. Only that code stops working
Disabling does not affect exports. You can always download which codes you sent out.
To bring a used-up code back, raise its redemption limit. Three cases cannot be brought back:
The campaign window has ended. You cannot change the window, so create a new campaign to run the discount again
The campaign is disabled. Enable it and the codes work again
The campaign window has not started. No code works before that date
Check your campaigns after you change a plan price
You cannot change a discount, but you can change a plan price. If you add a cheaper plan under a covered tier after the campaign goes live, every redemption on that plan is refused.
The campaign list marks this with a warning and names each refused plan. Because the discount cannot be changed, either raise the price of those plans or create a new campaign with a smaller discount.
Give free access with a 100% code
To give free membership to staff, a partner, or a reviewer, send a code with a percentage of 100 and let them complete checkout themselves. This is faster than a manual grant by support, and it sets up their access correctly.
The two durations behave very differently. Read this before you create the code:
100% + every cycle is free forever. It needs no credit card, it issues no invoice, and you cannot take it back automatically. You must select a confirmation checkbox to create it
100% + the first cycle only, or the first N cycles is free for that duration and then returns to the list price. Because you charge later, checkout still asks for a credit card
Three things to know about a free-forever code
• To take the access back, ask support to cancel that member's subscription. Disabling the code only stops new redemptions
• That subscription cannot change plan. It can only be cancelled
• These members count in your subscriber total but bring no revenue, so the two figures do not move together
Let the platform draw the code string. Do not write your own guessable string such as FREE or STAFF.
Sending to many people? Use a batch
To send one code per person, for example to a newsletter list of several thousand, use Generate a batch or Import a CSV. One batch holds up to 20,000 codes, and each code can be used once. For the full flow, from generating codes to matching them to email addresses and exporting the usage record, read Send thousands of discount codes at once.
Related articles
Use a discount code to subscribe to a show (send this to members who ask)