Does Paypal send an IPN if completed? - paypal

what if someone pays in Germany with ELV (charge) and the payment is pending.
Does PayPal send an IPN for pending or only for completed?
What types of IPN messages are there?
Hope you can help me!
Cheers

have a look at this link under 'Payment_status' (Ctrl-F to find it helps).
IPN integration guide/IPNvariables
To be honest not sure what a German ELV is but I believe an IPN is sent when the payment status is any of the listed payment_status (or atleast I have seen 'Pending', Completed, 'Refunded', 'Processed', 'Reversed' IPN's) so I can say you should get an IPN sent when it's 'Pending' as you ask about. You have turned on IPN sending to a handler file on your server, etc.? If so you should be able to store logfiles and read them and look for a line like:
payment_status : Completed
hope thats helped.
T

Related

PayPal Sandbox IPN Refund issue

I've been testing PayPal payments and received the IPN as expected on my staging/sandbox environment. However I noticed that the IPN for refunds are not being sent. I have verified this against my application as well as the Sandbox business account and the IPN history only shows the payment but not the refunded IPN. The payment history do however reflect the refunded status of the payments.
Can someone tell me if this is an expected behaviour since both the IPN history and the payment records do not tally? Thanks.
This is similar to the issue reported on but there's been no reply since: PayPal refunds not generating IPN anymore
I would advise you to get in touch with the PayPal team to check on this. We will need more information to check on this. You may get back to us via the link below.
https://www.paypal-techsupport.com/app/ask
Thank you.

How to explicitly reject an IPN request

In the documentation for IPN, it says things like "Check email address to make sure that this is not a spoof". But I cannot see what to do when that is the case, and how I tell PayPal I want to reject a transaction. E.g. do I sent back a 400 instead of a 200? Or alter the POST data in some other way?
Or do I just ignore the message? (The problem with that is that PayPal will keep re-trying, which is wasted bandwidth for us, but also means it takes longer for the user to hear about the payment failure.)
Background: I realize sending it back to PayPal and getting the VERIFIED message back handles most security issues. But in my case, there is some unique ID information in the custom field. If that is missing, or does not validate against the DB, I want to reject the payment. I want my customer to see it failed, so they know to go and use a fresh form. The alternative is to accept the payment, and then have to involve a manual process trying to work out who the payment came from, and then possibly do a manual refund. (Other reasons to do this might be that the inventory has sold out in the split second between them seeing a product on the site and clicking BUY.)
The payment didn't fail. PayPal is notifying you that the payment succeeded: not asking you whether you want to accept it. You can't reject it at this stage.
Simple send back a 200 code to let Paypal know you received the IPN, otherwise Paypal will try to send the IPN response repeatedly.
IPN is Instant Payment Notification. After the payment paypal notify you the result of the payment. Check if connection VERIFIED, and next if if the payment is Completed and mark the result in the database.
If you say to PayPal the ipn address in the cart, Paypal send you the notification. You can't say to paypal: "yes please, send me a notification" and when receive say "why you send this?" If you put ipn in cart form you can provide a ipn url with code 200, not 404. Or remove ipn value in the cart form

IPN payment_status variable

I am using PayPal's IPN service to confirm payment. My listener is checking the payment_status variable hoping to find "Completed". I don't want to do anything in my database unless the payment comes back "Completed". My question is, what if it does not come back with that status? Will PayPal continue to communicate with my listener until it is complete? For example, the status could come back as "Processed", which appears to be a step before "Completed". Below is a link to a document with all of the variables:
https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf
On page 10:
Because IPN messages can be sent at various stages in a transaction’s progress, make sure
that the transaction’s payment status is “completed” before enabling shipment of
merchandise or allowing the download of digital media.
So yes, I think PayPal will always give you an IPN with Completed status.

Does paypal resend IPN once a payment status has been changed from pending to complete/failed?

I have done some scouring but cannot find a definitive answer for this!
I get "VERIFIED" and "Pending" so i can put my orders from "placed" to "in-progress" but need the complete / failed so i can then transfer to "paid" and "cancelled".
Anyone have anything definitive on this, or is it a waiting game until test payments are complete (not using sandbox).
If the payment has a “Pending” status, you receive another IPN when the payment clears, fails, or is denied.
Also, here are some good things to check once you receive Payment_staus=completed
Check that the "txn_id" is not a duplicate to prevent a fraudster
from using reusing an old, completed transaction
Validate that the "receiver_email" is an email address registered in
your PayPal account, to prevent the payment from being sent to a
fraudster's account
Check other transaction details such as the item number and price to
confirm that the price has not been changed
You get another IPN (not a 'resend'), same txn_id, with payment_status='Completed'.

What is the difference between PayPal's "Processed" and "Completed" PAYMENTSTATUS?

I'm coding a PayPal Express Checkout setup for a client, and see both "Processed" and "Completed" in PayPal's list of possible PAYMENTSTATUS response codes. The PayPal DoExpressCheckoutPayment API Doc describes them this way:
Completed – The payment has been completed, and the funds have been added successfully to your account balance.
Processed – A payment has been accepted.
I'm wondering whether I should treat "Processed" in the same way I would treat a Completed payment, or instead if it should be handled like a Pending payment. (EG: Will it eventually change to either Completed or something else?)
Thanks in advance for any help!
The status "Processed" is used for MassPayments. When Masspayments are successful you will get a IPN post with a payment_status of Processed.
I'm having the same doubts, but after researching I found no clear information from Pay Pal side that explains it better the difference.
What I did is treat the Processed status as a pending status imagining that at some point should evolve to Complete.
I take it this way because what Pay Pal leaves clear is that you shouldn't ship until the payment is Complete.