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.
Please try to follow the instructions below to turn off the Payment Review function for your Sandbox account:
Go to PayPal Developer Website
Log in to your developer account
Click Applications
Click Sandbox accounts
Click on to the email address that you would like to turn off the Payment Review option and click Profile after it expand
Click Settings
And select Off for the Payment review.
Click Close
!!! Make sure you are doing this on your PayPal SandBox Merchant Account!
Login at your main PayPal account (not sandbox), go to Seller preferences and click on update Block payments.
As of 2019, it's nightmare to use PayPal tutorial links because they changed the structure of their website without proper redirection of old links.
To accept payments made in difference currencies and marked as unclaimed/pending
due to multi_currency
, you've 2 options :
Go to https://www.paypal.com/listing/transactions and manually accept the transaction
You'll then be presented with
options to accept and create balance in X
currency:
Go directly to https://www.paypal.com/cgi-bin/webscr?cmd=_profile-pref, which should redirect you to https://www.paypal.com/businessmanage/preferences/payments, and choose to automatically accept and convert future payments as follows:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With