Distribute and grow
Distribute and grow

Integrating Add-ons

Updated: Oct 1, 2025
When you are ready to begin integrating add-ons into your app, see the following topics:

Engine specific add-on integration documentation

These topics describe how to integrate add-ons into your app, with guidance for each supported engines.

Engine specific server-to-server add-on integration documentation

These topics describe how to implement server-to-server add-on related flows into your app, with guidance for each of the supported engines.

Engine specific documentation for testing add-ons

These topics describe how to set up testing for your add-on integration through test users on your team.

Best Practice Purchase Integration

You don’t need to wait for the user to launch the app to sync statuses about purchases and entitlements. We recommend server-to-server communication to ensure that your app server has the latest updates on purchases in a timely manner, even if the IAP purchase was made outside the app on the Meta Horizon Store. This can also help reduce app load time by minimizing data syncing on app launch.

Prerequisite

  1. Setup your Addons.
  2. Setup your Application Entitlement Check (Unity, Native, Unreal).
  3. Launch the Checkout Flow for your IAP SKU (Unity, Native, Unreal).

Integration Steps

  1. Real Time Notifications - Integrate with our IAP webhook to receive updates. This way you can listen for new orders and refunds without having to poll our systems after each purchase (Unity, Native, Unreal).
  2. S2S API Integration - integrate your server with our S2S API. We recommend using the the App access token to access our S2S endpoints (Unity, Native, Unreal).
  3. On a successful purchase, verify the entitlement for your user using the verify_entitlement endpoint.
  4. If the IAP is a Consumable instead of a Durable, you’ll also need to consume the IAP for your user once the entitlement is verified using the consume_entitlement endpoint. On seeing the consume_entitlement call for the app and SKU, Meta now releases the SKU, enabling user to buy the SKU again if the SKU was consumable.
Note: If a user purchases your Consumable IAP and it is not consumed within 3 days, that entitlement will automatically be refunded to the user.
  1. (Optional) At any time app can retrieve all user entitlements via the viewer_purchases endpoint.
  2. (Optional) Test your IAP purchase and integration using Test Users (Unity, Native, Unreal).

Alternative Integration

If you are having issues integrating with our webhook and S2S server, we also offer the option of syncing your IAP purchases using the SDK.
Note: This will make your application more complex versus allowing your service handle the details of verification and consuming Consumables with S2S integration.
  1. On a successful purchase, retrieve the list of user purchases and verify the new entitlement for your user (Unity, Native, Unreal).
  2. If the IAP is a Consumable instead of a Durable, you’ll also need to consume the IAP for your user once the entitlement is verified ((Unity, Native, Unreal)). On seeing the consume_entitlement call for the app and SKU, Meta now releases the SKU, enabling user to buy the SKU again if the SKU was consumable.
Did you find this page helpful?