Connecting refund data back to the original order using the Measurement protocol in GA4 can indeed be tricky, especially considering that refunds often occur beyond the 3-day window. But, there’s a way around it. The timestamp_micros key is actually optional. So, if the 3-day window doesn’t work for you, you can just omit it. Your refund will then be tracked when the hit is pushed. It’s way better than not tracking it at all, right?
As for understanding which acquisition channels are generating the most refunds, a solution might be at hand with data import, even though it’s not part of the measurement protocol. According to Google, the Source and Medium dimensions of the refund data will mirror the campaign attribution and date used in the customer’s last session. So, even if these are different from the original transaction data, you’ll be able to track where the refunds are coming from.
For example, let’s say customer A makes a transaction from a google/cpc on day 1, and then has another session from google/organic on day 2. If you end up refunding the original transaction, the refund data would be attributed to google/organic (the most recent Source/Medium), and the date will be set to the day the refund was uploaded.
It’s a bit of a workaround, but it should help you get a handle on where most of your refunds are originating from.