WPIntell

Source evidence

Issues with negative PayPal fees since 4.0.4

WooCommerce PayPal Payments · support · 2026-05-28T16:50:00+00:00

complaintsentiment
highseverity
0.98relevance
1replies
Evidence linked to opportunitycommercial context

Proof Health

Open evidence

Commercial opportunities need traceable source links before they are treated as build-worthy.

8 / 33 rows with source links

24.2% of this page's analysis has direct source links.

0 build-decision rows missing links

0 rows here require auditable proof before promotion.

25 rows with no attached evidence

0 rows have source counts but still need direct links.

Conversation

support
Enwikuna unresolved
Hi there, we have some big issues since the last update and we are unable to re-produce it which makes the thing even more strange. We have a custom checkout rule which adds a negative fee if a customer is over a defined price. Somehow, PayPal applies the negative fee twice: PayPal: https://ibb.co/WvBb2YkC WooCommerce: https://ibb.co/NnrTbdzs We are applying the custom fee this way: add_action( 'woocommerce_cart_calculate_fees', [ $this, 'woocommerce_cart_calculate_fees_action' ], 20 ); /** * Add free shipping fee to checkout in case threshold is reached * * @return void */ public function woocommerce_cart_calculate_fees_action(): void { if ( aqc_get_checkout_free_shipping_notice_mode() === 'yes' ) { $shipping_package = []; $shipping_packages = WC()->shipping()->get_packages(); $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); if ( empty( $chosen_shipping_methods ) ) { return; } $shipping_id = $chosen_shipping_methods[0]; foreach ( $shipping_packages as $package ) { if ( isset( $package['rates'][ $shipping_id ] ) ) { $shipping_package = $package; break; } } if ( empty( $shipping_package ) ) { return; } $shipping_zone = WC_Shipping_Zones::get_zone_matching_package( $shipping_package ); if ( $shipping_zone === null ) { return; } $free_shipping_notice_threshold = aqc_get_checkout_free_shipping_notice_threshold( $shipping_zone->get_id() ); $cart_total = wc_prices_include_tax() ? WC()->cart->get_cart_contents_total() + WC()->cart->get_cart_contents_tax() : WC()->cart->get_cart_contents_total(); if ( ! empty( $cart_total ) && ! empty( $free_shipping_notice_threshold ) ) { $cart_total = number_format( $cart_total, wc_get_price_decimals() ); if ( $cart_total >= $free_shipping_notice_threshold ) { $fee_label = aqc_get_checkout_free_shipping_notice_fee_label(); $fee_amount = aqc_get_checkout_free_shipping_notice_fee_amount(); if ( ! empty( $fee_label ) && ! empty( $fee_amount ) ) { WC()->cart->add_fee( $fee_label, - $fee_amount ); } } } } } This is causing us to loose a lot of money! Can you please check if maybe the order items sent to PayPal are not calculated correctly or the fee gets reduced twice – once on order item level and another time on final discount calculation? Hi @enwikuna , Thank you for reaching out to us, we are here to help. At this stage, we would recommend temporarily downgrading to version 4.0.3 until a proper fix is available. Version 4.0.4 introduced a fix for an edge-case calculation/rounding issue that could cause certain payments to be rejected. However, it also introduced a new issue affecting stores that use negative fees or third-party discount implementations based on negative fee values. In 4.0.3 and earlier, the captured PayPal amount consistently matched the WooCommerce order total. In 4.0.4, this consistency is no longer guaranteed in some negative fee scenarios, which may result in mismatched totals between PayPal and WooCommerce orders. We suggest remaining on version 4.0.3 while we wok on a patch for 4.0.4. Let us know if you have further questions. Meanwhile, can you also share your system status report with us: Navigate to the WooCommerce / Status section in your site’s admin panel. Click on the Get system report button and then click Copy for support . Paste the report into our PrivateBin . After uploading, please share the link here so we can review the details thoroughly. Alternatively, to speed up the whole process we suggest you to contact us directly for further assistance. You can open a ticket with our service desk. Here’s how you can request support: Request Support . Please make sure to include the URL of this thread in your ticket for reference. Best Regards, Jamie

Comments

1 shown
Syde Jamie 2026-05-29T01:34:00+00:00

Hi @enwikuna , Thank you for reaching out to us, we are here to help. At this stage, we would recommend temporarily downgrading to version 4.0.3 until a proper fix is available. Version 4.0.4 introduced a fix for an edge-case calculation/rounding issue that could cause certain payments to be rejected. However, it also introduced a new issue affecting stores that use negative fees or third-party discount implementations based on negative fee values. In 4.0.3 and earlier, the captured PayPal amount consistently matched the WooCommerce order total. In 4.0.4, this consistency is no longer guaranteed in some negative fee scenarios, which may result in mismatched totals between PayPal and WooCommerce orders. We suggest remaining on version 4.0.3 while we wok on a patch for 4.0.4. Let us know if you have further questions. Meanwhile, can you also share your system status report with us: Navigate to the WooCommerce / Status section in your site’s admin panel. Click on the Get system report button and then click Copy for support . Paste the report into our PrivateBin . After uploading, please share the link here so we can review the details thoroughly. Alternatively, to speed up the whole process we suggest you to contact us directly for further assistance. You can open a ticket with our service desk. Here’s how you can request support: Request Support . Please make sure to include the URL of this thread in your ticket for reference. Best Regards, Jamie