If an error occurs with integrating PayPal in your website or when you submit a PayPal payment, try troubleshooting the problem using the information provided here. For some common errors, we explain what they mean and how to fix them.
This troubleshooting information applies to Web Drop-in and Web Components integrations using the /payments endpoint.
PayPal overlay keeps loading
What it means
When the shopper selects the PayPal button, the PayPal window loads with a spinning wheel but nothing updates. When this happens, the browser console doesn't always show a warning or error that indicates the PayPal SDK is not properly initialized.
How to troubleshoot
The PayPal window is initialized as soon as the shopper selects the PayPal button, in the onSubmit
event handler. However, the window is not updated until the action
object from the /payments response is passed to the Drop-in or Component. If the PayPal overlay is stuck loading, check that you pass the full response.action
object from your server to the Drop-in or Component.
Stuck on "Processing Payment"
What it means
After the customer has completed the necessary steps in the PayPal window and selects the Pay button, the window closes. A message appears indicating that the payment is being processed, but the payment is not actually completed.
How to troubleshoot
This behavior indicates that you haven't made the /payments/details request. Because the PayPal action.type
is sdk, you need to configure onAdditionalDetails
for the PayPal Drop-in or Component. The onAdditionalDetails
event handler must trigger a /payments/details request, passing the state.data
from onAdditionalDetails
.
Custom payment button doesn't work
What it means
This issue occurs when you try implement a single payment button for all payment methods including PayPal. You are trying to hide the PayPal button by setting showPayButton
to false. However, using a custom button to submit PayPal transactions is not possible.
How to troubleshoot
The Pay button for PayPal is the "PayPal smart button". This makes a direct call to the PayPal library, to retrieve information about your PayPal account before processing the payment. This means that PayPal requires their button to be somewhere on the page to handle the payment, because there is no alternative method for you to retrieve your shopper's PayPal account information.
Console errors
We recommend testing PayPal transactions with the browser console open, and check for any errors reported in the console. The next sections discuss some of those errors. Note that if an error appears in the console, the transaction remains an open offer.
Expected currency from order api call to be USD, got EUR. Please ensure you are passing currency=EUR to the sdk url.
What it means
This error occurs when you are using the /payments endpoint and are not passing the currency code in the initialization of the Web Drop-in or Component. The amount
object must include a currency
. For example:
{
...
amount: {
currency: "EUR",
value: 1000
}
...
}
How to troubleshoot
Check if the paymentMethodsConfiguration
object of the Web Drop-in or Component has the same amount.currency
as the actual /payments
request.
Error: Expected intent from order api call to be capture, got authorize. Please ensure you are passing intent=authorize to the sdk url.
What it means
This error indicates there is a mismatch between the intent
set in the payment method configuration and the intent
passed to PayPal's SDK.
How to troubleshoot
For Web Drop-in v3.13.0 or earlier, the intent
must be passed dynamically from the payment method configuration. Make sure that you are not overwriting this setting by passing the wrong intent
value in the paypalConfiguration
object. Also ensure that the paymentMethodsResponse
contains the paypalConfiguration
with the intent
that corresponds with the authorisation type that is configured for your merchant account.
Payee(s) passed in transaction does not match expected merchant id. Please ensure you are passing merchant-id=XXXXXXXXXXXXX or merchant-id=XXXXXXXXXXXX@XXXX.com to the sdk url.
What it means
This error occurs when the wrong PayPal Merchant ID is configured in the payment method settings.
How to troubleshoot
Look up your PayPal Merchant ID, and contact our Support Team to verify if the same PayPal Merchant ID is set up on your account.