Install any skill in seconds. Free to start, no credit card required.
Get Started Free →US web checkout via the StoreKit External Purchase Link entitlement — currently 0% Apple commission (litigation ongoing), how to ship it safely, and how to architect for a commission flip so a future ruling is a config change, not a rewrite. Use when adding external purchase links, weighing web checkout vs IAP, or planning US-storefront pricing strategy.
.claude/skills/rshankras-external-purchases/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-10 | ✓→✓ | = Same ✓ | 13% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 82% | 0% |
| case-06 | ✓→✓ | = Same ✓ | -4% | 0% |
On the US storefront, apps may link out to a web checkout for digital goods using the StoreKit External Purchase Link entitlement — and as of mid-2026, court orders have Apple's commission on those purchases at 0%, with the fee case still moving through district court. This is the largest indie revenue unlock of the era, and it is reversible by a ruling — so the engineering rule is: ship it now, architect it so a commission can be flipped on later.
> Verify current state before relying on this: the entitlement terms, the commission rate, and > the litigation status have each changed more than once. Treat every number here as > "true as of 2026-07, re-check."
entitlements/terms; don't extrapolate from the US).
com.apple.developer.storekit.external-purchase-link + matchingInfo.plist declaration — a bare Link("Buy", …) without it is still a rejection (see app-store/rejection-handler §3.1.1).
ExternalPurchaseLink /disclosure sheet where required). Don't dark-pattern the IAP option away if you keep both.
taxes; Apple's merchant-of-record role no longer applies.
Design so that a future "Apple takes N% of external purchases initiated in-app" ruling changes a config value, not your codebase:
session (source=app, timestamp, storefront) — web-organic checkouts stay unstamped. If a commission returns, it applies to a knowable, logged subset.
CommissionPolicy (remote-configurable): rate, applies_to,effective_date. Report/accrue against it from day one — at 0% it's just a counter.
conversion drop through a web checkout (Apple's sheet, Safari hop, payment form) is real; whether 0% beats IAP's frictionless 85–70% is an empirical per-app question.
openURL("https://…/buy") calls through features — un-auditable, un-flippable.some US users convert better in-sheet).
| Situation | Lean | |---|---| | Subscriptions, US-heavy, ARPU high enough to absorb processor fees + your own support | Web checkout for new subs; keep IAP for the rest of world | | Impulse-priced consumables/unlocks | IAP — checkout friction eats more than 15–30% commission | | Existing subscriber base on IAP | Don't force-migrate; offer web at renewal decision points | | B2B/prosumer, invoicing needs | Web checkout regardless of commission math |
Status: entitlement present? · storefront scope correct (US-only gating)? ·
link-out service centralized? · CommissionPolicy flippable? · funnel analytics live?
Verdict + the one next step.app-store/rejection-handler (the non-entitled rejection pattern), generators/subscription-lifecycle, monetization (pricing), growth/store-growth-auditOther measured skills in the registry, with their headline benchmark lift.