Documentation

Support

In-App Purchasing

In-App Purchasing

Restore purchases

Enable players to regain access to previously owned products and subscriptions when they reinstall your app or switch devices.
Read time 1 minuteLast updated 10 hours ago

The Restore purchases feature allows players to access previously owned non-consumable products and active, renewable subscriptions without paying again. App stores maintain a permanent record of these entitlements, and Unity IAP can retrieve them to grant access. Non-renewable subscriptions on Apple platforms can't be restored. If you use non-renewable subscriptions on Apple, you must maintain your own subscription records and synchronize entitlements across devices.

Google Play

  • After reinstall, Unity IAP restores owned products on the first
    StoreController.FetchPurchases()
    call.
  • IAP invokes the
    OnPurchasesFetched
    listener with an
    Orders
    object that includes all purchases (all states).
  • If the
    PurchaseService.ProcessPendingOrdersOnPurchasesFetched
    setting is set to true, IAP invokes the
    OnPurchasePending
    listener for each unfulfilled purchase.
  • Subsequent
    FetchPurchases()
    calls in the same session don't trigger
    OnPurchasePending
    for orders that are already seen by the developer in the same session.

Apple platforms

  • You must provide a Restore Purchases button (mandatory by Apple).
  • The button calls
    PurchaseService.RestoreTransactions
    which requests a transaction resync from Apple to resync transactions and may prompt the user to authenticate.
  • After resync, Unity IAP calls
    FetchPurchases
    and invokes
    OnPurchasesFetched
    with all transactions for the user.

Restore purchases (Apple platforms)

void RestorePurchases(){ UnityIAPServices.StoreController().RestoreTransactions((success, error) => { if (success) { // This does not mean anything was restored, // merely that the restoration process succeeded. } else { // Restoration failed. `error` contains the failure reason. } });}

Restore purchases • In-App Purchasing • Unity Docs