How IPN Works

Simply put, IPN is the means by which PayPal can inform your server of a payment, a change in payment status, or other, possibly more urgent information. IPN differs from nearly every other way merchants use PayPal, because the IPN transaction is initiated by PayPal. Except for IPN (and PDT), all parts of the PayPal system are user initiated: nothing happens unless you, as the account holder, take action. IPN, on the other hand, can be triggered at any time (even when you are not at your computer), hours or even days after the last payment was made to your account.

IPN carries out this communication using HTTP, the same protocol used when you access the PayPal system with your web browser. In the case of IPN, however, roles are reversed: PayPal acts as an automated browser, making a request of your web site, which acts as the web server. This swapping of traditional positions can be confusing, but once you know that IPN posts originate at PayPal and request the IPN script on your site just like any other web browser on the Internet might, IPN becomes much easier to grok.[1]

[1] To make full use of IPN, it's helpful to profoundly understand the process. To grok the concepts involved (as opposed to merely grasping them), helps elevate you to the status of Geek. (The term grok was coined by Robert A. Heinlein in his novel Stranger in a Strange Land.)

To get started with IPN, see [Hack #65] .