appranker
  • 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

A white gift card tied with a large red ribbon bow sitting in a miniature shopping cart on an olive green background

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.

  1. In App Store Connect, open your app and click In-App Purchases in the sidebar.
  2. 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.
  3. 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.
  4. Choose customer eligibility, then the countries or regions.
  5. 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.
  6. 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.

Two hands with red nails typing on a smartphone keyboard

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.

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

Holiday gift certificates in envelopes with wax seals and pine branch illustrations

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.updates listener 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

Filed under

  • App promotion
  • App Store
  • Google Play
All articles