"Validation error: PayPal currencies do not match" in WooCommerce

2.3k views Asked by At

Using WooCommerce and the standard PayPal gateway to accept payments. When testing in Sandbox mode, everything works great. When we test live with a real transaction, payment goes through no problem, but within WooCommerce there is a note as follows:

"Validation error: PayPal currencies do not match (code USD). Order status changed from Processing to On Hold."

We do not have multiple currencies in the shop. Everything is set to USD. PayPal is set to accept payments in different currencies and automatically convert them. We do not have a currency conversion plugin installed. We double checked the API settings (they are correct), we've generated new API keys and tried again, we tried it with and without IPN enabled.

The payment goes through via Paypal, but we still get this error inside the order notes, and the status changes to On-Hold instead of "Processing".

We also cannot process a refund via PayPal from within WooCommerce, we get a "Refund Failed" message. Not sure if this is related, but we would like to figure that out as well.

1

There are 1 answers

3
Vikas Kapadiya On BEST ANSWER

i found temporary fix for this problem

go to “plugins/woocommerce/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php” and comment two lines (line number : 176 and 177 ) like this

//$this->validate_currency( $order, $posted['mc_currency'] );
//$this->validate_amount( $order, $posted['mc_gross'] );

Source : https://www.kapadiya.net/wordpress/woocommerce-paypal-for-inr/