Skip to main content

Send discount codes with Membership Offers

Create a campaign, send a code, and see who redeemed it. Includes 100% free codes and the disable rules.

Written by Firstory

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

  1. Go to Monetization > Membership > Membership Offers, then click Create campaign.

  2. 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.

  3. 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

Did this answer your question?