• Resolved markiljas

    (@markiljas)


    Hello,

    I’ve been having trouble recently with some PayPal payments, we introduced USD to our merchant account, so we can accept both USD and EUR. However, I have been getting warnings when a customer from the US tries to use PayPal, because it shows him price in USD, but apparently reports the amount in EUR, even though we have both enabled in PayPal and Braintree settings. I’ve reached out to Braintree and they have explained the following:

    “I’ve taken a look at your declined PayPal transactions in USD and noticed that these transactions were declined with the response message 2091 – The currency of this PayPal transaction must match the currency of the merchant account. This response code means the currency code in your client-side PayPal codes doesn’t match the currency of the merchant account in your server-side Transaction Sale call.

    For example, the transaction 4tq069cq was declined due to this currency mismatch response. Looking at your logs, I see that your client-side integration passed the currency code EUR with the currency parameter in your client-side integration. However, the USD merchant account amaranthinebooksUSD was passed in your Transaction Sale call, which explains why this transaction was declined.

    If you’d like to process PayPal payments in USD currency, you need to make sure that the currency code USD is passed in your client-side codes, so passing a USD merchant account with your server-side Transaction Sale call alone would not be enough.”

    How can I accept both currencies? Couldn’t figure out is there some option in the settings.

    Thanks!

    The page I need help with: [log in to see the link]

Viewing 4 replies - 16 through 19 (of 19 total)
  • Thread Starter markiljas

    (@markiljas)

    Well, I guess, but most of these assumptions are inaccurate. We only deal with physical products (books), so it is always the same on that end. As soon as customer clicks “add to cart” they are transferred to the cart page, where they can see the shipping is free and can click “proceed to checkout”. Also these were all new customers.

    The plugin (WC Price Based on Country) uses MaxMind Geolocation to determine where the customer is from, so no currency selection. So when they enter the billing address, it matches to the geolocation, because no one so far tried to enter any other address then it was detected.

    Also, we have at least one instance where customer tried to buying via PayPal back-to-back and failing due to this error. Don’t know if any of this info helps, but would you say that the Price Based on Country plugin is the problem or?

    Kind regards

    Plugin Author Clayton R

    (@mrclayton)

    @markiljas,

    I think you might have misunderstood some of my points. I am talking about the customer trying to purchase the book directly from the product page which happens if they click the PayPal button. That would skip your Add to Cart flow entirely.

    It doesn’t matter if your book is physical or not, if you don’t have your PayPal account setup to export the billing phone that could cause the “Click here to complete purchase” link to appear since not all required fields were sent from PayPal. That plugin determines the currency based on the customer’s billing address if it exists. So you could go to the checkout page and change the billing country and it would change the currency of the order (that’s how their documentation explains it anyway).

    If your customer’s shipping country is different than their determined location that could also change their currency when using PayPal. Consider the following scenario:

    Custom attempts to purchase product directly from product page by clicking PayPal. Location is determined to be United Kingdom so EUR merchant account is used. They select their shipping address as United States, so when shipping address is exported from PayPal it populates the billing address as well, using United States. The order is created and checkout process starts. The currency plugin sees United States in billing country field and determines USD currency should be used. Braintree plugin sees USD and chooses USD merchant account. But the nonce generated on product page was created using EUR account since that was original currency determined from geo location. That’s what causes a mis-match

    I believe the answer is for you to just offer PayPal on the checkout page and remove it from product pages. I am almost 100% sure that’s what caused the mis-match. Your customer is selecting a shipping address that’s different than their determined location when the product page loads.

    Kind Regards,

    Thread Starter markiljas

    (@markiljas)

    Yep, I see how that makes sense, but in each case so far billing address matched the shipping address.

    Also, I will definitely switch to PayPal only on checkout stage and will see if I can get one of those customers can confirm to me whether they tried to buy it on the product page or the checkout page, since without that information we’re pretty much in the dark…

    Thank you for your help, I’ll report back when and if I get any response from the customers.

    Plugin Author Clayton R

    (@mrclayton)

    @markiljas The billing address would match the shipping address because our Plug-in populates the billing address from the shipping address when PayPal is used.

    We do this because PayPal does not provide billing address details like Apple Pay or Google pay. By populating the billing address from the shipping address it guarantees a one click check out experience.

    OK sounds good I will wait for your reply. In the meantime I will mark this thread as resolved.

    Kind regards,

Viewing 4 replies - 16 through 19 (of 19 total)

The topic ‘PayPal Error’ is closed to new replies.