The payload has the Transaction id, but I do not see the Subscription id it should associate with. How do I tell this transaction what subscription it should associate with?
Webhooks transaction notifications include some (but not all) of the transaction details and the status of the transaction at the time of the notification. Additional transaction details, including the subscription information, are available via the getTransactionDetails API method.
Silent Post has quite a lot of failure point possibilities as well and Silent Post is never re-sent, whereas webhook notifications are resent many times if they do not receive an HTTP 200 response from the endpoint URL and the notification history can be retreived via a GET request after the fact if the need should arise.
While I understand it would be easier for you if you could customize the webhook payload to exactly what you want and need for your specific use case, currently the method for obtaining greater detail from a payment event notification is to use GetTransactionDetails. This will provide you with the ability to customize the payload response to your specific needs rather than rely on someone building, or not, that functionality into the API.
We do appreciate your feedback. As far as I'm aware, there are no plans to increase the current payload capacity of webhook notifications which are already available via other existing API methods. Thank you for your continued understanding and know we are here to assist you should you need assistance with understanding and implementing the Reporting API methods currently available to you.