Improve support for multicurrency setups
Currently:
CiviCRM can support charging in multiple currencies.
Stripe supports multiple currencies, but converts into your 'base currency' for your account.
Example: My account is in GBP, but I charge for an event in EUR.
CiviCRM records the contribution in EUR. The stripe 'fee' is also converted to EUR and stored against the contribution.
Limitations:
This is difficult to reconcile. Because actually we have:
- The charge which was in EUR
- The converted amount in GBP (and exchange rate used)
- Stripe's fee in GBP
- The net expected in the bank in GBP
CiviCRM doesn't store all these data points, which makes it hard to reconcile accounts.
Proposed solution:
Store all the data!
https://lab.civicrm.org/extensions/stripechargeamount/ - this extension is useful, but we can go further, also storing the fee and net in the 'payout' currency, so that we can reconcile CiviCRM against Stripe against the bank more easily.