At a glance: Receipt validation is provided for in-app purchases made in the iOS and Android app stores.
Receipt validation flow
The Receipt Validation flow is as follows:
- User performs an in-app purchase.
- The app store notifies the app of the successful purchase.
- App developer calls the SDK Receipt Validation function.
- The SDK calls the AppsFlyer validation service.
- AppsFlyer validates the purchase to ensure it is not fraudulent.
- Upon success, AppsFlyer internally creates a regular af_purchase event. Otherwise, the created event is tagged as fraudulent (available via Protect360).
- The AppsFlyer validation service transfers the response to the SDK.
- The SDK transfers the receipt validation response to the app (either success or fail).
For details about the implementation of Receipt Validation, refer to the:
validateAndTrackInAppPurchase also generates an af_purchase in-app event. As such, don't generate an af_purchase event when validating. Doing so results in duplicate revenue events.