3

I am using PayPal adaptive payments. I am retrieving PaymentDetails details here https://developer.paypal.com/docs/classic/api/adaptive-payments/PaymentDetails_API_Operation/

What isn't clear to me is the difference between senderTransactionStatus and transactionStatus?

What's even more strange is I can have the following scenario:

status: COMPLETED
paymentInfoList.paymentInfo.transactionStatus: null
paymentInfoList.paymentInfo.senderTransactionStatus: PENDING
paymentInfoList.paymentInfo.pendingReason: SOME REASON

How can it be that status is COMPLETE, but senderTransactionStatus is PENDING, and transactionStatus if null?

I have no idea which status I should use, or even how to use them in combination to report correct status back to my users.

Ive read the documentation, but still none the wiser.

GWed
  • 15,167
  • 5
  • 62
  • 99
  • If you find a solution, please post it as an answer. I'm having the same problem. `transactionStatus=PENDING`, `senderTransactionStatus=PENDING`, `pendingReason = OTHER` but `status=COMPLETED` – bad_keypoints May 07 '14 at 02:14
  • bounty added - up vote to help raise interest in question – GWed May 08 '14 at 10:22

1 Answers1

2

status has to do with the payment being submitted. This will show completed as long as the payment has moved into processing (ie; funds are moving or pending move and the transaction was not declined).

senderTransactionStatus has to do with the funds leaving the senders account. It would show completed if it is an INSTANT payment (that completed): creditcard, instant transfer, balance transfer. Pending would show if the funds are on hold because of eCheck, Sending Limits, Risk Review, etc. There are a list of pendingReasons on the PaymentDetails API page. OTHER may mean something that is not disclosed to either party due to privacy policy: it could be compliance related, Remittance Transfer Rule, etc.

transactionStatus should be completed once the receiver has the funds in their account. Though, this can change depending on what is happening with the transaction. IE: refunds, holds because of chargebacks, reversals due to risk or unauthorized account access. Edit: This will be NULL if the email address of the receiver is NOT VALID. pendingReason will say UNILATERAL because this email address does not exist in the system and is UNCLAIMED

If the transactionStatus is not NULL, it and senderTransactionStatus will always be the same. This includes being pending for Payment Review, Manually accepting currency, eCheck, Instant Bank Transfer. Everything.

Aaron
  • 1,271
  • 1
  • 7
  • 10
  • in an attempt to validate your answer, is this documented somewhere by PayPal? If not, how do you know you are right? – GWed May 08 '14 at 16:29
  • Most of this information is listed on the PaymentDetails page, but I have personally tested to verify what the status means (even if you refund it stays in completed state.) The only thing they do not mention is what the OTHER pending status means. For that I am basing it off of personal experience doing customer support for PayPal. – Aaron May 08 '14 at 16:52
  • To add; the "PP" in this name stands for PayPal. He's with PayPal. ;-) – Robert May 13 '14 at 11:19
  • Also, after a few more tests with different options I have not gotten `senderTransactionStatus` to be different than `transactionStatus` but I think it could be, if there was a RISK based hold on the transaction, as the buyer does not see that inside of their PayPal account. These two match the statuses inside either the buyer or seller accounts. – Aaron May 13 '14 at 15:11
  • you 'think it could be'? If you work for paypal, doesn't this scream at you?! Shouldn't this be well defined? Shouldn't this all be well documented? – GWed May 15 '14 at 07:15
  • I agree, this could be documented better. I have run some more tests, and talked to a few people in Developer Technical Support and updated my answer accordingly. – Aaron May 15 '14 at 18:31