---
title: "Troubleshooting PayPal errors"
description: "Troubleshoot common PayPal issues in a Web Drop-in or Components integration using the /payments endpoint."
url: "https://docs.adyen.com/payment-methods/paypal/paypal-troubleshooting"
source_url: "https://docs.adyen.com/payment-methods/paypal/paypal-troubleshooting.md"
canonical: "https://docs.adyen.com/payment-methods/paypal/paypal-troubleshooting"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# Troubleshooting PayPal errors

Troubleshoot common PayPal issues in a Web Drop-in or Components integration using the /payments endpoint.

[View source](/payment-methods/paypal/paypal-troubleshooting.md)

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](https://docs.adyen.com/api-explorer/Checkout/latest/post/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](https://docs.adyen.com/api-explorer/Checkout/latest/post/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](https://docs.adyen.com/api-explorer/Checkout/latest/post/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](https://docs.adyen.com/api-explorer/Checkout/latest/post/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](https://docs.adyen.com/api-explorer/Checkout/latest/post/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:

```json
{
   ...
   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](/payment-methods/paypal/web-drop-in/?tab=config-payments_2#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

Check your PayPal Merchant ID as configured in the payment method settings and contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to verify if the same PayPal Merchant ID is set up on your account.

## See also

* [PayPal raw responses](/development-resources/raw-acquirer-responses#paypal-raw-responses)
