Hey Tim,
There isn't a way to go from a given charge or refund to the transfer that contained it. The only solution is to go the opposite way from the transfer to the list of transactions that are bundled in it.
What I usually recommend is to store that information in your own database for each transfer. The idea is that you listen for the `transfer.created` events on your webhook endpoint and, for each one, you track the list of transactions bundled in it. This allows you to easily find the transfer for a given charge or refund as you have that information already stored. If you haven't tracked this historically, you can go through all your transfers one by one via the API to start tracking it from now on.
Otherwise, when you look at a given transaction, you can see the `available_on` property on the associated balance transaction. Based on this, you know when the funds would be released and you can then look at the transfers that were created around that date. You can then see in the list of associated transactions for one of those transfers whether it contains your transaction (charge, refund, etc.).
Hope this helps!
Remi