I am using the Paypal IPN to take payments from my website. The website is only in development at the moment and so I set up a Sandbox site to test and I've been taking payments very successfully in GBP currency (my country of residences currency) with a test account registered in the UK.
However, I want the site to detect a visitors country of origin and allow them to purchase in their own currency. So I accessed the site via a US based proxy. The site used dollars as the currency and I logged into the Paypal sandbox with an account I had set up as US based.
However my return from Paypal has the following:
[payment_status] => Pending
[pending_reason] => multi_currency
[mc_gross] => 4.99
[protection_eligibility] => Eligible
[address_status] => confirmed
[payer_id] => X7QACLK8F7L9Q
[address_street] => 1 Main St
[payment_date] => 13:54:37 Feb 18, 2015 PST
[payment_status] => Pending
[address_country_code] => US
[notify_version] => 3.8
[payer_status] => verified
[address_country] => United States
[num_cart_items] => 1
[address_city] => San Jose
[payment_type] => instant
[address_state] => CA
[pending_reason] => multi_currency
[txn_type] => cart
[mc_gross_1] => 4.99
[mc_currency] => USD
[residence_country] => US
[test_ipn] => 1
[payment_gross] => 4.99
The purchases aren't registering on the site as the payment_status isn't complete (quite correctly). Anyone know the reason for this?
Right I've finally worked out what the issue was and managed to resolve this so thought I would post an answer to my own question in order that it may help people in future.
Firstly log in to your Sandbox Developer Site (where you set up all your fake accounts etc). https://developer.paypal.com/developer
We need to be logged in to this site in order to be able to then log in to the Sandbox Paypal Business Account.
Leave yourself logged in to the Sandbox Developer Site above and open a new tab and go to the Sandbox Paypal Business Login: Sandbox Business Login
Now you'll probably see your "pending" transactions in the list. You can choose to "Accept" a pending transaction and the next page will allow you to alter your payment recieving preferences.
I ticked the radio box "Yes, accept and convert them to British Pounds" in answer to what to do with payments from a different currency.
That sorted it for me. Hope it helps someone else along the way.
Thanks to the other posters for their help on this as well. It helped me get to the bottom of it.