The documentation does not make it clear that the backend orderId and the SDK's transactionId are the same value.
Developers integrating server-side order lookup have to discover this by trial and error, and it has caused confusion in support.
The equivalence is stated exactly once, in the "Validate the order" section of Fulfill purchases through the SDK:
The
orderId is the same as the
TransactionId in the previous step.{quote}
Two reasons that isn't enough:
- That page sits under Direct-to-Consumer payment providers. A developer shipping on the Apple App Store or Google Play has no reason to open it. The platform-native counterpart, Purchases, is otherwise near-identical — same attributes table, same purchase states, same code sample — but omits the server-side validation section entirely.
- The transactionId row of the Purchase attributes table, on both pages, reads only "A unique identifier for the purchase". Nothing connects it to orderId.