Get status of Paypal NVP correlationid - paypal

I have a transaction with "Correlationid" with Paypal's Express Checkout NVP API. How can I get the details for this correlationid as to whether the transaction was completed or denied?

The CorrelationID is pretty much useless as the transactionID is used in reference lookup such as this. The best solution here to do is run the GETTRANSACTIONDETAILS API call for Express Checkout using the:
PAYMENTSTATUS Status of the payment.
It is one of the following values:
None — No status
Canceled-Reversal — A reversal has been canceled, for example, when you win a dispute and the funds for the reversal have been returned to you.
Completed — The payment has been completed, and the funds have been added successfully to your account balance.
Denied — You denied the payment. This happens only if the payment was previously pending because of possible reasons described for the PendingReason element.
Expired — The authorization period for this payment has been reached.
Failed — The payment has failed. This happens only if the payment was made from your buyer's bank account.
In-Progress — The transaction has not terminated, for example, an authorization may be awaiting completion.
Partially-Refunded — The payment has been partially refunded.
Pending — The payment is pending. See the PendingReason field for more information.
Refunded — You refunded the payment.
Reversed — A payment was reversed due to a chargeback or other type of reversal. The funds have been removed from your account balance and returned to the buyer. The reason for the reversal is specified in the ReasonCode element.
Processed — A payment has been accepted.
Voided — An authorization for this transaction has been voided.
Here is a document to assist you with this call and parameters:
GetTransactionsDetails API

Related

Paypal IPN's payment status

I set up a recurring payment within my website. Of course Paypal is the payment method.
So, when a customer have an empty paypal account, the automatic payment will not be performed.
In this case what's the value of payment_status field ?
And how can I identify the failure of payment ?
The docs for IPN are here.
Per the docs:
payment_status == The status of the payment:
Canceled_Reversal: A reversal has been canceled. For example, you won a dispute with the customer, and the funds for the transaction that was reversed have been returned to you.
Completed: The payment has been completed, and the funds have been added successfully to your account balance.
Created: A German ELV payment is made using Express Checkout.
Denied: The payment was denied. This happens only if the payment was
previously pending because of one of the reasons listed for the
pending_reason variable or the Fraud_Management_Filters_x variable.
Expired: This authorization has expired and cannot be captured.
Failed: The payment has failed. This happens only if the payment was
made from your customer's bank account.
Pending: The payment is pending. See pending_reason for more
information.
Refunded: You refunded the payment.
Reversed: A payment was reversed due to a chargeback or other type of
reversal. The funds have been removed from your account balance and
returned to the buyer. The reason for the reversal is specified in the
ReasonCode element.
Processed: A payment has been accepted.
Voided: This authorization has been voided.

Payum : What is the difference between status?

Where I can find informations on the status of return of payment?
For "canceled" and "failed", it's ok. But what is the difference between "captured", "authorized", "suspended" and "pending". What does it mean for paypal ?
Thanks
Here is the list of Paypal payment status :
Canceled_Reversal: A reversal has been canceled. For example, you won a dispute with the customer, and the funds for the transaction that was reversed have been returned to you.
Completed: The payment has been completed, and the funds have been added successfully to your account balance.
Created: A German ELV payment is made using Express Checkout.
Denied: You denied the payment. This happens only if the payment was previously pending because of possible reasons described for the pending_reason variable or the Fraud_Management_Filters_x variable.
Expired: This authorization has expired and cannot be captured.
Failed: The payment has failed. This happens only if the payment was made from your customer’s bank account.
Pending: The payment is pending. See pending_reason for more information.
Refunded: You refunded the payment.
Reversed: A payment was reversed due to a chargeback or other type of reversal. The funds have been removed from your account balance and returned to the buyer. The reason for the reversal is specified in the ReasonCode element.
Processed: A payment has been accepted.
Voided: This authorization has been voided.
Payum Status :
captured : The payment process has been initialized.
authorized : Is equal to the Completed PP payment status.
suspended : ? (Community action needed)
pending : Is equal to the Pending PP payment status.

paypal express checkout refund REFUNDSTATUS

To refund useing express checkout there is refundTransaction method.
One of fields it returns: REFUNDSTATUS which can have values: instant and delayed.
If ACK Success and REFUND_STATUS instant, it means that refund is successful.
What does delayed mean? Does it mean that refunding is pending and ipn will be received?
If so what ipn will be sent if refund is successful and when it fails?
From: https://developer.paypal.com/docs/classic/api/merchant/RefundTransaction_API_Operation_NVP/
PENDINGREASON
Reason that the refund payment status is delayed. It is one of the
following values:
none – The refund status is instant.
echeck – The refund status is delayed.
regulatoryreview - The payment is pending while we make sure it meets
regulatory requirements. You will be contacted again in 24-72 hours
with the outcome of the review.
If the status is pending you should also get an update when the status updates.

PayPal Adaptive Payments: transactionStatus vs senderTransactionStatus

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.
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.

PayPal IPN parameters contain two status fields. Which should I use?

I'm using the PayPal Adaptive Payments API. I have a script that receives the IPN postback when a payment is made. In this script I need to perform validation, including checking that the status of the payment is COMPLETED, as specified by the documentation:
Confirm that the "payment_status" is "Completed," since IPNs are also sent for other results such as "Pending" or "Failed"
The documentation hasn't been updated for Adaptive Payments which use different parameters (not payment_status). The parameters I receive are documented here and there are two status fields:
status
The status of the payment. Possible values are:
CREATED – The payment request was received; funds will be transferred once the payment is approved
COMPLETED – The payment was successful
INCOMPLETE – Some transfers succeeded and some failed for a parallel payment or, for a delayed chained payment, secondary receivers have not been paid
ERROR – The payment failed and all attempted transfers failed or all completed transfers were successfully reversed
REVERSALERROR – One or more transfers failed when attempting to reverse a payment
PROCESSING – The payment is in progress
PENDING – The payment is awaiting processing
and
transaction[n].status
The transaction status, where [n] is a number from 0 to 5. For simple single-receiver payments, this number will be 0. Numbers larger than 0 indicate the payment to a particular receiver in chained and parallel payments.
Possible values are:
Completed
Pending
Refunded
Simply put, I don't know which one I should be using. The payment status or the transaction status?
(I'd place my bets on transaction status but then I don't know what the purpose of the payment status is when you have more than one transaction in a request (when using chained payments, for example). Then again, the payment status has more possible values, so perhaps that's the "overall" status and should be used.)
You would want to look at transaction[n].status, and this would be an array. This is because with adaptive payments, a single transaction can be split into multiple transactions to different merchants.
The status is just saying that the api call went through and completed successfully. It was processed. The transaction[n].status tells you what the status is of each transaction in that call.