Web Service

App Store Receipts

Validate app and in-app purchase receipts with the App Store.

Overview

Your server can access the verifyReceipt endpoint to validate app and in-app transaction receipts. Submit a receipt to the App Store to receive a JSON response containing the app information and in-app purchase details in a number of fields that make up the receipt. Each field or combination of fields provides insight that you can use to deliver service and content to the user as you define.

Receipts for auto-renewable subscriptions can grow over time since the renewal transactions stay in the receipt forever. To optimize performance, the App Store may truncate sandbox receipts to remove old transactions. When validating receipts for transactions made in the sandbox environment, consider creating new test accounts instead of reusing old accounts to test subscription purchases.

Topics

Receipt Verification

verifyReceipt

Send a receipt to the App Store for verification.

object requestBody

The JSON contents you submit with the request to the App Store.

object responseBody

The JSON data returned in the response from the App Store.

object error

Error information returned in the response body when a request is not successful.

Receipt and Subscription Status

type status

The status of the app receipt.

type auto_renew_status

The renewal status for the auto-renewable subscription.

type is_in_billing_retry_period

An indicator of whether an auto-renewable subscription is in the billing retry period.

type is_in_intro_offer_period

An indicator of whether an auto-renewable subscription is in the introductory price period.

type is_trial_period

An indicator of whether an auto-renewable subscription is in the free trial period.

Identifiers

type original_transaction_id

The transaction identifier of the original purchase.

type promotional_offer_id

The identifier of the subscription offer that the user redeemed.

type transaction_id

A unique identifier for a transaction such as a purchase, restore, or renewal.

Dates and Intent

type expiration_intent

The reason a subscription expired.

type cancellation_date_ms

The time and date that Apple customer support canceled a transaction or the time and date the user upgraded an auto-renewable subscription.

type expires_date_ms

The time in milliseconds a subscription expires or renews.