Manage third-party store integrations
Overview
This article walks you through how to create store integrations for third-party platforms (i.e., PSN, XBox, Steam, Epic, Twitch, Google Play, or Apple) to enable AccelByte Gaming Services (AGS) synchronization of player purchases from those platforms.
Prerequisites
Before adding a new third-party store configuration, you must have:
- Configured third-party authentication for your selected platform.
- Familiarity with In-App Purchase integration in the AGS Admin Portal.
Add a third-party store configuration
Go to your namespace.
On the sidebar, select Game Setup > 3rd Party Configuration > Stores.
注記Any configuration you make in the publisher namespace will be used as the default configuration for any unconfigured game namespaces.
From the available platform tabs, select the platform you want to configure, and then click on the Add Configuration button. The Add Configuration form appears.
注記Each namespace can only have one configuration per platform.
Follow the configuration steps for the platform you're configuring:
PlayStation
Contact your AccelByte Account Manager to access this information.
Xbox
Contact your AccelByte Account Manager to access this information.
Steam
Make sure you've created an item with the same SKU in both the Steam Store and in your namespace in the AGS Admin Portal. Once completed, make sure you have your Steam Web API Key.
Then, on the configuration form, fill in the game App ID and Steam Web API Key. You can find both of these values in the Steamworks Portal.
The Steam Web API Key is the same as the Publisher Authentication Key and Asset Server Key. For more information, refer to Steam's documentation about the Steam Web API Key.
Epic
On the configuration form, fill in the Sandbox ID of your Epic Developer's account, and then click Add to save the configuration. For more information, refer to Epic's documentation about sandboxes.
Twitch
Make sure you've completed the following the prerequisites:
- Register your organization with Twitch Developer. For more information, refer to Twitch's documentation about managing organizations
- Create a Twitch application for Drops and configure the Drops settings. For more information, refer to Twitch's documentation about managing Drops
- Create a reward. Be sure to specify the Reward ID to match the reward with your AGS Store item. The Reward ID should follow this format:
{accelbyte-namespace}-{accelbyte-itemSKU}
(e.g.,game001-weapon001
). For more information, refer to Twitch's documentation about creating rewards.
Then, on the configuration form, do the following:
- Fill in the Client ID and Secret you set when you created the Twitch application for Drops.
- Fill in your Organization ID.
- Click Add to save the configuration.
Google Play
Make sure you've created your Android app and set the Product ID to publish your app in the Google Play store. For further details about setting up these prerequisites, contact your AccelByte Account Manager. You can also refer to Google's documentation about creating in-app products.
Then, follow these steps on the configuration form:
- Fill in the Application Name you set in the Google Play Console.
- Fill in the Package Name for your app as registered in the Google Play Console.
- Fill in your Service Account ID. For more information, refer to Google's documentation about managing service accounts.
- Upload your Business Certificate in
.p12
format. For more information, refer to Google's documentation about p12 service account keys. - (Optional) Fill in the notificationTokenAudience. This value represents the intended audience for Google Cloud Pub/Sub notifications. It defines which services are allowed to interact with your subscription configuration.
- (Optional) Fill in the notificationTokenEmail. This is the email address of the Google service account used to authenticate requests made by Google Cloud Pub/Sub when delivering push notifications to your endpoint. It ensures that your service only processes notifications from the authorized and expected Google service account. For more information, see Google's documentation about the notificationTokenEmail.
- Click Add to save the configuration.
Apple
Make sure you've created an item in App Store Connect and configured the AGS notification URL in App Store Connect to ensure Apple sends the necessary notifications. For further details about setting up these prerequisites, contact your AccelByte Account Manager. You can also refer to Apple's documentation about App Store Server Notifications.
AGS supports two methods for verifying in-app purchases with Apple: Version 1 (Legacy) and Version 2 (Recommended). Follow the configuration steps for your preferred integration method:
Version 2 (Recommended)
The Version 2 method uses the App Store Server API for transaction verification and the App Store Server Notifications V2 endpoint to verify and synchronize real-time purchase and subscription data updates, specifically:
- One-time purchases: Only purchase validation is supported, which means refunds, auto-renewals, or chargebacks are not supported.
- Subscriptions: In-app purchases, auto-renewals, refunds, chargebacks, and chargeback reversals are supported.
The App Store Server Notifications V2 endpoint works with the latest StoreKit v2
(which no longer uses direct receipt validation) and uses JSON Web Tokens (JWT) for authentication. For more information, refer to Apple's documentation about the App Store Server API and the App Store Server Notifications V2 endpoint.
To use this method, select Version 2 on the configuration form and do the following:
- Fill in the Bundle ID. This is the unique identifier for your app in the Apple ecosystem (e.g.,
com.example.myapp
). For more information, refer to Apple's documentation about Bundle IDs. - Fill in the Issuer ID. This is the unique identifier for your Apple Developer account, which is used to authenticate requests made to Apple's servers. You can find this in the API Keys section of your App Store Connect account. For more information, refer to Apple's documentation about Issuer IDs.
- Fill in the Key ID. This is the private key used to sign the JWT for authentication. You can find the Key ID in App Store Connect under the API Keys section when you generate the key for your app. For more information, refer to Apple's documentation about Key IDs.
- Fill in the App Apple ID. The
appAppleId
is a unique numeric identifier assigned by Apple to your app when you register it in App Store Connect. This ID is used in various server-to-server communications and API requests. For more information, refer to Apple's documentation about App Apple IDs. - Upload the Apple Private Key (.p8 file). This file is used to securely authenticate your app's communication with Apple's services. The .p8 file can be obtained from App Store Connect and is critical for signing JWT tokens. For more information, refer to Apple's documentation about Apple Private Keys.
- Click Add to save the configuration.
Version 1 (Legacy)
The Version 1 method uses the deprecated verifyReceipt
endpoint to validate purchases. For one-time purchases, it only supports purchase validations, which means refunds, auto-renewals, or chargebacks are not supported.
This verifyReceipt
endpoint relies on receipt validation, which is no longer supported in new versions of Apple's StoreKit
. Select this method if your system still uses StoreKit v1
and relies on older integration setups.
To use this method, select Version 1 on the configuration form, and then fill in the Password with the App-Specific Shared Secret found in your item's details in App Store Connect.
- While this method allows for continued functionality, it does not offer real-time event handling or modern JWT-based authentication. Apple has deprecated this method, and its continued use is not recommended for new applications. AccelByte recommends migrating to App Store Server Notifications V2 for improved security and real-time event support. For more information, refer to Apple's documentation about the App Store Server Notifications V2 endpoint.
- If you have already upgraded to App Store Server Notifications V2, this method is no longer supported for your namespace. Ensure that you upgrade your game client to use App Store Server Notifications V2 for the purchase verification process for a successful integration.