Handle `offer-` SKUs in `item.add` purchase events
Last updated: July 1, 2026
Handle offer- SKUs in item.add purchase events
Some store purchases may be delivered as a single item whose SKU starts with offer- rather than as a bundle. Integrations that process purchase analytics or entitlement delivery should support this case explicitly.
Expected handling
- Treat any single purchased item with an SKU starting with
offer-as a valid in-game store purchase. - Do not require such purchases to use item type
bundle. - If at least one item in
event_data.itemshas an SKU starting withoffer-, the webhook payload must contain exactly one item in that array.
Validation rule
When processing an item.add event:
- Inspect
event_data.items. - If no item SKU starts with
offer-, process the payload normally. - If any item SKU starts with
offer-, accept the event only whenevent_data.items.length === 1. - If an
offer-item appears together with additional items in the sameitem.addpayload, treat it as an integration error and log it for investigation.
Why this rule exists
A single purchase can contain multiple delivered items, which makes analytics attribution ambiguous when trying to attach purchase analytics to one specific item. Restricting offer- purchases to a single delivered item removes that ambiguity while still allowing these SKUs to be sold without forcing them to be modeled as bundles.
Notes
- This is an integration-side handling rule for webhook processing.
- It is intended for purchases from the in-game store delivered through
item.add. - Automatic refund behavior for declined deliveries is a separate configuration topic and is not required for this handling rule.