This project integrates PayPal into the Drupal Commerce payment and checkout systems. It currently supports off-site payment via PayPal Payments Standard (WPS) and PayPal Express Checkout (EC), off-site or on-site payment via PayPal Payments Advanced (PPA) and Payflow Link (PFL), and on-site credit card payment via PayPal Payments Pro (WPP). The PayPal WPS / EC integration supports PayPal's Instant Payment Notifications (IPNs) to react to authorizations, captures, voids, and refunds with full logging for testing and debugging.

We recently added PayPal Credit support on top of the Express Checkout integration to enable merchants to extend financing opportunities to their customers.

The full integration for PayPal Express Checkout, PayPal Payments Advanced, and Payflow Link was added in the 2.x version of the module and has been verified by PayPal. There is no upgrade path for the 1.x branch, so it has been discontinued. Additionally, this module deprecates the third party project(s) attempting to extend this module for EC support.

Supported payment methods

This project includes a base module that defines some helper functions and a listener for PayPal IPNs. Each payment method offered by PayPal is enabled via its own module:

PayPal Payments Standard (WPS) - Register an account | View documentation

Redirects from checkout to PayPal and includes IPN support for authorizations during checkout, prior authorization captures, authorizations plus capture during checkout ("Sale"), voids, and refunds.

- Register an account | View documentation Redirects from checkout to PayPal and includes IPN support for authorizations during checkout, prior authorization captures, authorizations plus capture during checkout ("Sale"), voids, and refunds. PayPal Payments Pro (WPP) - Register an account | View documentation

Supports authorization and authorization plus capture during checkout ("Sale"). Authorization only transactions can be captured on the site or at PayPal with IPN support coming in the next release candidate to mark pending authorization transactions as complete locally that were captured at PayPal.

- Register an account | View documentation Supports authorization and authorization plus capture during checkout ("Sale"). Authorization only transactions can be captured on the site or at PayPal with IPN support coming in the next release candidate to mark pending authorization transactions as complete locally that were captured at PayPal. PayPal Express Checkout (EC) - Register an account | View documentation

Redirects from the cart form or checkout form to PayPal for hosted checkout and payment, updating the order upon return. The basic EC feature set is available for review in the 2.x version of this module. This should be used instead of the standalone EC modules.

- Register an account | View documentation Redirects from the cart form or checkout form to PayPal for hosted checkout and payment, updating the order upon return. The basic EC feature set is available for review in the 2.x version of this module. This should be used instead of the standalone EC modules. PayPal Payments Advanced (PPA) / Payflow Link (PFL) - Register a PPA account

Register a PFL account | View documentation

These are functionally equivalent, facilitating on-site payment via PayPal or credit card through an iframe integrated into the checkout process. The primary difference between the two is that PPA is U.S. and Canada only and uses PayPal as the merchant account provider while PFL works internationally and lets the merchant use another merchant account provider. A comprehensive integration is available for review in the 2.x version of this module.

Additional payment methods may be added in subsequent branches. If you'd like to see a specific payment method supported, check the issue queue to ensure it hasn't already been requested before opening a new feature request. Recurring billing support using PayPal's native recurring solution will not be incorporated into this module.

Note: as of April 2012, PayPal's service names and integration requirements have changed. As of right now, the modules still refer to PayPal Payments Standard as Website Payments Standard and PayPal Payments Po as Website Payments Pro. However, the configuration and code for these modules is up to date with the most recent versions of their APIs. The labels of these services will be updated in the 2.x branch along with Express Checkout integration.

Frequently Asked Questions

Note: you will only receive IPNs from PayPal if you do your testing on a public web server to which PayPal can actually POST notifications. Installations on your localhost or behind HTTP authentication will not be accessible by PayPal, so your PayPal WPS payments will never appear on your orders.

Development notes

If you have unanswered questions about how PayPal's services work or want to contribute to the development of this project, you can find PDF guides and HTML resource pages for every PayPal service on their developer network. Before requesting a feature or code change, please ensure it is supported by PayPal and provide a link to the documentation backing up your request. Thanks!

If your PayPal API requests are failing due to SSL certificate verification, refer to the comments in the cURL request preparation of commerce_paypal_api_request() to read how to specify a local CA certificate bundle file.