- App promotion
- App Store
- Google Play
App Store offer codes: how to create, share and redeem them in 2026
App Store offer codes step by step: one-time and custom codes, limits, redemption links, StoreKit code, why IAP promo codes ended, and Google Play promo codes.
AppRanker team12 min read

On this page
App Store offer codes are now the only way to give someone a free or discounted In-App Purchase on iOS. Since March 26, 2026, App Store Connect no longer lets you create promo codes for In-App Purchases, and Apple points developers to offer codes instead, which cover every purchase type: consumables, non-consumables, non-renewing subscriptions and auto-renewable subscriptions. Promo codes still exist, but only for a free download of the app itself.
If your launch plan, press outreach or win-back email used to rely on promo codes for a premium unlock, it needs offer codes now. This guide covers the code types and their limits, how to create offer codes for In-App Purchases and subscriptions, how people redeem them, the StoreKit code to support in-app redemption, the errors developers report, and the Google Play equivalent. Every limit comes from Apple's and Google's documentation, linked throughout.
Key takeaways
- Apple announced on October 29, 2025 that offer codes support all In-App Purchase types, and that new promo codes for In-App Purchases ended on March 26, 2026.
- There are one-time-use codes (unique, 500 to 25,000 per batch) and custom codes (a name like SPRING26 that many people can use, up to 25,000 redemptions per batch).
- Each app can create up to 1 million one-time-use codes and 1 million custom codes per quarter, with up to 10 active offers at a time.
- Codes can be redeemed through a redemption URL, in the App Store, or in your app through the system redemption sheet.
- Offers cannot be edited after you create them, so get eligibility and price right the first time.
Promo codes vs App Store offer codes in 2026
Apple's October 29, 2025 announcement says offer codes "build on the functionality of promo codes and provide improved configuration and customer eligibility options. As a result, starting March 26, 2026, you'll no longer be able to create promo codes for In-App Purchases in App Store Connect." Existing In-App Purchase promo codes can be redeemed until they expire, and "you can continue to use promo codes in order to provide people with a free download of your app."
| App promo codes | App Store offer codes | |
|---|---|---|
| What they give | A free download of the app | A free or discounted In-App Purchase or subscription |
| How many | Up to 100 per version of each platform | Up to 1 million one-time-use and 1 million custom codes per app per quarter |
| Validity | Four weeks from generation | Up to six months; custom codes can have no end date |
| Eligibility rules | None | By purchase history or subscription status |
The rating detail comes from Apple's promo code help page: customers who redeem an app promo code get the app "as if it were purchased", but "customers can't rate or review the app." Keep that in mind if you plan to hand codes to early users: they cannot add to your rating, and offering anything in exchange for a review is off limits either way.
App Store offer code types and limits
Apple's In-App Purchase offer code guide describes three kinds of codes:
| One-time-use codes | Custom codes | Sandbox codes | |
|---|---|---|---|
| Best for | Small or targeted campaigns: event attendees, contest winners, reviewers | Large campaigns, such as a newsletter or a partner, with one memorable code | Testing the redemption flow |
| Per batch | 500 to 25,000 codes | One code, up to 25,000 redemptions | 10 to 10,000 codes |
| Expiry | Required, up to six months | Optional, up to six months, or no end date | Optional, up to six months |
| Redeemed through | Redemption URL, App Store or your app | Redemption URL or your app | Sandbox account settings on a device |
Quarterly limits are shared across all of an app's In-App Purchases: up to 1 million one-time-use codes and up to 1 million custom codes. Each customer can redeem one code per offer. Codes expire at 12:00 a.m. Pacific Time on their expiry date, and new codes can take up to an hour to become redeemable.
Two limits catch people out. Unredeemed codes from a deactivated batch "don't return to the quarterly limit", so do not generate 25,000 codes for a campaign that needs 500. And the platform floor differs by product: Apple's StoreKit guide says offer codes for auto-renewable subscriptions work from iOS 14.2, while codes for consumables, non-consumables and non-renewing subscriptions need iOS 16.3 or later.
Who can use an offer: eligibility
Eligibility is set per offer, and it is where offer codes earn their keep over promo codes.
For an In-App Purchase, eligibility is based on purchase history in your app. You can pick one or more of: never purchased within your app, purchased in the last 30 days, or purchased more than 30 days ago. Selecting all three makes the offer available to everyone.
For an auto-renewable subscription, the subscription offer code guide uses subscription status instead:
- New subscribers: never subscribed to anything in the subscription group.
- Existing subscribers: currently subscribed, including in billing retry or a grace period while auto-renew is on.
- Expired subscribers: previously subscribed, with auto-renew off and the period ended. This is the win-back audience.
If the subscription has an introductory offer, you also choose whether a new subscriber gets the introductory offer first and then the code's offer, or the code's offer instead.
How to create App Store offer codes for an In-App Purchase
You need the Account Holder, Admin, App Manager or Marketing role.
- In App Store Connect, open your app and click In-App Purchases in the sidebar.
- Select the In-App Purchase, scroll to Offer Codes and click Create Offer. For a non-renewing subscription, go to Non-Renewing Subscriptions, click Manage, then Create.
- Enter a reference name. It must be unique in the app and cannot be changed later, and it is how you will find the offer's sales in reports, so name it after the campaign.
- Choose customer eligibility, then the countries or regions.
- Choose Paid Offer or Free Offer, then a price for a base country. App Store Connect suggests comparable prices for all 175 storefronts, which you can override.
- Review and click Confirm.
Then generate codes. For one-time-use codes, your app must be in the Ready for Distribution state; open the offer, click Create One-Time Use Codes, choose a quantity and an expiry date, and download the codes as a CSV file. For custom codes, click Create Custom Codes, enter a code of up to 64 characters with no special characters, a redemption limit of up to 25,000 and an expiry date or No End Date.
To run a custom code past 25,000 redemptions or past its expiry, create a new batch with the same code and a later date. Apple says the system redeems from the earliest non-expired batch first.
Offer codes for auto-renewable subscriptions
The flow starts from Subscriptions instead: choose the group and the subscription, then in Subscription Prices click the add button and Create Offer Codes. Subscription offers come in three types, Free, Pay as you go and Pay up front, with a duration. If you turn auto-renewal off for the offer, it must be free, which Apple calls a "commitment-free trial subscription": a good fit for a beta tester thank-you or a partner promotion where you do not want people charged by surprise.

Most people will never type a code if a tap will do. Share the redemption link instead. Photo: cottonbro studio / Pexels
How customers redeem App Store offer codes
There are three ways in, and you should plan the campaign around the easiest one.
- Redemption URL. On the offer's details page, copy the example link and add each code to the end. One-time-use code links are also included in the downloaded file. People who do not have your app are asked to download it first, so a redemption URL works as an install link too.
- The App Store. One-time-use codes can be typed into the Redeem Gift Card or Code page in App Store account settings. Custom codes cannot.
- Inside your app. If you show the system redemption sheet, both kinds of code can be entered in the app.
For email, social posts and press kits, use the URL. For a QR code on a printed card at an event, encode the URL. Reserve the typed code for places where people cannot click, such as a podcast read, and choose a custom code that is easy to say.
Add the offer code redemption sheet to your app
The in-app sheet is optional, but it is the only way a custom code can be redeemed without a link, and Apple is clear that you must not build your own: "Customers can only redeem these offers in your app through the redemption sheet; don't use a custom UI."
In SwiftUI, Apple's offerCodeRedemption documentation shows a button and a modifier (iOS 16 and later):
import SwiftUI
import StoreKit
struct RedeemButton: View {
@State private var showRedeemSheet = false
var body: some View {
Button("Redeem a code") { showRedeemSheet = true }
.offerCodeRedemption(isPresented: $showRedeemSheet) { result in
// The transaction itself arrives through Transaction.updates
}
}
}
In UIKit, call AppStore.presentOfferCodeRedeemSheet(in:) with your window scene. On iOS 27, Apple's guide also lists newer variants that take options: offerCodeRedemption(options:isPresented:onCompletion:) for SwiftUI and presentOfferCodeRedeemSheet(from:options:) for UIKit and AppKit.
Redemption can also happen outside your app, through a link or the App Store, so the important part is the transaction listener. Start it at launch, and check Transaction.currentEntitlements and Transaction.unfinished for anything that happened while the app was closed:
func listenForTransactions() -> Task<Void, Never> {
Task.detached {
for await update in Transaction.updates {
guard case .verified(let transaction) = update else { continue }
if transaction.offer?.type == .code {
// Redeemed with an offer code: log the campaign if you track it
}
await grantEntitlement(for: transaction)
await transaction.finish()
}
}
}
Transaction.offer is available from iOS 17.2. On your server, the decoded transaction from the App Store Server API has offerType set to 3 for an offer code, with the offer's identifier in offerIdentifier. App Store Server Notifications send SUBSCRIBED when a code starts or restarts a subscription, OFFER_REDEEMED when an active subscriber redeems one, and ONE_TIME_CHARGE for consumables, non-consumables and non-renewing subscriptions.
Where to use offer codes to promote your app
Offer codes are a promotion tool, not just a support tool. Campaigns that suit them:
- Press and creators. A one-time-use code for a premium unlock lets a reviewer see the whole app. Pair it with an app promo code if the app itself is paid.
- Launch-day thank-yous. Give beta testers a free month or a lifetime unlock; our guide to the TestFlight public link covers building that tester group.
- Newsletters and partners. A custom code per partner, such as one per podcast or newsletter, tells you which audience converts, because each offer's reference name shows up in your reports.
- Win-back. An offer limited to expired subscribers, sent by email, is often cheaper than paying to acquire a new user.
- Seasonal campaigns. A holiday code fits the gift-giving weeks; our holiday app marketing plan puts offer codes alongside In-App Events and price promotions.
Our playbook on how to promote your app for free covers the channels where codes travel best. And keep codes out of anything that looks like buying ratings: Apple's App Review Guidelines say developers who try to "inflate your chart rankings with paid, incentivized, filtered, or fake feedback" may be removed from the program.

A custom code works like a gift certificate: one memorable name, redeemable many times. Photo: Asya Shenri / Pexels
Troubleshooting App Store offer codes
Most problems developers report fall into a few patterns:
- "This promotional offer is not available." In an April 2026 forum thread, several developers saw this for free one-time-use codes on a non-consumable that was approved and live. Nothing in the configuration changed; the codes simply started working, after about 48 hours for one developer and 72 for another. Generate codes a few days before a campaign, and redeem one yourself before you send the rest.
- "The code entered is not valid" in the sandbox. A forum thread reports custom codes failing when typed into the in-app sheet in the sandbox, while the redemption URL for the same code worked. Test both paths.
- The customer's country is not in the offer. Check the regions you selected; an offer is invisible outside them.
- The customer is not eligible. An existing subscriber cannot use a new-subscribers-only offer. Since offers cannot be edited, create a new offer with the right eligibility.
- Codes not ready. New codes can take up to an hour to become redeemable.
The Google Play equivalent: promo codes
Google Play still calls them promo codes. Google's promo code help and in-app promotions guide set these rules:
- Codes can give a free paid app, a one-time product or a subscription free trial. Subscription codes give trials of 3 to 90 days, not free subscriptions, and the user needs a payment method because the subscription renews afterwards.
- One-time-use codes can be redeemed on Google Play or in your app. Custom codes are for subscriptions only, can be redeemed only in your app, and only by users who have not subscribed before, with a redemption limit you choose between 2,000 and 99,999.
- Quotas: up to 500 codes per quarter across all non-subscription promotions in an app, and up to 10,000 one-time-use codes per quarter for each subscription product. Unused codes do not carry over.
- A promotion can run for up to one year.
- The redemption link is
https://play.google.com/redeem?code=followed by the code.
Codes are created under Monetize with Play > Promo codes in Play Console. Because redemptions can happen in the Play Store, your app has to pick up purchases made outside it, through the Play Billing Library's purchase listener and a purchase query when the app starts.
App Store offer codes checklist
- Any old In-App Purchase promo codes in your plans replaced with offer codes.
- Offer created with a campaign-specific reference name.
- Eligibility and regions checked before confirming, since offers cannot be edited.
- One-time-use codes sized to the campaign, not the maximum.
- Redemption URL tested on a real device a few days before sending.
- Redemption sheet in the app, if you use custom codes.
-
Transaction.updateslistener running at launch. - Google Play promo codes set up for the Android version.
Codes bring people who already know your app. To reach people who do not, you also need visibility: you can paste your App Store or Google Play link on the AppRanker home page to put your app on a pay-to-rank leaderboard where the order is a plain sort on what each listing has paid, and every row links straight to your store page.
FAQ
Can I still create promo codes on the App Store in 2026?
Yes, for free downloads of your app: up to 100 per version of each platform, each valid for four weeks. You can no longer create promo codes for In-App Purchases; Apple stopped that on March 26, 2026, and offer codes replace them.
How many App Store offer codes can I create?
Up to 1 million one-time-use codes and 1 million custom codes per app per quarter, shared across In-App Purchases, with up to 10 active offers at a time. One-time-use batches are 500 to 25,000 codes.
Do App Store offer codes expire?
One-time-use codes must expire within six months. Custom codes can have an expiry of up to six months or no end date. Expiry dates cannot be edited.
Can I give away a lifetime unlock with an offer code?
Yes. Offer codes now work for non-consumable In-App Purchases, as a free or paid offer. Customers need iOS 16.3 or later to redeem codes for non-subscription products.
How do people redeem an offer code if they do not have my app?
Send them the redemption URL. People who have not installed your app are asked to download it as part of the redemption.
What is the Google Play equivalent of App Store offer codes?
Google Play promo codes. They cover paid apps, one-time products and subscription free trials, with up to 500 non-subscription codes per quarter and 10,000 one-time-use codes per quarter for each subscription.
Image credits
- Cover, a gift card with a red bow in a miniature shopping cart: photo by Sora Shimazaki on Pexels, Pexels License. Cropped to 1200x630.
- Hands typing on a smartphone: photo by cottonbro studio on Pexels, Pexels License. Resized.
- Gift certificates in envelopes: photo by Asya Shenri on Pexels, Pexels License. Cropped to landscape and resized.


