Common Errors
↑ Back to topThese errors have been reported over time and may have occurred for different users for various reasons. The error message may be the same for two different users, but the cause can be quite different. The cause often cannot be determined by the error alone.
Please get in touch with the support team when it is not clear how the error you experienced could be resolved.
Something went wrong. Please try again or choose another payment source.
↑ Back to topThis generic error can be caused by various factors, including but not limited to:
- negative PayPal API responses (e.g. currency not supported or invalid characters)
- potential plugin/theme conflicts
- REST endpoint blocked
- other web server configuration
These kinds of errors may be caused by a compatibility issue with a third-party plugin, an invalid plugin configuration, or temporary service disruptions at PayPal.
Usually, following advanced troubleshooting steps helps to isolate the cause of the problem.
The payee does not have a PayPal account.
↑ Back to topThis error can occur when the API credentials are invalid or the merchant’s PayPal account is not verified.
In some cases, disconnecting and reconnecting the account using the onboarding wizard may be sufficient to resolve the error. Other times, the merchant may need to reach out to the PayPal Merchant Support to clarify the account verification. In some cases this may require providing business identification.
DUPLICATE_INVOICE_ID
↑ Back to topThe error DUPLICATE_INVOICE_ID
error is a security feature from PayPal to prevent accidental double payments.
PayPal Payments automatically sets an “invoice prefix” and then sends the WooCommerce order numbers in the pattern “invoice prefix + ordernumber” to PayPal. When the prefix is set to cfbdg-
and the order number is 123
, PayPal Payments sends the invoice ID cfbdg-123
to PayPal.
Under certain circumstances, PayPal Payments may send an invoice ID that already exists at PayPal and the transaction would fail. This can happen, for example, when an older backup from the website is restored, as the most recent WooCommerce orders may not exist anymore after the restore. As soon as WooCommerce attempts to create a new order with the number 123
and the same invoice prefix, PayPal would throw this error to prevent accidental double payments because there is already a payment at PayPal with the same invoice ID.
This feature can be disabled at PayPal, though the recommendation is to keep it enabled. Please ensure that every site using PayPal Payments with your account has a unique invoice prefix.
But to disable this feature at PayPal, follow these steps:
- Log in to your Business PayPal account (https://www.paypal.com/businessmanage/preferences/payments)
- Go to the Payments Preferences section
- Under the “Block accidental payments:” section, select the option “No, allow multiple payments per invoice ID”
With this feature disabled, PayPal no longer throws an error when an invoice number that already exists in the system is submitted.
Custom field not validated when clicking the PayPal button
↑ Back to topImagine you added custom code to your checkout page, which verifies if certain conditions are met when clicking “Place order”. The hook woocommerce_checkout_process
is frequently used for validating that the condition is met. If the conditions are not met, it does not allow the order to be placed and displays an error message. Here is an example code snippet to add a checkbox to the checkout page and validate it:
/** * Add a checkbox field to the checkout **/ add_action( 'woocommerce_review_order_before_submit', function() { woocommerce_form_field( 'custom_checkbox', array( 'type' => 'checkbox', 'required' => true, 'label' => 'This checkbox must be checked to proceed with the payment.', )); }, 9 ); /** * Validate the checkbox on the checkout when clicking "Place order" button **/ add_action( 'woocommerce_checkout_process', function() { if ( ! isset( $_POST['custom_checkbox'] ) ) { wc_add_notice( __( 'Please acknowledge the required checkbox.' ), 'error' ); } });
Q: What happens? This code works with most payment methods, but the PayPal popup window opens despite the box not being checked. The validation step does not happen before the payment process starts.
A: The hook woocommerce_checkout_process
is called only after creating the PayPal order (when closing the popup), so it would not be considered when clicking the PayPal button.
To solve this problem, you can use the hook woocommerce_after_checkout_validation
because validate_checkout is called after clicking the smart button but before loading the popup window.
/** * Validate the checkbox field on the checkout when clicking "Place order" button & the PayPal smart buttons **/ add_action( 'woocommerce_after_checkout_validation', function() { if ( ! isset( $_POST['custom_checkbox'] ) ) { wc_add_notice( __( 'Please acknowledge the required checkbox.' ), 'error' ); } });
Alternatively, enabling the basic validation can help validate custom fields.