Skip to content Skip to sidebar

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Supporter timezone: America/Los_Angeles (GMT-07:00)

This topic contains 9 replies, has 0 voices.

Last updated by veronicaC-12 6 months, 1 week ago.

Assisted by: Bobby.

Author Posts
October 1, 2025 at 12:32 pm #17448568

veronicaC-12

Background of the issue:
We are using the WPML Multilingual & Multicurrency for WooCommerce plugin on our WooCommerce site, which supports three currencies: USD, EUR, and GBP. We have a multisite setup, and our store URL is: hidden link. We need to receive payments through different Stripe accounts based on the selected currency: USD transactions should be processed through Stripe Account A, and EUR and GBP transactions should be processed through Stripe Account B. The payment process is working correctly, and the funds are being received in the appropriate Stripe accounts based on the currency.

Symptoms:
For USD orders, refunds work as expected via Stripe Account A. For EUR and GBP orders, refunds fail with the following error message in an alert box: There was a problem initiating a refund: No such charge: 'ch_3SDKOrDHlu6YHS740zjkE033'.

Questions:
Could you please help me out to resolve the issue with refunds for EUR and GBP orders?
Is there any specific configuration needed for handling refunds with multiple Stripe accounts?

October 1, 2025 at 10:06 pm #17450296

Bobby
WPML Supporter since 04/2015

Languages: English (English )

Timezone: America/Los_Angeles (GMT-07:00)

Hi there,

Just to verify are you using different stripe APIs at the moment?

I am not able to find a known issue or any other similar reported issues in our database, however, I did see other Stripe users mention this issue even when not using WPML and they mentioned that one culprit is multiple API keys

October 2, 2025 at 8:01 am #17450836

veronicaC-12

Hi Bobby,

I have already mentioned above that we are using different Stripe accounts for different currencies, and this setup is working properly at the time of order placement. For example, when a customer chooses USD, the payment goes to Stripe account A, and when they select EUR or GBP, the payment goes to Stripe account B.

Refunds for USD orders are working correctly, but refunds for EUR and GBP orders are not working as expected. We are using the default Stripe plugin along with WPML Multilingual & Multicurrency for WooCommerce to handle the multicurrency setup.

If you require any more information, please let me know.

October 2, 2025 at 6:29 pm #17452902

Bobby
WPML Supporter since 04/2015

Languages: English (English )

Timezone: America/Los_Angeles (GMT-07:00)

Thank you for confirming, however, what I want to put focus on is the following part of my response

"other Stripe users mention this issue even when not using WPML and they mentioned that one culprit is multiple API keys"

This seems like it is a known issue with Stripe when it comes to multiple API keys, while I review the backend please in the meantime also contact Stripe's support as they might be able to help from their side as well.

I would like to request temporary access (wp-admin and FTP) to your site to test the issue.
(preferably to a test site where the problem has been replicated if possible)

**Before we proceed It is necessary to take FULL BACKUP of your database and your website. Providing us with access, you agree that a backup has been taken **

I often use the Duplicator plugin for this purpose: http://wordpress.org/plugins/duplicator/
You will find the needed fields for this below the comment area when you log in to leave your next reply.
The information you enter is private which means only you and I have access to it.

NOTE: If access to the live site is not possible and the staging site does not exist please provide me with a duplicator package created with the duplicator plugin.

Thank you,
Bobby

October 3, 2025 at 7:09 am #17453509

veronicaC-12

Hi Bobby,

To test this issue, you can set up the WooCommerce Stripe Gateway along with WPML configured for multiple currencies, such as USD, GBP, and EUR. Please ensure your Stripe account is properly set up. On the product page, use the language switcher to place orders in different currencies. For configuring payments in each currency, kindly refer to the previously shared attachment and use the same Stripe publishable and secret keys for the EUR and GBP languages as well. Then, try placing and refunding orders to better understand the issue.

It appears that there is no problem with using multiple Stripe keys for order placement - orders are being placed successfully using two different Stripe accounts. However, the refund process does not seem to work as expected. If your plugin supports multiple payment options, it's important to ensure that all payment-related scenarios, including refunds, function smoothly.

Currently, while the order placement works, the refund may fail - especially when processed in a different currency. It seems that during a refund, the system might be using credentials from Stripe Account A instead of Stripe Account B, causing it to not locate the correct charge ID and resulting in a failed refund.

Please let me know if you need more details.

Thanks!

October 3, 2025 at 5:05 pm #17455126

Bobby
WPML Supporter since 04/2015

Languages: English (English )

Timezone: America/Los_Angeles (GMT-07:00)

Thank you for the above details!

One item I want to clarify on is, how are you configuring the multiple stripe accounts?

Are you adding separate stripe API keys per currency configuration?

October 4, 2025 at 6:35 pm #17456252

veronicaC-12

Hi Bobby,

Yes, we are adding separate stripe API keys per currency configuration!

October 6, 2025 at 7:53 pm #17461888

Bobby
WPML Supporter since 04/2015

Languages: English (English )

Timezone: America/Los_Angeles (GMT-07:00)

Thank you for confirming.

From feedback I received from our team it looks like this is most likely not supported by WCML.

Additionally from feedback coming from online discussions it also looks like this is not supported natively by Stripe, unless a separate plugin is used.

I will go ahead and escalate this to our Dev team for further feedback as it looks like this might not be a supported functionality.

October 7, 2025 at 10:56 pm #17465565

Bobby
WPML Supporter since 04/2015

Languages: English (English )

Timezone: America/Los_Angeles (GMT-07:00)

Update:

We are working internally to further escalate this into development in order to also support refunding.

I will update you here again once I have more feedback.

October 8, 2025 at 8:05 am #17466109

veronicaC-12

Okay, Thanks!