I have a website that uses both ARB and AIM. In order to get the transaction details for each day I use a job and the Reporting API to download the previous day's transaction information. The problem I have however is that I cannot get the subscription ID for any given transaction. If an ARB transaction fails, there is no way to get the subscription that the transaction is associated with? I realize that the Silent Post functionality passes the subscription ID back to the server when a transaction is processed, however, I want to avoid Silent Post just in case my server goes down for a period of time.
Wow, that reply basically ignored most of what you asked, didn't it?
The lack of subscription information in the reporting API is a known issue - going back over a year, based on the posts I have found.
In my discussions with the Authorize.Net developers and customer support, I have been informed that they are aware of it but have no expected date for a fix to be released (as of mid-March).
My situation is very similar to yours, with AIM and ARB - and not wanting to deal with the failures of silent post.
What I did to overcome this issue was to create a work-around: place a unique identifier into one of the fields that propagate from subscriptions down to payment transactions (such as the product description and/or shipping address), then when I get the transaction information I use that identifier to create a link to the subscription.
It's a little kludgy, but it works.