Skip to main content

Transaction Storage

info

Transaction Storage is a feature of paid plans. Default storage duration is 2 years, with custom durations available on a CUSTOM plan.

Definition

The transaction identifier of successful purchases (similar to a unique purchase order number) is saved in your application's cloud database. This ensures receipts are unique across your app, so that consumable purchases cannot be redeemed multiple times, or non-consumable purchases are not awarded to different users at the same time. For cheat prevention, users can be hindered from sending a transaction more than once in order to unlock content they do not rightfully own.

note

For increasing security, please also see the User Behaviour section in User Storage on how transactions can be assigned to users.

Expiration

Your monthly transaction count increases for each new purchase, i.e. for a successful purchase where a transaction record did not exist. With the transaction record written and the same user sending the same receipt again, the request is not considered as a purchase, but a restore request (not affecting your transaction quota).

Storage duration can reset in case of subscriptions using the same original transaction identifier. Otherwise, the transaction is deleted on the expiration date. If a transaction expired and the user sends the same receipt again, then the receipt is treated as a new purchase, which in turn increases your monthly transaction count for another full duration of transaction storage.

* The `FREE` plan does not officially offer Transaction Storage, however internally we do store transaction identifiers for a maximum duration of 6 months, in order to distinguish new and restored transactions on that plan as well.