Restoring a purchase can require proof a subscription skips
October 28, 2026
A subscription and a one-time purchase get restored on a new device through two completely different checks. A subscription's check is a question about right now: is this account currently paying? A one-time purchase's check is a question about the past: did this specific transaction ever happen? The second question is much harder to answer automatically, and that difference is why restoring a purchase sometimes demands a receipt that a subscription never asks for.
A subscription checks now. A purchase checks once.
A subscription's entitlement is a live, continuously recomputed fact. At any given moment, a server somewhere can answer "is this account inside a paid period" with a simple yes or no, because that's the same check the billing system runs anyway to decide whether to keep access on. Install the app on a new phone, sign into the same account, and the check re-runs instantly. There's no history to consult - only a current state.
A one-time purchase has no current state to check. It happened once, at a specific time, and then nothing further occurred that any system is obligated to keep re-verifying. Restoring it means asking "did this transaction occur," which is a lookup against a historical record rather than a live status check. Whether that lookup succeeds depends entirely on whether the record is still attached to whatever you're asking it from.
Why the automatic version sometimes fails
App stores do keep a purchase ledger tied to your account, and the "restore purchases" button in most apps queries exactly that ledger. When it works, it feels identical to a subscription restoring: sign in, tap restore, done. The difference only shows up at the edges, because a ledger lookup has more ways to miss than a live status check does. A purchase made under a different account than the one you're currently signed into won't appear. A purchase made in one country's storefront can fail to surface if you've since moved your account to a different region's store. A purchase that was refunded and genuinely re-bought later can leave a confusing trail that the automatic check doesn't always resolve cleanly.
None of those situations arise for a subscription, because a subscription has no ledger entry to get detached from in the first place - just a status that's either currently true or currently false, checked fresh every time.
What proof actually substitutes for the lookup
When the automatic restore doesn't find it, or when there's no app store account in the picture at all because the app was bought directly from a developer's website, the fallback is whatever record exists outside the platform: typically the original order confirmation email, which usually carries a transaction ID, a date, and sometimes a license key tied to the purchase. For a subscription, there's rarely an equivalent need to dig one up, because a support agent can simply look at whether your account is paying today. For a one-time purchase bought outside a store's own ledger, that confirmation email may be the only place the transaction is recorded at all - the developer's own system of record, not a backup to it.
That makes the email worth treating differently than you would other receipts. Deleting it once the app is installed and working feels harmless, in the same way that most people don't think twice about archiving a subscription receipt since the account itself is proof enough. A one-time purchase doesn't have that account to fall back on, so the deleted email is sometimes the only thing standing between you and having to explain, from memory, that you bought something years ago.
What's worth keeping, regardless of platform
Whichever way an app was bought, the record worth saving is small and specific: the confirmation email or receipt, the transaction ID or license key if one was issued, and the account or storefront it was purchased under if that's ever likely to change. None of this needs a dedicated system - a mail folder search for the right term usually finds it, the same way searching email for recurring charges turns up subscriptions people forgot they had. The difference is that a forgotten subscription shows up again on a statement; a lost proof of a one-time purchase generally doesn't resurface on its own.
If you're ever deciding between buying an app outright and paying for a subscription alternative that does roughly the same job, that asymmetry is worth weighing alongside the price itself - a one-time purchase can be cheaper over a few years but puts more of the record-keeping burden on you, where a subscription puts it on the account you're already paying into. Running the actual numbers through the promo calculator at least settles the price side of that comparison before you factor in which one you'd rather be responsible for proving you own.
Common questions
Why didn't 'restore purchases' find my one-time purchase on a new device?
Restore works by querying your app store account's purchase history, which only succeeds if the purchase is still attached to that exact account and store region. A purchase made under a different account, a different country's storefront, or one that was refunded and later re-bought can fall outside what that lookup finds, even though you genuinely own the app.
What counts as proof of purchase for an app bought outside an app store?
Usually the original order confirmation email, which typically contains a transaction ID, the date, and sometimes a license key. Without an app store account to re-query, that email is often the only record that exists, so it is worth keeping rather than deleting once the app is installed.
Do I need to keep a receipt for something I bought through an app store?
It helps but matters less than for a direct purchase, because the app store itself keeps a permanent record tied to your account and can usually re-verify the purchase on demand. The receipt becomes important mainly if the automatic lookup fails or the purchase gets detached from your account for some reason.
← An unlimited plan's cap often only gets checked at renewal · A lifetime deal can still depend on a live server →