Field notes
Store the reference before you need the investigation
The most useful join key is the one recorded when fulfillment happens.
At fulfillment time
Persist the exact provider purchase reference next to an immutable ledger transaction ID. Keep the application account, credit currency, integer units and effective timestamp. Do not rely on matching email addresses or approximate payment amounts.
When events repeat
A delivery retry is not a second purchase. Your application needs its own idempotent fulfillment mechanism. Ropely can surface suspicious duplicate grants but does not replace that mechanism.
When the reference is missing
Do not manufacture a mapping to make the check pass. Record the gap and investigate the original source. An inconclusive result preserves uncertainty that a guessed match would hide.