Configure App Store Server Notifications V2 to receive webhook callbacks at your server endpoint
When you receive a notification with notificationType CONSUMPTION_REQUEST, extract the transactionId and consumptionRequestReason from the signed payload
Build a ConsumptionRequest JSON body reflecting the player's actual usage (customerConsented, consumptionStatus, platform, sampleContentProvided, customerEmail if consented, etc.)
POST to https://api.storekit.itunes.apple.com/inApps/v1/transactions/{transactionId}/consumptionInformation within the deadline Apple specifies to influence the refund decision
Wait for a REFUND or REFUND_DECLINED notification to determine the outcome and update your entitlement records accordingly
Known gotchas
Submitting consumption information does not guarantee Apple will follow your recommendation; the final refund decision is Apple's and can go either way regardless of the data you send
CONSUMPTION_REQUEST is now sent for auto-renewable subscription refund requests in addition to consumable IAPs; handle both transaction types
The consumptionRequestReason field is present in all CONSUMPTION_REQUEST notifications and reflects the customer-provided reason; log it for pattern analysis of fraudulent refund abuse
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp