Same same originalTransactionId, productId, but the transactionIds are different.

We are seeing an issue with a potential duplicate charge issue regarding our app. We have received two transactions with the same originalTransactionId but different transactionIds:

Order A: TransactionId: [Redacted_TID_1] OriginalTransactionId: [Redacted_OID_A] ProductId: weekly_subscription PurchaseDate: [Redacted_Timestamp_1] SignedDate: [Redacted_Timestamp_2] Price: [Redacted_Price] CAD

Order B: TransactionId: [Redacted_TID_2] OriginalTransactionId: [Redacted_OID_A] ProductId: weekly_subscription PurchaseDate: [Redacted_Timestamp_1] SignedDate: [Redacted_Timestamp_3] Price: [Redacted_Price] CAD

Both transactions share the same originalTransactionId, productId, and expiresDate, but the transactionIds are different.

We wanna confirm:

  1. Were customers charged once or twice for this subscription renewal?
  2. If only one charge was made, how should we programmatically determine the “valid” transaction among multiple records with the same originalTransactionId to avoid confusion in our server-side receipt validation?

We appreciate any clarification so we can handle this correctly in our backend.

Hello -

Please file a Feedback Assistant ticket at https://feedbackassistant.apple.com/ and include the following:

  • App name and app ID
  • Product ID(s)
  • Transaction ID(s)
  • How you received the separate pieces of info with distinct SignedDate values? App Store Server Notification, App Store Server API response, StoreKit directly in-app, etc.? If App Store Server Notifications, and you have the complete decoded payloads for transactions in questions, please include those in the Feedback ticket as well.

For more information about Feedback Assistant, please visit https://developer.apple.com/bug-reporting/. Once you have filed the Feedback Assistant ticket, please reply to this Developer Forums thread with the Feedback Assistant ID (e.g. "FB########) and/or link (e.g. https://feedbackassistant.apple.com/feedback/########), and our teams will take a look. Thank you.

Same same originalTransactionId, productId, but the transactionIds are different.
 
 
Q