How to handle payments on a multicurrency website using Mollie gateway?
We found a quickfix by editing the Commerce_PaymentsService.php file in craft/plugins/services/.

We changed to following:

$request = [
    'amount'               =&gt; $transaction-&gt;paymentAmount,
    'currency'             =&gt; $transaction-&gt;paymentCurrency,
    'transactionId'        =&gt; $transaction-&gt;id,
    'description'          =&gt; Craft::t('Order').' #'.$transaction-&gt;orderId,
    'clientIp'             =&gt; craft()-&gt;request-&gt;getIpAddress(),
    'transactionReference' =&gt; $transaction-&gt;hash,
    'returnUrl'            =&gt; UrlHelper::getActionUrl('commerce/payments/completePayment', ['commerceTransactionId' =&gt; $transaction-&gt;id, 'commerceTransactionHash' =&gt; $transaction-&gt;hash]),
    'cancelUrl'            =&gt; UrlHelper::getSiteUrl($transaction-&gt;order-&gt;cancelUrl),
];


To:

$request = [
    'amount'               =&gt; $transaction-&gt;amount,
    'currency'             =&gt; $transaction-&gt;currency,
    'transactionId'        =&gt; $transaction-&gt;id,
    'description'          =&gt; Craft::t('Order').' #'.$transaction-&gt;orderId,
    'clientIp'             =&gt; craft()-&gt;request-&gt;getIpAddress(),
    'transactionReference' =&gt; $transaction-&gt;hash,
    'returnUrl'            =&gt; UrlHelper::getActionUrl('commerce/payments/completePayment', ['commerceTransactionId' =&gt; $transaction-&gt;id, 'commerceTransactionHash' =&gt; $transaction-&gt;hash]),
    'cancelUrl'            =&gt; UrlHelper::getSiteUrl($transaction-&gt;order-&gt;cancelUrl),
];


This way the request sends the amount based on the base currency (in our case EUR) to Mollie.

This seems a bit hacky to us so maybe an exception for the Mollie gateway can be added to future updates to Craft Commerce.