Skip to content
Proofline

Guides

Set up Apple offer codes for creators

Apple stopped new in-app purchase promo codes on 26 March 2026. Offer codes replace them and now cover every in-app purchase type. A redeemed offer code is the strongest creator signal on iOS (VVerified): Apple itself records which code was used.

1. Create an offer

In App Store Connect, open your subscription, then Offer Codes, and create an offer such as “Creator: 20% off for 3 months” or a free trial. A code always needs an offer: a discount or a free period. Model what the discount costs you; it usually raises conversion.

2. Create one custom code per creator

For each creator, add a custom code to the offer, such as SARAH20.

  • Up to 64 characters, letters and digits only.
  • Codes can’t be edited after creation, so check spelling first. The free offer-code planner validates a whole list.
  • Each issue has a redemption limit. Size it to the creator’s expected redemptions with headroom, and reissue the same code when it runs low.
  • Apple allows up to 1,000,000 codes per app per quarter, shared across all in-app purchases.
  • One-time codes last up to six months; custom codes can run without an end date.

3. Record the code in Proofline

For now, add each code to the creator in Proofline (or POST /api/v1/codes) with:

  • store: "apple", the code, and the storeOfferRef (the offer identifier Apple reports),
  • an offerLabel such as “20% off for 3 months”, the redemptionLimit and expiresAt.

Automated creation through the App Store Connect API follows; you’ll connect an API key with permission to manage in-app purchases.

4. Use the redemption link

The creator’s landing page leads with Apple’s redemption link in iOS in-app browsers:

https://apps.apple.com/redeem?ctx=offercodes&id={appStoreId}&code={code}

The App Store opens with the code applied; the user subscribes, and the app installs as part of redemption. Apple reports the purchase with offer type 3 (offer code), directly or through RevenueCat’s offer_code field, and Proofline records a V1 signal, even if the user never opens the app.

5. Tie renewals to the user

On first open, call Proofline.identify. Proofline then sets the app account token on the original transaction (Apple’s Set App Account Token endpoint), so renewals, upgrades and refunds carry your user’s ID.

If you don’t want to discount

Codes need an offer. If you won’t discount at all, use smart links plus in-app code entry (UUser-asserted): the user types the creator’s code on your paywall.