Exploring PayPal Instant Payment Notification (IPN)
Web Commerce Today, Issue 65, December 15, 2002
One of the problems with using PayPal as a payment method is it's difficulty incorporating into shopping carts and order management systems that have been designed for real-time credit card authorization. To provide both shoppers and merchants a way to know instantly whether a PayPal payment has been accepted, PayPal has recently implemented Instant Payment Notification (IPN), where PayPal's server immediately contacts your webserver (and shopping cart program) to communicate the status of the payment. Here's how PayPal introduces the system (https://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/ipn-intro):
"Instant Payment Notification (IPN) is PayPal's interface for handling real-time purchase confirmation and server-to-server communications. IPN delivers immediate notification and confirmation of PayPal payments you receive and provides status and additional data on pending, cancelled, or failed transactions.
"IPN can be used to manage and customize a variety of PayPal-enabled web services and communication, including:
- Customize your website's response to customer purchases in real-time
- Track customers via IPN "pass through" variables
- Deliver access keys for software downloads and other digital goods
- Automate your fulfillment operations
- Track affiliate sales and commissions
- Store transaction information in your own database"
The system includes reporting to the merchant's server 39 separate fields. For each order, these include item names, SKU numbers, invoice number, optional fields, name, address, e-mail, etc. If you've ever studied implementation code for a payment gateway, you realize that PayPal's options are more extensive than for merchant credit card authorization. Since PayPal now takes several currencies there are fields for the exchange rate, currency transaction fee, currency name, etc.
Payment status has four possibilities:
- Completed
- Pending
- Failed
- Denied
Reasons for a pending status relate to: eCheck, multi-currency problem, problems with an international account, verification, confirmed shipping address, PayPal account status, unregistered or confirmed e-mail address, or other.
If IPN's codes were extremely close to codes exchanged for credit card authorization, shopping carts could probably include full PayPal IPN implementation relatively easily. As it is, I'm guessing that many shopping cart systems won't implement the IPN confirmation features immediately.
Should PayPal be blamed for making their system different and more complex than the typical credit card authorization? I don't think so. Internet merchants are very vulnerable to credit card fraud, and any merchant who has done much business online realizes that the so-called "authorization" provides little or no protection to the Internet merchant. CVV2 provides greater confidence to the merchant. But PayPal has worked hard to develop a safe system for both customers and online merchants, with verified e-mail addresses, history on both purchasers and merchants, etc. I think that the extra hassle of implementing PayPal's new Instant Payment Notification offers a lot to merchants (and thus the shopping cart vendors who seek to meet merchants' needs).
I talked to a couple of IPN experts, Kevin E. Hartz and Alan Braverman with Mollyguard (http://www.mollyguard.com) about the strengths and weaknesses of IPN. They were pretty positive about IPN's capabilities. The only current drawback they mentioned is IPN's inability to initiate refunds -- a feature they say PayPal programmers are working on for the future.
I hope that both PayPal as a payment method as well as PayPal IPN is adopted and fully implemented by e-commerce programs.
More information on IPN for logged-in PayPal members is available online:
- Technical Overview https://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/ipn-techview
- IPN Manual (22 pages, PDF) https://www.paypal.com/html/ipn.pdf
- Articles on Coding Techniques https://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/ipn-techniques
- Third Party IPN Solutions https://www.paypal.com/cgi-bin/webscr?cmd=p/pdn/3p-solutions-code
- PayPalDev.org http://www.paypaldev.org/ Independent forum for PayPal developers

