App Store win-back and promotional offers: how to bring subscribers back
How Apple's win-back and promotional offers work for lapsed iOS subscribers: eligibility, limits, direct links, server checks and a simple win-back plan.
When an iOS subscription lapses, you cannot just email a coupon and charge a card. Apple owns the payment, so any discount has to be an offer Apple knows about. Apple gives you two tools built for this: win-back offers, made for people whose subscription has already ended, and promotional offers, which work for both lapsed and current subscribers.
This guide explains how each works, which one to use when, and how to build a simple win-back plan around them. It sticks to Apple’s documentation: Supporting win-back offers in your app, App Store Connect Help on setting up win-back offers and promotional offers, and Implementing promotional offers in your app (all accessed November 2026).
Win-back offers
Apple defines a win-back offer as a free or discounted offer for customers whose subscription is “churned”: its expiration date is in the past and it will not auto-renew. You set them up in App Store Connect, and Apple decides who is eligible based on criteria you choose.
Eligibility you can set
| Criterion | What it means | Allowed values |
|---|---|---|
| Minimum Paid Duration | How long the customer must have paid for the subscription | 1 to 24 months, or 3, 4 or 5 years |
| Time Since Last Subscribed | How long ago the subscription ended | A range between 1 and 24 months; both ends required |
| Wait Between Offers | How long after a win-back offer ends before the same customer can redeem it again | 2 to 24 months, optional |
Offers are set per subscription product, not per group. Apple’s help page notes that customers are eligible only for their most recently lapsed product in each group, so you need an offer on each product you want to cover.
Limits and rules
From the App Store Connect help page:
- The subscription must be approved by App Review before you can create a win-back offer.
- Up to 350 win-back offers per subscription, and at most 5 per storefront per subscription at a time.
- Offer types: pay as you go, pay up front, or free.
- The earliest start is one day after creation, and an offer must run at least 3 days.
- You cannot change the price, reference name or offer identifier after creating the offer.
- When several offers overlap, Apple picks one to show based on price, duration and other factors such as paid tenure. A “High Priority” setting tells Apple which offers matter most to you.
Where customers see them
This is the main advantage of win-back offers: Apple shows them for you. Once live, an offer appears on the customer’s Manage Subscriptions page (iOS 14.3 and later) and in your app through a StoreKit win-back offer sheet (iOS 18 and later). If you promote the offer with an approved subscription image, it can also appear on your product page and in App Store recommendations (iOS 18 and later).
App Store Connect also creates a direct link in the form https://apps.apple.com/win-back/ followed by the offer’s Apple ID. You can send it through your own channels, such as email.
Check eligibility before you send a link
Apple’s StoreKit guide is explicit: before sending a direct link, call Get All Subscription Statuses from your server and read eligibleWinBackOfferIds in the renewal info. Send the link only to eligible customers. If the array has several IDs, Apple orders them with the best offer first.
Handle redemptions outside your app
Customers can redeem a win-back offer on the App Store or in their account settings, not only in your app. With Streamlined Purchasing on (the default), the purchase completes outside your app and your app receives the transaction later, through Transaction.updates while running or Transaction.all and currentEntitlements at launch. Your app must listen for these at launch, unlock access and finish the transaction. With Streamlined Purchasing off, your app receives a PurchaseIntent instead and completes the purchase itself, which is useful if you need the customer to log in first.
On your server, a redeemed win-back offer shows up as a SUBSCRIBED notification with subtype RESUBSCRIBE (per Apple’s notificationType table), and the transaction has an offerType of 4.
Promotional offers
Promotional offers are older and more flexible. Apple’s StoreKit guide says they “can be effective in winning back lapsed subscribers or retaining current subscribers.” Anyone with an existing or expired subscription in your app is eligible as far as Apple is concerned; any extra criteria are yours to decide in your own code.
The trade-offs:
- You do the targeting. Apple does not show these offers for you. Your app decides who sees which offer.
- Each offer is signed by your server. The signature uses a key generated in App Store Connect, is time-sensitive and can be redeemed once.
- Redemption happens in your app. Apple says you can present offers through channels such as email, “but they must interact with the offer inside your app’s UI.”
- Limits. Up to 10 active promotional offers per subscription; they apply to all storefronts where the subscription is sold, with optional per-storefront prices. After creation, only the price can be edited.
Redeeming an introductory offer does not affect eligibility for a promotional offer.
Which one to use
| Situation | Better fit |
|---|---|
| Lapsed subscriber who no longer opens your app | Win-back offer: Apple shows it in account settings, and you can email the direct link |
| Lapsed subscriber who still opens the free tier of your app | Either; a promotional offer lets you choose the exact moment and message |
| Subscriber who turned off auto-renew but is still active | Promotional offer (a win-back offer requires the subscription to have expired) |
| You need fine-grained rules (by usage, by cancel reason) | Promotional offer, with the logic on your server |
Many apps use both: promotional offers for customers still in the app, win-back offers as the safety net Apple displays everywhere else.
A practical win-back plan
- Know why they left. A notification with
EXPIREDand subtypeVOLUNTARYmeans the customer turned off renewal;BILLING_RETRYmeans billing failed for good;PRICE_INCREASEmeans they did not accept a price increase. Each needs a different message. If you ask for a reason when customers manage their subscription in your app, keep it too. - Wait a little. A cancellation is a decision; an offer the next morning can feel pushy. Leave some time before the first message. Your Time Since Last Subscribed range should match that plan.
- Match the offer to the reason. Price-related reasons get a discount; “not using it enough” gets a reminder of what changed, maybe a shorter free period; a billing failure needs no discount at all, just a way back in.
- Use channels you actually have. App Store notifications do not include the customer’s email address. You can only email people who gave you their address in your own account system, and you need the
appAccountTokenyou set at purchase to connect their App Store transaction to that account. - Check eligibility at send time. Call Get All Subscription Statuses right before sending a win-back link, not when you schedule the campaign.
- Measure redemptions properly. Count
SUBSCRIBED/RESUBSCRIBEnotifications whose transaction carries your offer identifier, and compare with a group that received no offer. Then look again a few months later: a win-back that churns at the first full-price renewal is worth less than it looks.
Common mistakes
- Not handling out-of-app redemptions, so the customer pays and the app does not unlock.
- Sending direct links without checking eligibility, which leads to an “offer not available” experience.
- Offering the same discount to everyone, including customers who left because of a failed card.
- Forgetting the image if you want the offer promoted on the App Store.
Doing this with NoChurn
NoChurn reads your App Store Server Notifications, so it knows who lapsed, when and why: voluntary, billing, or price increase. It can send win-back emails at day 30, 60 and 90 based on the cancel reason, to customers whose email you have shared from your app, and include your win-back direct link or point them back to your app for a promotional offer. Apple still decides eligibility, shows the offer and takes the payment. Details on NoChurn + App Store.