Singular integration behavior for web purchases
Last updated: July 10, 2026
This article explains how Aghanim forwards purchase events to Singular for web purchases and what data is visible in Aghanim.
Player attributes for Singular
When you pass Singular-related attributes through player.verify, they may be stored internally for the integration but not displayed in the Aghanim dashboard. This is expected behavior.
Purchase event sent to Singular
Aghanim sends a single purchase event to Singular with the event name sng_ecommerce_purchase. This event name is the same across web, iOS, and Android.
When the event is triggered
The event is forwarded when an order transitions to paid in Aghanim.
For the event timestamp sent to Singular, the utime value reflects order.created_at (the time the order was originally created in Aghanim), not the payment completion time and not the webhook delivery time.
Example:
If the order is created on May 1 at 23:59
and downstream processing or webhook handling completes on May 2 at 00:00
the event in Singular should still be timestamped as May 1.
Refunds and failure scenarios
The current Singular integration forwards purchase events only. The following are not forwarded to Singular:
refunds
chargebacks
cancellations
item-grant recovery or restoration events
Because of this, revenue shown in Singular reflects gross purchase revenue and may be higher than net revenue visible in Aghanim.
How order.created webhook failures affect Singular
A 400 response on the order.created webhook does not prevent the Singular purchase event from being sent.
Aghanim validates catalog-side availability before order creation, such as:
whether the item is enabled
purchase limits
scheduling rules
segmentation rules
However, game-side state is not validated at that point. This can include conditions such as inventory constraints or entitlement-related checks handled by the game via webhook logic.
Singular cohort metrics
In Singular cohort configuration, sng_ecommerce_purchase Count and sng_ecommerce_purchase Revenue are two metric options generated from the same incoming sng_ecommerce_purchase event:
Count: the number of purchase eventsRevenue: the summed purchase revenue
Whether Count represents total event occurrences or distinct users depends on Singular’s Unique Event setting in the cohort configuration:
Unique Event off: cumulative total occurrences
Unique Event on: distinct users