Transaction ID Misassociation in IAP Subscription API

Dear Apple Support Team,

Hello!

I am currently developing the in-app subscription functionality using Apple IAP API and have encountered a serious technical issue while processing subscription data. I would like to report this issue to you.

Issue Description:
When calling the subscription API endpoint, the same OriginalTransactionId returns inconsistent results. Specifically, a particular transaction ID (let's call it TransactionId_A) should belong to the subscription order with OriginalTransactionId_A, but it is currently incorrectly associated with OriginalTransactionId_B. This issue severely affects our ability to accurately manage and process subscription data.

Here are the relevant log details for your reference:

API Endpoint Requested:

https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{TransactionId_A}
(Note: The link is a placeholder for the actual API endpoint.)

Log Information on February 21, 2025, at 09:40:09:

{
  "AppAccountToken": "{AppAccountToken}",
  "BundleId": "{BundleId}",
  "Currency": "CNY",
  "Environment": "Production",
  "ExpiresDate": {ExpiresDate},
  "InAppOwnershipType": "PURCHASED",
  "IsUpgraded": false,
  "OfferDiscountType": "",
  "OfferIdentifier": "",
  "OfferType": 0,
  "OriginalPurchaseDate": {OriginalPurchaseDate},
  "OriginalTransactionId": "{OriginalTransactionId_A}",
  "Price": {Price},
  "ProductId": "{ProductId}",
  "PurchaseDate": {PurchaseDate},
  "Quantity": 1,
  "RevocationDate": 0,
  "RevocationReason": 0,
  "SignedDate": {SignedDate},
  "Storefront": "CHN",
  "StorefrontId": {StorefrontId},
  "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}",
  "TransactionId": "{TransactionId_A}",
  "TransactionReason": "PURCHASE",
  "Type": "Auto-Renewable Subscription",
  "WebOrderLineItemId": "{WebOrderLineItemId}"
}

Log Information on March 21, 2025, at 09:38:49:

{
  "AppAccountToken": "{AppAccountToken}",
  "BundleId": "{BundleId}",
  "Currency": "CNY",
  "Environment": "Production",
  "ExpiresDate": {ExpiresDate},
  "InAppOwnershipType": "PURCHASED",
  "IsUpgraded": false,
  "OfferDiscountType": "",
  "OfferIdentifier": "",
  "OfferType": 0,
  "OriginalPurchaseDate": {OriginalPurchaseDate},
  "OriginalTransactionId": "{OriginalTransactionId_B}",
  "Price": {Price},
  "ProductId": "{ProductId}",
  "PurchaseDate": {PurchaseDate},
  "Quantity": 1,
  "RevocationDate": 0,
  "RevocationReason": 0,
  "SignedDate": {SignedDate},
  "Storefront": "CHN",
  "StorefrontId": {StorefrontId},
  "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}",
  "TransactionId": "{TransactionId_A}",
  "TransactionReason": "PURCHASE",
  "Type": "Auto-Renewable Subscription",
  "WebOrderLineItemId": "{WebOrderLineItemId}"
}

From the above logs, it is evident that the same transaction (TransactionId_A) returns different OriginalTransactionId values at different times, which is clearly not expected and severely impacts our ability to correctly process and manage subscription data.

I hope you can address and investigate this issue as soon as possible. If you need any further information or assistance, please feel free to contact me. Thank you for your support!

Best regards!

Answered by Muzihe in 830666022

I encountered a similar issue with the OriginalTransactionId misassociation in my app's IAP subscription processing. It's causing significant problems for our subscription management system, just like the original poster mentioned. I really hope you can prioritize this issue and provide some guidance or a fix as soon as possible. If there's any additional information I can provide to help with the investigation, please let me know. Thank you for your attention to this matter! Best regards

Accepted Answer

I encountered a similar issue with the OriginalTransactionId misassociation in my app's IAP subscription processing. It's causing significant problems for our subscription management system, just like the original poster mentioned. I really hope you can prioritize this issue and provide some guidance or a fix as soon as possible. If there's any additional information I can provide to help with the investigation, please let me know. Thank you for your attention to this matter! Best regards

I also encountered the original_transaction_id issue.

As shown below, the new purchase in latest_receipt_info is linked to an old transaction ID (in this example, transaction_2020). On the other hand, in in_app, it seems that the linkage between transaction_id and original_transaction_id is correctly established.

{
  "in_app" : [
    {
      "transaction_id": "transaction_2025",
      "original_transaction_id": "transaction_2025",
      "purchase_date": "2025-01-01 00:00:00 Etc\/GMT"
    },
    {
      "transaction_id": "transaction_2020",
      "original_transaction_id": "transaction_2020",
      "purchase_date": "2020-05-17 00:00:00 Etc\/GMT"
    }
  ],
  "latest_receipt_info": [
    {
      "transaction_id": "transaction_2025",
      "original_transaction_id": "transaction_2020",
      "purchase_date": "2025-01-01 00:00:00 Etc\/GMT"
    },
    {
      "transaction_id": "transaction_2020",
      "original_transaction_id": "transaction_2020",
      "purchase_date": "2020-05-17 00:00:00 Etc\/GMT"
    }
  ],
  "pending_renewal_info": [
    {
      "expiration_intent": "1",
      "original_transaction_id": "transaction_2020",
      "auto_renew_status": "0"
    }
  ]
}

The endpoint URL I'm using is: https://buy.itunes.apple.com/verifyReceipt

@demon191 , @Muzihe , @TaroHongo

Please file a Feedback report using Feedback Assistant, then post the Feedback number here.

@DTS Engineer I am a colleague of TaroHongo. I raised report here. FB17110094

Thanks.

What's the difference between replying and not replying? You don't talk about the cause, you don't talk about how to solved it ? And also the problem is still happening...

Transaction ID Misassociation in IAP Subscription API
 
 
Q