Paypal notify_url if IPN not enabled - paypal

If my Paypal account does not have the IPN URL enabled, will it still be possible to receive POST data from Paypal if I use the notify_url

If the IPN is not enabled for the account and I set the notify_url, will I receive anything?
Yes, you will receive IPN.
notify_url will keep sending IPN notifications when used.

Yes, it will currently work on a PayPal account where the "global" IPN URL has never been set/enabled or where it is currently set/enabled. However, if you disable a previously enabled PayPal global IPN URL, any buttons with notify_url will stop working even if they worked before (they actually get queued in the IPN message queue but not sent like they used to). My conclusion is that the first time you enable the global IPN URL, PayPal initializes the IPN message logger/queue for your account. From there, there is no way to get back to the original behavior that I can find. On the bright side, this same logger/queue makes it really easy to inspect and troubleshoot (and even re-send) IPN messages...

Assuming you mean no IPN URL defined at PayPal, yes, provided you have IPN enabled.
You can supply the notify_url yourself in the per-button form data.

Related

PayPal IPN Delivery Status set to Disabled

We are a 3rd party online marketplace. We connect buyers and sellers. Our IPN notify_url has been running for years with no problems. One of our sellers has been receiving PayPal payments from a buyer for their goods but we have not been receiving the IPN callbacks.
We asked the seller to check their IPN history and it is showing that the callbacks to our notify_url are Delivery Status= Disabled.
The sellers PayPal account is OK
Our notify_url is OK
I realise there is the IPN Settings page at https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify-edit where a hardcoded URL can be set and IPN messages can be switched to ON.... but our notify_url is fed via the form data at checkout. This option is set set OFF by default and we have tens of thousands of users still receiving IPN callbacks ok to our notify_url with the default setting && POSTed notify_url so the problem won't be there.
Any idea why they are disabled and how to get them re-enabled for this seller.
IPN function can be disabled due to below reasons:
1. PayPal failed to send IPN message to this merchant's IPN URL, after 100 times failure, IPN function is disabled by PayPal.
2. Merchant disable IPN function manually.
Merchant can enable IPN function in https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify-edit .
For those like me who found very useful this reply I just want to add: do not waste hours trying to figure out how to locate that page in the new paypal's interface.
I've asked to PP support how to locate it and they just told me to type the following link in the nav bar.
https://www.paypal.com/it/cgi-bin/webscr?cmd=_profile-display-handler&tab_id=SELLER_PREFERENCES
You actually have to save the url to your library in order to get back.

IPN doesn't seem to work the way it should based on PayPal's docs

We have created a small app to help users manage certain PayPal orders, but the IPN doesn't seem to work as expected. I found this at the note at the bottom of the following URL:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/
"Even though you have not enabled receiving IPN messages in your Profile or
you have reset your preference by turning off IPN messages, PayPal still
sends IPN messages to the notification URL you specify for a specific
payment."
Based on this we instructed our beta testers not to worry about enabling IPN in their account, since we specify the notification URL for the user's transaction via the notify_url field in the button code. But then no IPN is sent.
Next we instructed our beta testers to enable IPN, and since doing so requires you to enter a notification URL and users don't want transaction data for EVERY transaction posted to our system, and we don't want that either, we instructed them to enter a "fake" URL and disable sending messages to that URL in their account. Based on the note at the link above we figured this should work too, but it doesn't. No IPN is sent, although you can now see the message in the IPN history.
So I'm a little stumped here. The way I see it, we only have 2 options, and neither seems ideal ...
Instruct our users to enable IPN and hard-code our IPN notification URL into their profile settings. This means if they're already using IPN for something else they can't do this, and even if they can it means that data for EVERY transaction they do will hit our system and neither the user nor we want that.
Instruct our users to enter a "bogus" notification URL in their account, and leave messages to that URL enabled, since we'll override this with our own notify_url setting. This would work, however it will cause PayPal to attempt to send messages to an invalid notification URL for any transactions NOT processed through our system. I assume PayPal doesn't want this, and it could possibly lead to the user losing IPN access in the future due to constant IPN errors, etc.
Anyone have any ideas for me? Thanks!
In experience, as you're finding, you do need IPN enabled in order for the IPNs to be sent, but then if you specify notify_url it will override the URL in the profile.
Instead of setting up a bogus URL, though, you could put any actual script there. Just make it a script that does absolutely nothing. That way IPNs that get sent here will "do nothing" other than send a 200 OK back to PayPal's server showing that the IPN was received successfully.
If they're already using their own IPN solution and the data needs to go through both then you'll have to setup an IPN forwarder. You can daisy-chain IPN URLs to that a bunch of them get hit with the same data if you need to.
Personally, I like to have some sort of a catch-all IPN setup in my profile that saves any IPNs it gets to my database for logging purposes. Then, again, the notify URL can be used to override this if necessary.

Multiple receivers for IPNs

Is it possible to receive the same IPN at multiple endpoints? I can pass a NOTIFY_URL e.g. for ExpressCheckout, but I may also setup an URL in my PayPal account. Will IPNs be send to both? Only one? Which one has preference?
If you have IPN configured in your PayPal account profile that will act as a default catch-all. If you then set an IPN URL via the NotifyURL parameter of payment requests that would override the value set in your profile.
If you need to have IPN data sent to more than one IPN URL with a single transaction you can daisy-chain the IPN scripts. PayPal would send the IPN to your URL, which could then forward that IPN data on to as many secondary URL's as you need to.

Not receiving any IPN post for sandbox account

I'm using sandbox accounts to test SetExpressCheckout and DoExpressCheckout methods. However, I'm not receiving any IPN notifications.
My PC has public IP and firewall is off, so I'm expecting IPN posts but none are coming. Is there anything I should do (e.g. any profile settings) to start receiving IPN? (I'm using the Java SDK and passing the notify_url as parameter)
I'm also checking the "IPN History Page" from PayPal.com and I do not find any data there. Am I supposed to find IPN data in this page even if I use the sandbox accounts?
Thanks for your help
EDIT: I solved the problem by transfering my code to another server. something must have been wrong with my public IP.
Make sure you have IPN enabled in your test Sandbox PayPal account. Also, you will not see IPN messages in your PayPal account if you are going to www.paypal.com. This would only be for live IPN messages sent through your live account. If you are wanting to see the IPN messages for your sandbox transactions, you would need to log into the sandbox seller account and view the IPN messages from there.

Will `Notify_URL` override previous set IPN data

I am building an IPN extension for a website, but the service provider for the cart used at the moment has the option Notify_URL set (in the paypal submission form) for its own internal handling (which is somewhat flawed). If an IPN URL is set on the PayPal sellers profile, will both be used, or only one?
There appears to be some confusion on this subject. Some are claiming that both will work. They claim it should notify both in this situation. Though it appears that with subscription based payments, PayPal will only use the IPN URL set in your PayPal profile.
However, on the official PayPal documentation:
You can specify an IPN listener for a specific payment; this is the
only way to receive IPNs associated with Adaptive Payments. In this
case, PayPal sends the IPN message to the listener specified in the
notification URL for a specific button or API operation instead of the
listener specified in your Profile.
Which seems to suggest that the notify_url will override the profile settings. I would assume that it would be better to follow the PayPal documentation then something that may be working even though it isn't intended to.
Source: PayPal Documentation
It's also worth noting that if you disable IPNs in your PayPal account, neither will work.
I think the documentation may have changed since this was last answered. I was also curious what was given precedence: notify_url or your profile's IPN url. From the docs:
Optionally, you can override the URL to specify another listener for specific payments.
Here the wording is slightly confusing, but it seems that even if you have IPN turned off in your profile, if you pass a notify_url value in with the payment, it will still be sent. Bold added by me:
The IPN message will always be sent to your notification URL unless receiving IPN messages has been disabled. Even though you have not enabled receiving IPN messages in your Profile or you have reset your preference by turning off IPN messages, PayPal still sends IPN messages to the notification URL you specify for a specific payment.
I have seen this work first hand, which is why I investigated it more to make sure it was working correctly. My IPN History told me "your IPN notifications are turned off," prompting me with a link to turn it on. However, below that was a history. The reason was because I was passing in my desired notify_url with the transaction.
So #johnmadrak's statement, "It's also worth noting that if you disable IPNs in your PayPal account, neither will work," is actually not true. Even if you've turned the setting off in your profile, passing in a notify_url still works.