I am using createAuthNetCustomerProfileFromTransaction to create customer profiles from transactions. It works great back about four months, but I need to go back about a year. I am creating customer profiles on transactions that inlcude annual subscriptions. So a transaction may be about a year old. I am getting E00099 errors on transactions that settled successfully starting in about September (roughly 4 months ago as of this posting). Are there unpublished limits on how old a transaction can be to create a customer profile?
Transactions are only available for a limited amount of time for future re-use.
In Sandbox, an existing transactions is only available for use within a CreateCustomerProfileFromTransactionRequest for 60 days.
In Production, an existing transaction is only available for use within a CreateCustomerProfileFromTransactionRequest for 90 days.
There are other follow-on actions which limit how long you can take action on an existing transactions, such as for Voids (30 days) and Refunds (120 days).
For your specific use case, I might recommend that you create a profile for each customer either before, after or concurrently to the CreateTransactionRequest, as it sounds like you will not know exactly how long ago that customer's transaction processed and may be beyond the limitations of CreateCustomerProfileFromTransactionRequest.
I hope this information is helpful to you.