All posts
PRICING

iOS subscription offer codes: distribute targeted discounts without touching your public price

Offer codes let you hand-deliver discounted or free subscriptions to specific users — win-back campaigns, creator partnerships, support resolutions — without changing your App Store storefront price. Here is how to set them up, distribute them effectively, and avoid the gotchas.

By the AppsOps team · · 7 min read

Apple's storefront is a public window: every potential subscriber sees the same headline price. That makes targeted discounting tricky — you can't quietly offer a churned user 50% off without either running a public sale or building a custom paywall outside Apple's system. Offer codes solve exactly this problem. They let you hand-deliver a discounted or free subscription to a specific person, at a specific moment, without touching your public price point. Used well, they're one of the highest-ROI retention levers that most indie developers leave untouched.

What offer codes actually are (and what they aren't)

Apple introduced offer codes with iOS 14 in late 2020. An offer code grants its recipient a discounted — or entirely free — subscription period that you define in App Store Connect. The discount types mirror those available for introductory offers:

The key distinction from introductory offers is audience. Introductory offers are shown automatically to any eligible new subscriber who has not yet used them. Offer codes are given to specific people and redeemed on demand. That targeted relationship is what makes them useful for win-back campaigns, creator partnerships, and one-to-one customer support resolutions.

There are two code formats. One-time-use codes are Apple-generated alphanumeric strings — each works exactly once. Custom codes are human-readable words or short phrases you define (for example, COMEBACK26) that can be redeemed up to a cap you set. Structurally they behave identically on the user's device; the difference is logistics, branding, and abuse risk.

Offer codes are not the same as promotional offers, which require a server-side signature and target users who have already previously subscribed to your app. Offer codes target users who have never used their introductory offer for that subscription — effectively first-time subscribers or lapsed ones whose introductory offer eligibility has reset. Choosing the right mechanism for the right audience matters for both conversion and budget.

Setting up offer codes in App Store Connect

Configuration lives inside each individual subscription product, not at the app level. The path is: My Apps → [App] → In-App Purchases → [Subscription Group] → [Subscription SKU] → Subscription Offer Codes. Click "Create Offer Code" and fill in:

  1. Offer name — an internal label not visible to users
  2. Offer type — free trial, pay as you go, or pay up front
  3. Discount value and duration — e.g. seven days free, or .99 for three months
  4. Code type — one-time use or custom
  5. For custom codes: set the code text, redemption limit (1–10,000), and an expiry date
  6. For one-time codes: specify how many to generate (up to the quarterly cap)

Apple allows up to 10 active offer code campaigns simultaneously per subscription product. Each offer runs independently — a user who holds two different codes can only redeem one; the first redemption activates the subscription and the second will fail with an ineligibility error.

Feature One-time-use codes Custom codes
Format Apple-generated alphanumeric string Your chosen word or short phrase
Redemptions per code 1 (strictly single-use) Up to 10,000 per offer
Quarterly generation cap 150,000 codes per offer Not separately capped; redemption limit applies
Expiry 6 months after generation Date you choose (up to 6 months out)
Best suited for Bulk win-back campaigns, CSV export to CRM Creator partners, support tickets, live events
Shareable without abuse risk Yes — each code is unique and single-use No — public sharing can drain your redemption budget fast

Distribution strategies that actually convert

The mechanics are only half the picture. Where and when you distribute codes determines whether they drive meaningful growth or collect dust in a spreadsheet.

Win-back for churned subscribers

Research from RevenueCat and Phiture consistently identifies voluntary churn win-back as the highest-ROI use case for offer codes. When a subscriber cancels, send them a one-time code within 7–14 days of lapse — a free month or a heavily discounted quarter performs well. Timing is critical: after 30 days, re-engagement response rates drop sharply as the emotional momentum fades. Export your churned cohort from App Store Connect or your attribution platform, generate a matching batch of one-time codes, and map them 1:1 in your email tool. Because each code is tied to a single redemption, you're not exposed to budget leakage from sharing.

Creator and influencer partnerships

Custom codes with a per-creator name (e.g. PAULMAKESAPPS) give each partner a trackable redemption URL to share with their audience. Apple generates a universal redemption link for every custom code — you can also implement a deep link that lands the user directly in your in-app subscription flow, skipping search and navigation entirely. Phiture's mobile growth research suggests creator-driven codes convert significantly better when the code is shown on-screen or read aloud rather than buried in a video description. Set a conservative redemption limit per creator to cap your discount exposure before you issue the code.

Customer support resolutions

When a user emails about a billing issue, a bug that cut short their subscription period, or a poor onboarding experience, offering a complimentary extension via a one-time code is both operationally clean and goodwill-generating. No refund request needs to be filed; no App Store Connect escalation is required. A small pre-generated code bank — say, 50–100 codes per month for a typical indie app — gives your support team the authority to resolve issues immediately without any developer intervention.

Onboarding and time-delayed nudges

If your onboarding captures an email address, consider inserting a custom code in a time-delayed welcome sequence for users who install but don't convert within 48–72 hours. Be careful not to double-discount an audience that would have taken your standard free trial anyway — measure incremental lift carefully before scaling this approach. For a quantitative look at how trial length affects downstream conversion and retention, the trial length comparison post provides a useful baseline.

150,000 one-time-use codes you can generate per offer per quarter

Limits, gotchas, and things that will bite you

Offer codes are powerful but come with enough edge cases that cataloguing the pitfalls before you build a campaign around them is time well spent.

Users must not have an active subscription. A user with a current paid subscription cannot redeem an offer code. This catches developers off guard during win-back campaigns: if a user re-subscribed before the code arrived, the redemption fails with a generic ineligibility error. Your CRM or email automation must exclude anyone whose subscription status has flipped back to active in the interval between your export and your send.

Introductory offer eligibility is separate from offer code eligibility. A user who has already used their introductory offer for your subscription is still eligible to redeem an offer code — the two eligibility buckets are tracked independently by Apple. However, a user who has never used their introductory offer may find both paths available to them simultaneously. The grandfathering and eligibility post explains how Apple tracks subscription history per Apple ID in more detail.

Family Sharing does not extend to offer codes. An offer code is redeemed by a specific Apple ID. If your subscription supports Family Sharing, the discounted period applies only to the subscribing account — not their family group members.

Custom codes are shareable and that's a double-edged sword. If a creator posts their code in a public forum or screenshot, you could burn through a 10,000-redemption cap in hours. Set a conservative redemption limit per campaign and check daily redemption velocity in App Store Connect during any active creator campaign. You can deactivate a custom offer code at any time, which stops new redemptions immediately without affecting existing active subscriptions.

Minimum iOS version is 14. Offer code redemption requires iOS 14 or later. The universal URL Apple provides will prompt older devices to update first. In 2026 this affects a very small share of active devices — Apple's own figures show iOS 14 adoption above 95% across supported hardware — but it's worth noting for apps serving enterprise or education contexts where update cycles are managed by IT.

Reporting is aggregate, not individual. App Store Connect shows total redemption counts per offer and a time-series chart, but not which Apple ID redeemed which code. If you need user-level attribution — particularly for win-back ROI analysis — a third-party subscription analytics platform that ingests the subscription receipt and tags events by offer identifier is necessary for cohort-level measurement.

Measuring what actually matters

Basic redemption data is available in App Store Connect under My Apps → [App] → Subscriptions → Offer Codes. For deeper analysis, tools like RevenueCat surface the promotional_offer_id and offer_discount_type fields in their subscription event webhooks, letting you track 30-, 60-, and 90-day retention for offer code cohorts against organic sign-up cohorts.

The metric that matters is net revenue per redeemed code at 180 days, not just conversion-to-paid. A win-back campaign that converts 40% of lapsed subscribers but retains only 30% through their first renewal has a fundamentally different LTV profile than one with 20% conversion and 70% six-month retention. Build this cohort view before you scale any campaign — otherwise you may be trading long-term revenue for a flattering conversion rate on a dashboard.

Offer codes sit alongside — not instead of — your standard pricing strategy. Decisions about price points, introductory offer discounts, and subscription tier structure all affect how your offer codes land. For a comprehensive overview of how to structure iOS subscription pricing end to end, the AppsOps pricing tools page is a useful companion.

Sources and further reading

Share this post

Ready to put this into practice?

AppsOps is the first App Store ops dashboardPPP-fair pricing for 175 App Store territories, AI metadata localization in 39 languages, AI screenshot localization for 14 Apple device classes, and one-click App Store Connect API push — all from one dashboard, all for $19/month.

Try AppsOps free — no card →

Related reading