Glossary · Store notifications

What is an original transaction ID?

Original transaction ID

The original transaction ID is the identifier that the App Store generates when a customer first buys an in-app purchase. For a subscription, every later renewal has its own transaction ID, but all of them point back to this one original ID. Apple tells developers to save it to identify an auto-renewable subscription, and most App Store Server API endpoints accept it.

You can read it in the app from the Transaction object, in every signed transaction and notification (originalTransactionId), and in the App Store Server API. Pass it as the identifier when you call endpoints such as Get All Subscription Statuses or Get Transaction History. If you maintain your own subscriber database, make it the key for each auto-renewable subscription, so renewals update one row.

Use it together with the environment. A transaction identifier belongs to either production or the sandbox, and you must call the same environment that created it. The App Store Server API also returns the original purchase date, and the appAccountToken, a UUID you create, can tie the transaction to your own user.

RevenueDot keys each App Store subscription by original_transaction_id, so every renewal updates the same record and one webhook stream follows it. The Google Play equivalent is the purchase token.

Sources: Apple: originalTransactionId · Apple: Look Up Order ID · Apple: Transaction

FAQ

Original transaction ID: questions people ask

What is the difference between transactionId and originalTransactionId?

The transaction ID identifies one charge, including each renewal. The original transaction ID identifies the first purchase and does not change as the subscription renews.

Where can I read the original transaction ID?

In the app, from the originalID property of the Transaction object. On your server, from originalTransactionId in the decoded payload of any signed transaction or notification, and in App Store Server API responses.

Where do I find it for support?

Ask for the order ID from the customer's receipt email and call Look Up Order ID, which returns signed transactions that contain the original transaction ID.

Get started

Run subscriptions without the revenue share.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.

Already have an account? Sign in · Prefer your own servers? Self-host free