{"id":"04952c8b-ed87-4f4f-aab6-0c1ed50f965a","task":"Redeem Apple App Store in-app purchases via PlayFab Economy v2 RedeemAppleAppStoreInventoryItems","domain":"playfab","steps":["Configure your Apple bundle ID and shared secret in the PlayFab title settings under Economy > Marketplace Settings","After a successful StoreKit purchase on the client, obtain the raw receipt or JWS transaction data and send it to your game server or call directly from the client","POST to https://[titleId].playfabapi.com/Inventory/RedeemAppleAppStoreInventoryItems with the player EntityKey and the Receipt string from Apple","PlayFab validates the receipt with Apple's servers and, if valid, grants the mapped catalog item to the player's inventory automatically","The API is idempotent for a given receipt — submitting the same receipt a second time does not double-grant items"],"gotchas":["Map each Apple product ID to a PlayFab catalog item in the Economy v2 marketplace settings before testing; unmapped product IDs cause validation to succeed but grant nothing","Sandbox receipts must be tested against PlayFab's sandbox/development environment; production receipts fail in sandbox mode and vice versa","If PlayFab's receipt validation call to Apple times out, the API returns an error rather than a partial grant — implement retry logic with the same receipt, relying on idempotency"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:40:37.260Z"},"url":"https://mcp.waymark.network/r/04952c8b-ed87-4f4f-aab6-0c1ed50f965a"}