[CRITICAL BUG] JPY price data is sent to Stripe Connect as hundredfold price

Price data of JPY with the products set in HivePress (ListingHive) with WooCommerce are sent to Stripe Connect as the wrong prices, hundredfold price of original one, and all the processing fail on Stripe. This is a much critical issue in Japan.

Expected result and actual result

For example, when a user buys a ¥15,000 (including 10% tax) product, the platform payouts ¥10,227 deducted commission 25% to the user’s Stripe express account, but the reality is the processing fails with the following error message because the requested amount (price) to Stripe Connect is ¥1,022,700.

“Transfers using this transaction as a source must not exceed the source amount of ¥15,000”

Extra details

I’ve confirmed that this critical issue is not on the Stripe side with their support: Stripe gets the request of amount “¥1,022,700”, and please see the below link of Stripe log (test mode).

The following link is the checkout page for the product on the marketplace I’m preparing, and it seems that the request trigger is “Order” button or something:

https://siritai.shop/checkout/

Thanks,

At the same time, I’ve been contacting with WooCommerce in the following post, and it would be highly appreciated that HivePress supporters would jump in, because I’m not familiar with technical things…

Thanks,

Is this issue on the WooCommerce side or the HivePress side?

According to the WooCommerce plugin support as follows, this critical issue comes from the HivePress marketplace plugin. Could you fix this issue asap?

Any updates on this? I’d like to know the current situation on the HivePress side.

I’ve just confirmed that WooCommerce sends the correct value of the price to Stripe Connect. So, this issue is on the HivePress side. I want you guys to fix this ASAP.

Could you please confirm whether HivePress or HivePress Marketplace has the following implementation described in the Stripe doc for currencies without decimal places, especially for JPY?

This is saying “For currencies with no decimal places, specify the amount as a whole number without multiplying by 100. For example, to charge 500 yen, specify amounta value of 500.”, and I don’t think that HivePress implements this appropriately for JPY when the price request is sent to each EXPRESS account on the Stripe Connect.

It would be highly appreciated that you do check this, and fix the issue if you find on the current processing of the HivePress plugins, the HivePress Marketplace plugins, the ListingHive theme, or something.

This is much argent and critical issue in Japan, and it would be appreciate that you tackle and fix this ASAP.

Thanks,

Thanks for reporting this, the bug is confirmed, and we’ll fix it as soon as possible.

Please try this PHP code snippet as a temporary solution

add_filter(
	'hivepress/v1/components/stripe/create_transfer',
	function($args){
		
		if('JPY' === $args['currency']){
			$args['amount'] = round( $args['amount'] / 100 );
		}
		
		return $args;
	},
	1000
);

Hi @yevhen

Thanks so much! Really really appreciated!! I copied and pasted the code you provided to Code Snippets (plugin). Is this appropriate way on my side? Sorry, I’m not so familiar with technical things…

Hi @yevhen

I’ve just confirmed that the correct price data “¥10,227” was sent to Stripe Connect and paid to the vender!

BTW, when is the plugin update released in public?

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.