Transaction Storage
Records are kept for 24 months by default. Longer retention is available on request.
What it does
Every successful purchase writes its transaction identifier — the store's unique order number — to your application's database. That record is what makes a receipt single-use:
- a consumable cannot be redeemed twice
- a non-consumable cannot be awarded to two users at once
- replaying a captured receipt to unlock content does not work
Transaction Storage answers "has this receipt been used before?". To also control who may use it, pair it with the User Behaviour setting in User Storage.
Effect on your transaction count
This is the setting that decides what counts against your monthly quota.
| Situation | Record exists? | Counted as |
|---|---|---|
| First time a receipt is sent | No | Purchase — increases your monthly count |
| Same receipt sent again by the same user | Yes | Restore — free, does not affect your quota |
| Same receipt sent after the record expired | No longer | Purchase — counts again, and starts a fresh retention period |
A restore is therefore never billed. Only the first sighting of a receipt is.
Expiration
A record is deleted on its expiration date, counted from when it was written.
Subscriptions are the exception: renewals reuse the same original transaction identifier, and each one resets the retention window. An actively renewing subscription never expires out of storage.
If a record expires and the user sends that receipt again, it is treated as a brand-new purchase. It increases your monthly transaction count and starts another full retention period. On long-lived non-consumables this can mean paying for the same purchase more than once — request a longer retention period if your app expects multi-year ownership.
On the FREE plan
Transaction Storage is not offered on FREE, but identifiers are still stored internally for up to 3 months. That is what lets new and restored transactions be told apart on that plan too. It is not a substitute for the feature: nothing beyond three months is retained, and the retention cannot be extended.