Skip to main content

Release Notes img alt

5.4.0 Beta

(GitHub only) For PlayFab users: THIS VERSION IS NOT BACKWARDS COMPATIBLE PlayFab Economy integration upgraded from V1 (legacy) to V2. Related changes:

  • added support for virtual subscriptions. Real-money subscription are still not supported by PlayFab
  • added full support for receipt validation on Android, iOS, Steam etc. for inventory synchronization
  • changed CloudScript method contents for Azure in order to support the updated Economy V2 API
  • removed direct PayPal and Steam payments as they are no longer supported by PlayFab. Please consider using their native integration counterparts in SIS
  • removed 'Validation Only' PlayFabManager option Please see the new PlayFab Economy V2 integration guide in the documentation


  • fixed ReceiptValidatorClient not immediately confirming purchase after validation but on next app launch This was introduced since Unity IAP 4.2.0 and caused consumables to be granted twice. If you are only using the ReceiptValidatorClient (not -Server) and sell consumables in your app, update asap!
  • fixed ReceiptValidatorClient/Server doing a validation attempt twice on restore on IOS
  • fixed ReceiptValidatorServer missing UNITY_STANDALONE_OSX platform define in some cases
  • removed necessity of doing a code change in ReceiptValidatorClient in order to enable its compilation
  • removed ReceiptValidatorClient/Server handler for IAPManager.restoreTransactionsFinishedEvent
  • last version for Unity 2020.3+. Next versions will be released for 2022 LTS and above


  • added loading window to UIShopFeedback that is displayed during native purchase dialog interaction. Especially useful on IOS where the popup takes long to load. This window is being closed automatically and cannot be closed by the user. If you do not want to use it, keep it unassigned on the UIShopFeedback component
  • added the loading window prefab and reference to all example scenes
  • fixed possibility for ReceiptValidatorServer sending a validation request for the same product multiple times
  • fixed order of feedback windows so that with PayPal, an error message is not hidden by the confirmation window
  • fixed changing encryption states resulting in a NullReferenceException while trying to decrypt an empty string
  • fixed error message in feedback window on Android not displaying an exact reason text for the purchase error
  • fixed UnityWebRequest deprecation messages for PayPalStore class in Unity 2022.2+


  • VR package and scene was fully reworked and simplified, now making use of XR Interaction Toolkit for tracking of headset and controllers. Compatibility includes any device supporting the XR Plugin, tested on Meta Quest 2
  • added VR sample scene setup documentation and updated Oculus Store guide on online documentation pages
  • Oculus Integration compatibility updated to 55.0+
  • Unity IAP compatibility updated to 4.9.4+


  • added support for Anti-Cheat Toolkit (third party asset) for encryption of PlayerPrefs and persistentDataPath
  • added separate integration guide for enabling Anti-Cheat Toolkit to the online documentation pages
  • added SteamStore (native) requesting and applying prices in user's local currency if fetch is enabled on product unfortunately the ability to request user's local currency prices adds up to 1 second of delay to IAP initialization
  • changed DBManager encryption options to dropdown, will be moved to Project Settings in a later update
  • changed possibility to delete local IAP data via IAPSettings > Tools button to be only available at runtime
  • changed default DBManager storage key from "data" to "SIS_data", adding automatic data takeover from old key
  • fixed upgradeable products in combination with them being unlockable not considering requirements
  • fixed SteamStore (native) not invoking steamStartPurchaseResult > OnPurchaseStarted method correctly
  • fixed export of PlayFab catalog json failing on upload because it contained wrong format on bundle products
  • fixed loading spinner image on Window - Confirm prefab missing when not using VR extension package
  • Unity IAP compatibility updated to 4.8.0+


  • fixed unselectable Unity IAP integration checkbox, using dropdown selection as temporary workaround
  • fixed "Clear Local Storage" button in IAPSettings > Tools not doing anything when not in PlayMode
  • fixed NRE in SteamStore caused on unassigned steamStartPurchaseResult


  • Unity IAP compatibility updated to 4.6.0+


  • added StorageTarget dropdown to DBManager supporting Application.persistentDataPath as a new data storage location
  • changed namespace using directives for third-party packages to be included inside the SIS namespace, instead of outside. This should solve most clashes for assets not using namespaces. Tested with classes in SimpleJSON and UnityIAP package
  • changed asset documentation moving everything from included PDF file to online documentation page on GitLab
  • removed "MemoryOnly" checkbox on DBManager, this was incorporated into the StorageTarget dropdown


  • added editor UI warning message with PayPal enabled but returnUrl not correctly filled out
  • fixed IAPManager not initializing correctly when only using custom store e.g. with PayPal enabled
  • fixed subscription transactions made via PayPal not being completed properly in confirm popup
  • fixed IAPCategory not being referenced correctly internally when accessed via IAPProduct.category
  • fixed ReceiptValidatorServer requesting inventory even when user identifier has not been set yet
  • fixed ReceiptValidatorServer potentially not trying local validation first before server validation


  • updated installation instructions for users who do not see the latest Unity IAP package
  • fixed PayPal not being able to acknowledge a purchase due to changed request type
  • fixed script define symbols requiring receipt validation even when not making use of it
  • fixed warning thrown on newly added Unity Gaming Services initialization code
  • fixed missing script reference in main package from external PlayFab package
  • fixed missing text font on ShopItem prefab instances


THIS VERSION IS NOT BACKWARDS COMPATIBLE If you just need a version with the latest fixes, please download v5.1.2 on my website.

  • added and changed all example scenes to showcase one specific feature at a time
  • added new purchase workflow using a separate confirmation window (see upgrade notes)
  • added 'askToBuy' checkbox on the ShopItem2D component to enable the new purchase confirmation workflow
  • added Unity Gaming Services initialization due to Unity IAP requiring it and otherwise throwing a warning
  • added restoreTransactionsFinishedEvent handler to the IAPListener script, showing a message on restore success/failure
  • added ReceiptValidatorClient also re-validating purchase receipts on restore
  • changed the visual design of all example scenes, shop item prefabs and textures
  • changed extension packaging (VR & PlayFab scripts) to separate packages, available to import from the Project Settings' Setup tab
  • changed PlayFab scripts dependencies to require Unity IAP and removed PLAYFAB define. Meaning PlayFab cannot be used without billing anymore. If you wish to use PlayFab without any billing functionality or on certain platforms only, please use your own PlayFab manager script
  • changed PlayFab cloud scripts from legacy to (new) Azure functions. See updated PlayFab guide for instructions
  • changed IAPManager's RestoreTransactions method to also work for Google Play without or with local or server receipt validation
  • renamed UIShopFeedback 'errorWindow' variable to 'messageWindow': reassign your 'Window - Message' reference in your shop scene
  • renamed PlayFab scripts: ReceiptValidatorService > PlayFabReceiptValidator, UIButtonCoupon > PlayFabUICoupon, UILogin > PlayFabUILogin
  • removed Unity IAP build platform selection in Setup tab. You can still disable Unity IAP on certain platforms by removing the SIS_IAP define in Player Settings manually
  • removed PlayFab Facebook support since Facebook WebGL apps and Gameroom were shut down
  • removed Xsolla support due to imposed sanctions and its removal from the Unity Asset Store
  • fixed category billing provider override not taking product billing provider override into account
  • fixed Project Settings ScriptableObject sometimes losing its data on script recompilation
  • fixed ReceiptValidatorServer script requiring Unity IAP namespace even if deactivated
  • Unity IAP compatibility updated to 4.2.1+


  • Because some scripts have been renamed, the Simple IAP System > Scripts folder should be deleted before updating to this version. Do not delete or overwrite the IAPListener script (if you modified it) and the IAPSettings asset to keep your changes
  • The previous Vertical/Horizontal example scenes have been replaced. If you have been using those in your app, recheck them regarding graphics and references and ensure they still work as desired
  • Make sure that your project is linked to the Unity Gaming Services backend (Project Settings > Services tab) since Unity IAP now requires it
  • As the ShopItem2D's 'buyTrigger' variable was removed, you'll have to remove the button from your self-created shop item prefabs too.
  • Place the 'Window - Purchase' prefab into your shop scene to make use of the new purchase confirmation workflow. Assign a reference of it to the UIShopFeedback component.
  • Reassign missing references of the UIShopFeedback component in your shop scene, e.g. a reference from the 'Window - Message' prefab to the 'messageWindow' variable
  • If you are using your own 'Window - Message' prefab, you have to attach the new UIWindowMessage component to it and assign corresponding references first
  • If you have been using PlayFab or VR before, import the separate extension package from the Project Settings' Setup tab. Check the new scenes provided
  • If you are using PlayFab, update the PlayFab SDK to at least 2.130.x in order to support the new Azure cloud script requests


  • added Unity Gaming Services initialization due to Unity IAP requiring it and otherwise throwing a warning
  • fixed category billing provider override not taking product billing provider override into account
  • fixed Project Settings ScriptableObject sometimes losing its data on script recompilation
  • fixed ReceiptValidatorServer script requiring Unity IAP namespace even if deactivated
  • Unity IAP compatibility updated to 4.2.1+


  • ReceiptValidatorServer Unity SDK compatibility updated to 1.0.1
  • added ReceiptValidatorServer removing local purchases without receipt from DBManager after Unity IAP initialization


  • added support for Server-Side Receipt Validation using our platform:
    Get notified with active and expired subscriptions, inform users about billing issues, make sure transactions are valid and unique across your app. The ReceiptValidatorServer script has been added for this reason


  • added support for native PayPal subscription order processing. As with non-subscription PayPal transactions, note that you have to track user inventory and subscription state yourself
  • fixed product store overrides for native PayPal payments not taking the local store product identifier entered
  • minimum required Unity version: 2020.3.0


  • added option to use StoreKit Testing configuration instead of Apple Root certificate to ReceiptValidatorClient
  • changed PayPal confirm window to remind the user of paying instead of showing a generic PaymentDeclined message
  • Unity IAP compatibility updated to 4.1.x


  • added listener for pending (Google Play) and deferred (iOS) purchases, automatically showing a message after purchase that a transaction is pending and requires action by the user
  • added HasPendingPurchases method to IAPManager that can be called at any time after billing initialization to check for any pending/deferred transactions to inform the user e.g. when entering the shop. Only supported on Google Play (Unity IAP limitation)
  • fixed Google Play pending purchases going through after relaunching the app


  • changed CompletePurchase method to accept disabling the purchaseSucceededEvent. This is used on validation of previous purchases to avoid showing a success popup for them multiple times
  • changed local receipt validation in ReceiptValidatorClient to be commented out by default
  • fixed purchase succeeded workflow on Oculus and Steam when passing in product without price


  • added option to Project Settings to convert all Unity UI references in code to TextMeshPro. Also extendable with other UI solutions. Note that using this breaks the example scenes
  • added Google Play firing initializeFailedEvent when user removed their linked Google account
  • changed Receipt Validation on app launch to not fire the purchaseSucceededEvent. If the IAPManager and shop is your first scene, this prevents showing an incorrect purchase window
  • changed initializeFailedEvent, providing the string error reason for failed initialization
  • Unity IAP compatibility updated to 4.0.0
  • Xsolla SDK compatibility updated to
  • fixed CurrencyContainer not getting values at startup with IAPManager in same scene
  • fixed IAPSettingsExporter throwing exception on empty strings
  • fixed ReceiptValidatorClient order call issue with initializeEvent in Unity Editor
  • fixed ReceiptValidatorClient resetting purchased products in Unity Editor


  • fixed product deletion sometimes picking the wrong reference for deletion
  • fixed product sorting order not being remembered in ReorderableList
  • fixed changes on IAPSettings ScriptableObject not persisting without project save
  • fixed XsollaStore not displaying discount flag correcly when promotions are active


  • fixed single item selections not staying consistent in the sample scenes. This is due to a change in Unity's ToggleGroup component, make sure to keep "Allow Switch Off" enabled
  • fixed OculusStore and SteamStore compile errors making use of deprecated IAP product classes
  • fixed PayPalStore warnings mentioning deprecated use of Unity WebRequest properties
  • Xsolla SDK compatibility updated to

5.0.0 (Simple IAP System 2)


  • added native PayPal billing, primarily for selling physical products. This means you can now sell native in-app purchases e.g. on mobile platforms and physical products in parallel
  • added Xsolla payments. The integration with Xsolla allows support for hundreds of local payment gateways, including user inventory, cloud save and promotional sales. This makes it a perfect opportunity on alternative platforms that do not force you into using their native in-app solutions (e.g. standalone, WebGL, and mobile platforms outside Google/Apple)
  • added support for Unity IAP 3.x
  • added currency option, allows for maximum amount of earned currency balance
  • added pricing option, purchasing a product can now cost other virtual products
  • added reward option, purchasing a product can now grant other virtual products
  • added override option to disable automatic shop item instantiation on a specific store
  • added override option for billing provider as used with PayPal, in case more get added
  • added IAPContainer script, allowing for automatic product instantiation of a category
  • added Currency-, IAPContainer inspector editor for easy reference of currency/categories
  • added display of user-owned consumable product amount to ShopItem prefabs
  • added display of remaining subscription durations to ShopItem prefabs
  • added display of a "On Sale" banner in case of discounts/promotions to ShopItem prefabs
  • added display of bundled contents preview in case of one product granting multiple rewards
  • added methods and callbacks for manually consuming products at any time during runtime
  • added local receipt validation and subscribed duration support for subscriptions, mostly for non-renewable subscriptions since Unity's receipt could get lost on auto-renews
  • changed consumable product DBManager storage key from "Player" to "Content". Consumables bought and stored with the old format will not be found by the DBManager
  • changed "Validation Only" integrated in PlayfabManager. The platform define is gone.
  • changed ShopManager, it is no longer responsible for handling product shop instantiation
  • changed requirements, there can now be multiple entries to unlock instead of only one
  • restructured IAPManager to be event-based, added several new events
  • restructured classes contained in classes into their own, separate scripts
  • removed PlayFab store related code in IAPManager, reimplemented using events
  • removed IAP Settings editor window, reimplemented under Project Settings
  • removed support for Samsung/Oculus Gear VR following Unity's deprecation last year
  • removed Vertical, Horizontal and VerticalMenu, HorizontalMenu example scenes
  • removed public support for server-side validation, as there is a new service planned for this later this year. If you've used it before, see the updated C# file on the support forum
  • renamed IAPEditorExporter class to IAPSettingsExporter, updated for this version
  • renamed VerticalTabs, HorizontalTabs example scenes to Vertical2D, Horizontal2D
  • renamed IAPItem shop representation class to ShopItem2D
  • renamed UpdateFunds currency update class to CurrencyContainer
  • renamed ShopManager class to UIShopFeedback
  • minimum required Unity version: 2019.4.0

Upgrade notes (from Simple IAP System 1)

  • Export your products in the IAP Settings Editor before upgrading. Import your configuration under Edit > Project Settings > Simple IAP System > Tools. Check product rewards and costs.
  • Since the IAPItem class was renamed, it is likely that the UI elements lost their references. Therefore, your shop item prefabs must be set up with the new ShopItem2D component again.
  • Currency display in the scene must use the CurrencyContainer script instead of UpdateFunds.
  • If you have used automatic shop item instantiation, check the IAPContainer components in your shop scene. You will have to select the category to instantiate items from in the inspector.
  • ShopManager class was renamed to UIShopFeedback. If you have used that in your shop scene, check its references to the message/confirm window and message label.
  • Due to the changed storage format on consumables (Player -> Content key), consider adding a data take-over scenario for consumable products, in case you previously implemented any which add more than 1 to the owned amount (Usage > 1). Skipping this would result in lost user data.
  • Use the IAPManager.RestoreTransactions method instead of "purchasing" a "restore" product

Why an upgrade?

  • Simple IAP System was first released more than 7 years ago. Over that time, more features and billing platforms were added, requiring consistent updates and more support, while the asset price always stayed the same. Simple IAP System 2 is a major rewrite, which involved more than 3 months of work. As such, it was a natural decision to create an upgrade path for a flat compensation fee.
  • You will be able to upgrade from Simple IAP System 1 to Simple IAP System 2 for a one-time payment of $10 (50% of the price increase).
  • If you've bought Simple IAP System 1 within the last 90 days, the upgrade will be free for you.
  • You are not forced to update: Simple IAP System 1 received a final maintenance update supporting Unity IAP 3.x, so you can still continue using it in your projects. However, please note that Simple IAP System 1 will not receive further updates.

4.3.7 (Simple IAP System 1)

  • final update supporting Unity IAP 3.x
  • minimum required Unity version: 2019.4.0
  • This version is now deprecated.