I've got a business.
We use a paypal account to collect cash from our customers.
We currently use the braintree SDK to actually get the user's payment authorization. We use a barely-changed implementation of these instructions
We are currently pricing and settling in Canadian dollars, as we're a Canadian company and we didn't really think we'd get this big.
We'd like to expand to using USD price and settle, since most of our customers and suppliers are in USD and we'd like to avoid the currency conversion. I had been hoping this would be easy: Our code currently creates a Braintree::Transaction::Sale() with merchantAccountId: 'CAD'
, and I was hoping I could just switch to merchantAccountId: 'USD'
. However, this gets me a 2091 decline: "Currency of this transaction must match currency of your PayPal account"
.
How can we make our PayPal account's currency USD? I have tried (in the sandbox) to switch to it having USD as primary, but no luck.
I have confirmed that USD is selected as a currency in my "Express Checkout via Braintree SDK" settings here.
In the labyrinth of documentation sprayed around PayPal and Braintree's sites, I haven't been able to figure out how exactly to solve this problem that doesn't involve creating entirely new PayPal and/or Braintree accounts. I'm not even certain creating entirely new accounts would solve my issue, because I don't remember setting CAD as any kind of permanent setting while setting up our original PayPal account.
transaction.sale()
with the USD merchant account. According to the Braintree docs for the2091
decline code you cited, "Your PayPal account can only process transactions in the currency of your home country. Contact PayPal's Support team for more information." – Shea