PayPal Rest API Sending USD but I only use AUD

PayPal Express Works Fine :white_check_mark:

Both in Sandbox mode and in Live mode, I can get Paypal Express to work perfectly when using the User/Pass/Signature credentials from my PP Business account.

Paypal REST API Does Not

When I use the API credentials for a new app I created for Paypal REST I can’t get it to work on either Sandbox or Live.

There are no errors at the Paypal end according to their logging.

In both versions of testing, I see a similar error relating to sending the wrong currency being sent in Safari’s Console.

Here’s what it says in Sandbox mode:

And it at least shows the Paypal button.

In Live mode it shows this:

And it doesn’t show the Paypal button.

Screenshot 2024-01-01 at 10.07.18 pm

All of my customers and my store are in AU and spend AUD.

Any ideas or have I missed something basic?

Thanks so much for any insight!

Hi,

@david do you have any suggestions?

Not sure if this helps:

From The Invoice Ninja End

Expected currency from order api call to be USD, got AUD. Please ensure you are passing currency=AUD 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.


From:


From The Paypal End

I see this in my PayPal API call logs:

{
  "intent": "CAPTURE",
  "payer": {
    "address": {
      "address_line_1": "*****",
      "admin_area_1": "*****",
      "admin_area_2": "*****",
      "country_code": "AU",
      "postal_code": "*****"
    },
    "email_address": "*****",
    "name": {
      "given_name": "*****",
      "surname": "*****"
    }
  },
  "purchase_units": [
    {
      "amount": {
        "breakdown": {
          "item_total": {
            "currency_code": "AUD",
            "value": "2562.5"
          }
        },
        "currency_code": "AUD",
        "value": "2562.5"
      },
      "description": "Invoice Number# 1111",
      "invoice_id": "1111",
      "items": [
        {
          "name": "Invoice Number# 1111",
          "quantity": "1",
          "unit_amount": {
            "currency_code": "AUD",
            "value": "2562.5"
          }
        }
      ]
    }
  ]
}

Is the problem simply that it’s sending currency_code instead of currency?

That’s possible, @david any thoughts?

Came here with same issue. I have a USD as primary currency in Paypal. Default currency is set to EUR in invoice ninja (because i normally collect cash)

If i generate EUR invoice in Invoice Ninja, the paypal module doesn’t work with above error.
I changed Client currency to USD and it works.

In paypal i have a EUR and USD balance
with this setting enabled: “Accept all payments without converting the currency, either adding to an existing balance or creating a new holding currency where needed.”

thanks.

/J

1 Like

Worth mentioning I also have multiple currencies enabled in PayPal.

Mine is going AUD to AUD though … somewhere it’s being fed USD.