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.
Related
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
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.
I'm testing recurring payment on Sandbox of Paypal.
But I find out client's account is not enough money, but their own account is still recieved money.
If client 's account is not enough money, how does the paypal process?
This transaction will be suspend or cancel...
If client'account have enough money then the transaction become activate.
For initial payment, use FAILEDINITAMTACTION, Action you can specify when a payment fails. It is one of the following values:
ContinueOnFailure – By default, PayPal suspends the pending profile in the event that the initial payment amount fails. You can override this default behavior by setting this field to ContinueOnFailure. Then, if the initial payment amount fails, PayPal adds the failed payment amount to the outstanding balance for this recurring payment profile.
When you specify ContinueOnFailure, a success code is returned to you in the CreateRecurringPaymentsProfile response and the recurring payments profile is activated for scheduled billing immediately. You should check your IPN messages or PayPal account for updates of the payment status.
CancelOnFailure – If this field is not set or you set it to CancelOnFailure, PayPal creates the recurring payment profile, but places it into a pending status until the initial payment completes. If the initial payment clears, PayPal notifies you by IPN that the pending profile has been activated. If the payment fails, PayPal notifies you by IPN that the pending profile has been canceled.
Once you are into the regular billing cycle, Be sure to assign a value to MAXFAILEDPAYMENTS, which is the number of scheduled payments that can fail before the profile is automatically suspended. An IPN message is sent to the merchant when the specified number of failed payments is reached.
Then, AUTOBILLOUTAMT Indicates whether you would like PayPal to automatically bill the outstanding balance amount in the next billing cycle. The outstanding balance is the total amount of any previously failed scheduled payments that have yet to be successfully paid. It is one of the following values:
NoAutoBill – PayPal does not automatically bill the outstanding balance.
AddToNextBilling – PayPal automatically bills the outstanding balance.
it is up to you how to handle profiles that suspend.
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.
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.