Question

I'm using PayPal's Express checkout to do a payment for an customer of ours. To confirm/finalize the payment a call to "DoExpressCheckoutPayment" is made. The PAYMENTINFO_0_PAYMENTSTATUS in PayPal's response is set to "Pending" instead of "Completed".

Meaning a few things, mostly:

  • Customer currency is different then the companies currency.
  • The money on the user's account wasn't sufficient.

How should I handle this? Should I setup IPN for this, make cronjob check the payment a few days later or will PayPal return a second time to my succes URL?

Was it helpful?

Solution

Its possible that you are sending a doAuthorization API Call then the status will be pending until you capture the authorization.

Here is a similar post that gives information on Express Checkout pending transactions. Both answers have detailed reasons why a payment is pending for Express Checkout:

Stack Question Pending PayPal Payments

So you either need a payment action of Sale or you need to capture your authorization.

From the PayPal Documentation to ensure that the transaction is completed you need to pass the following API Call:

PAYMENTREQUEST_0_PAYMENTACTION=Sale

You can find more information on the PayPal Developer Site:
PayPal Express Checkout Payment Information

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top