Quick answer: Unity IAP receipt validation rejecting App Store restored purchases? Restored receipts come without transaction IDs - validate against the bundle signature, not the per-transaction one.

Player restores their IAP on a new device. Validation rejects the receipt; they lose their entitlement.

Validate bundle-level

Receipt is wrapped in a payload signed at the bundle level. Verify the bundle signature; don't depend on per-transaction signatures that restores don't include.

Trust Apple's verifyReceipt

Server-side verification via verifyReceipt is the source of truth. Restore-vs-new isn't a meaningful distinction at that layer.

Test the restore path

Sandbox account on a fresh device. Restore Purchases. Verify your validation returns success without re-asking for purchase.

“Restored purchases are a real lifecycle path. Validation that assumes one-shot purchases fails.”

Document restore expectations in your support workflow. 'Tap Restore Purchases in the settings menu' covers 90% of inbound entitlement tickets.