Note: View the Player Order Reporting Webhook in the API reference page.
The Player Order Reporting Webhook is a critical part of the transaction process. It updates the balance of the player on the publisher’s side each time a purchase is completed. Appcharge processes the transaction and sends a detailed update to the publisher’s server, including all financial calculations such as payment amounts and taxes. This ensures that the publisher’s system reflects the correct transaction details, helping to track transactions, manage purchases, and maintain synchronized data across platforms.
The webhook URL will be configured in Appcharge’s management dashboard. For setup instructions, refer to the Integration Settings Guide.
orderId
) to track each individual transaction.publisherPurchaseId
) for each transaction, which is returned to Appcharge.orderId
and publisherPurchaseId
, both systems create a 1-to-1 alignment, ensuring that each transaction on both sides corresponds to the same purchase. This alignment is essential for reconciling the data between the publisher’s records and Appcharge’s records.In case the publisher returns an unsuccesful response, Appcharge will retry sending the webhook notification up to 6 times over a period of 1.5 minutes to ensure the request is successfully delivered.
Free orders, such as those related to daily bonuses, are also tracked. For these orders, all financial information is nullified (set to 0).
The webhook update sent to the publisher will include the following transaction details for free orders:
purchaseDateAndTimeUtc: Timestamp when the bonus was awarded (in UTC).
action: Type of the offer (e.g., purchase or bonus).
subType: Subtype of the offer (e.g., bonus, rolling offer).
bundleName: Name of the specific offer.
products: Array representing the sequence of products that were part of the offer.
priceInDollar: For free orders, this displays as ‘0’ (indicating no charge).
playerId: Identifier for the player who received the bonus.
externalTransactionId: External identifier for the transaction.
actionStatus: