Paypal IPN always return "payment_status: Pending" on sandbox?

Solution 1:

When you're logged into your test business account, manually navigate to:

https://www.sandbox.paypal.com/businessmanage/preferences/payments

You would normally be able to get there by going through your "My Business Setup" but currently it redirects to PayPal live (despite being in the sandbox).

Once you're on that page, change "Block payments sent to me in a currency I do not hold" to "No, accept them and convert them to ..."

Also, don't forget to confirm your business account using the PayPal Sandbox front-end and "Test Email" section of the API.

Solution 2:

My problem was that my sandbox merchant account was made as a British user (and GBP as currency). When I tried to go through orders in Danish kroner (DKK), it would tell me that the purchase was "Unclaimed" in the merchant view. As soon as one order in DKK was accepted, and I chose to create a new currency in DKK, IPN sent me all the "payment_status = completed" messages.

Solution 3:

After dealing with this problem a little & PayPal changing the UI,

Here are the exact instructions from PayPal Merchant Technical Support:

Thank you for contacting Merchant Technical Support.

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!

& Thats what it looks like:

enter image description here

Solution 4:

You can resolve it by the following instruction.

  1. Login to your Developer Central.

  2. Click on Test Accounts tab on the left. You should have created these test accounts for testing on Sandbox.

  3. Find the column ‘Payment Review’.

  4. Find the sandbox account you are using and click on “Enabled” in the ‘Payment Review’ column.

  5. This should change to “Disabled” and now payments funded from your balance and credit card will complete instantly.

Solution 5:

Two possible reasons:

1. seller account has option to accept or decline payment

In this case you need to login as seller and accept payment and you will get another IPN with payment_status=Completed

Steps:

  1. login to your developer central
  2. press "test accounts" on the left
  3. select seller account and press "Enter sandbox test site" on the bottom
  4. You should see seller dashboard with option to accept or decline any payment (you might need to relogin at this step using seller test account credentials)

2. Payment review is enabled

Solution:

  1. Login to your Developer Central.
  2. Click on Test Accounts tab on the left. You should have created these test accounts for testing on Sandbox.
  3. Find the column ‘Payment Review’.
  4. Find the sandbox account you are using and click on “Enabled” in the ‘Payment Review’ column.

This should change to “Disabled” and now payments funded from your balance and credit card will complete instantly.