<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sabr Systems</title>
    <description>The latest articles on DEV Community by Sabr Systems (@sabrsystems).</description>
    <link>https://dev.to/sabrsystems</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4213359%2Fca56ba70-a9e7-40cf-9d0a-795200505dd6.png</url>
      <title>DEV Community: Sabr Systems</title>
      <link>https://dev.to/sabrsystems</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sabrsystems"/>
    <language>en</language>
    <item>
      <title>Apple retired in-app purchase promo codes: what to do now for creator programs</title>
      <dc:creator>Sabr Systems</dc:creator>
      <pubDate>Mon, 02 Nov 2026 16:38:56 +0000</pubDate>
      <link>https://dev.to/sabrsystems/apple-retired-in-app-purchase-promo-codes-what-to-do-now-for-creator-programs-12c0</link>
      <guid>https://dev.to/sabrsystems/apple-retired-in-app-purchase-promo-codes-what-to-do-now-for-creator-programs-12c0</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://proofline.link/blog/apple-retired-in-app-purchase-promo-codes" rel="noopener noreferrer"&gt;proofline.link/blog/apple-retired-in-app-purchase-promo-codes&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you ran a creator program on promo codes, the spreadsheet with “SARAH = 50 codes” stopped working this spring. On 26 March 2026, Apple stopped letting developers create new promo codes for in-app purchases. &lt;strong&gt;Offer codes&lt;/strong&gt; are now the only code path, and they cover every in-app purchase type.&lt;/p&gt;

&lt;p&gt;That sounds like a loss. For creator and affiliate programs on iOS, it is actually an upgrade — if you set it up right.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Promo codes for in-app purchases:&lt;/strong&gt; No new ones can be created. They were free-access codes generated in small batches, with no way to know which creator a redemption came from unless you tracked batches by hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offer codes:&lt;/strong&gt; A code attached to an offer (a discount or a free trial period) on your in-app purchases and subscriptions. They now cover subscriptions and all other in-app purchase types.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why offer codes are better for creator programs
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The App Store tells you which code was used.&lt;/strong&gt; When someone redeems an offer code, Apple’s transaction confirms it directly: the &lt;code&gt;offerType&lt;/code&gt; field marks it as an offer code, and &lt;code&gt;offerIdentifier&lt;/code&gt; identifies the offer. RevenueCat also passes an &lt;code&gt;offer_code&lt;/code&gt; field in its webhooks. That is store-verified attribution rather than a probabilistic guess.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom codes work per creator.&lt;/strong&gt; A custom code like &lt;code&gt;SARAH20&lt;/code&gt; can be shared publicly in a TikTok caption, Instagram Reel, YouTube description, or podcast read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct App Store redemption links work inside TikTok and Instagram.&lt;/strong&gt; Universal links frequently break inside TikTok and Instagram in-app browsers. However, Apple’s offer-code redemption URL opens the App Store directly with the creator’s code applied:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://apps.apple.com/redeem?ctx=offercodes&amp;amp;id={appStoreId}&amp;amp;code={code}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Redeeming through this link also installs the app. That means the subscription conversion happens in the App Store first, with Apple recording which creator’s code was used — with zero IDFA tracking or ATT prompts required.&lt;/p&gt;

&lt;h2&gt;
  
  
  The limits to plan around
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Limit&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom code length&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Up to 64 characters, letters and digits only, and cannot be edited after creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Codes per app&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1,000,000 per quarter, shared across all your in-app purchases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Per customer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One redemption per offer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Expiry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One-time codes last up to 6 months; custom codes can run without an end date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;An offer is required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Every code needs a discount or a free period&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  A 7-step plan for subscription app creator programs
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;List your creators and where they post.&lt;/strong&gt; Anyone who shares a code publicly needs a custom code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create an offer per subscription you promote&lt;/strong&gt; (e.g., “Creator: 20% off for 3 months”). Model the discount cost — it usually lifts conversion enough to pay for itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give each creator a custom code on that offer&lt;/strong&gt; (&lt;code&gt;SARAH20&lt;/code&gt;, &lt;code&gt;LEO15&lt;/code&gt;). Validate every code before creating it since Apple doesn’t allow edits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set redemption limits with headroom&lt;/strong&gt; and reissue the same code when it runs low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Put the App Store redemption link behind every creator smart link&lt;/strong&gt;, so fans tapping from TikTok and Instagram land directly in the App Store with the code pre-applied.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record redemptions as the creator’s sales&lt;/strong&gt; from Apple’s App Store Server Notifications or RevenueCat’s &lt;code&gt;offer_code&lt;/code&gt; webhook field, and tie renewals to the user via &lt;code&gt;appAccountToken&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep in-app code entry on your paywall&lt;/strong&gt; for podcast and video mentions where viewers type the code directly.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Want this automated with receipts and 0% revenue cut?
&lt;/h2&gt;

&lt;p&gt;We built &lt;strong&gt;&lt;a href="https://proofline.link" rel="noopener noreferrer"&gt;Proofline&lt;/a&gt;&lt;/strong&gt; so subscription apps on iOS and Android can pay creators for verified subscribers, not views:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smart links + Apple Offer Codes + Google Play Install Referrer&lt;/strong&gt; that survive TikTok and Instagram in-app browsers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-click webhook setup&lt;/strong&gt; with RevenueCat, App Store Server Notifications, Google Play RTDN, Stripe, Superwall, Adapty, and Apphud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cryptographic-grade receipts (&lt;code&gt;Tier V · Verified&lt;/code&gt;)&lt;/strong&gt; for every payout, with automatic 30-day refund holds and net-revenue commission math.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flat pricing ($0 free up to $1k/mo creator sales, $79/mo Growth up to $15k/mo)&lt;/strong&gt; — never a percentage cut of your affiliate revenue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try the free Offer Code Planner or start free at &lt;strong&gt;&lt;a href="https://proofline.link" rel="noopener noreferrer"&gt;https://proofline.link&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>mobile</category>
      <category>saas</category>
      <category>indiehackers</category>
    </item>
  </channel>
</rss>
