Search

PayPal Express Checkout

Which PayPal extension should you choose? Compare our PayPal extensions →

Overview ↑ Back to Top

PayPal Express extends the WooCommerce payment options by allowing you to accept payments via PayPal or credit card on your eCommerce site. Please note that PayPal Express skips the WooCommerce checkout experience, and checkout is instead done entirely on PayPal’s website. Customers are then redirected to your site after purchase so that your security responsibilities are limited. You will need to ensure that PayPal Express is enabled for your PayPal business account.

Installation ↑ Back to Top

  1. Purchase and download the plugin zip file from WooThemes
  2. Download the extension from your dashboard
  3. Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
  4. Click Install Now, and then Activate
  5. Click WooCommerce > Settings > Payment Gateways and read the next section to learn how to setup and configure the plugin.

Setup and Configuration ↑ Back to Top

Setup

To setup your PayPal Express payment gateway you will need to enter your API Username, API Password, and Signature.

First, sign up for PayPal Express if you have not done so. You can also view PayPal’s documentation on obtaining API credentials.

  1. Login to your PayPal Business account
  2. Click on Tools > API Access then click “Go to API Access” when the modal window pops up
  3. WooCommerce PayPal Express Obtain PayPal API Credentials

    Obtain PayPal API Credentials

  4. Choose "Option 2" to get your API signature.
  5. WooCommerce PayPal Express Payment Gateway Get API Signature

    Requesting API credentials

  6. For this gateway, you need to use the “signature” rather than “certificate” credentials:
  7. WooCommerce PayPal Express Payment Gateway API credentials

    Select API signature credentials

  8. Copy your API Username, Password, and Signature to import into your WooCommerce PayPal Express settings.
  9. WooCommerce PayPal Express Payment Gateway API Credentials

    Save your API credentials

  10. Enter the API credentials and press “Save Changes”.
  11. WooCommerce PayPal Express settings

    Admin Settings

Configuration

  • To configure the plugin, click on WooCommerce > Settings from the left hand menu, then the top tab “Checkout”. You should see “PayPal Express” as an option in the list.
  • Optionally, you can select the radio button next to this option to make it the default gateway.
  • You should see “PayPal Express” displayed across the top of the page as a link also. Click on this to configure the plugin, and you will see a list of options:

Settings

  • Enable/Disable – This will enable the gateway to be used by customers to checkout.
  • Title – This is the text shown for the payment during checkout and on the Order Received page.
  • Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable sandbox mode, this section will also display a notice along with test credit card numbers.
  • Transaction Type – This controls how transactions are submitted to PayPal. You may choose either “Charge” or “Authorization”. If you select “Authorization”, you must manually capture and settle payments in your PayPal control panel or on the WooCommerce orders screen after the transaction has been submitted. This defaults to “Charge”.
  • Environment – Switch between “Sandbox” and “Production” credentials. Note: Sandbox credentials are not the same as your live/production account. This is an entirely separate sandbox environment that requires a separate login. Production credentials can’t be used in the Sandbox. Please see the FAQ for more info.
  • API User Name – This is the API User Name you obtained from the your PayPal account. Follow the steps above to get this.
  • API Password – This is the API Password you obtained from the your PayPal account. Follow the steps above to get this.
  • API Signature – This is the API Signature you obtained from the your PayPal account. Follow the steps above to get this.
  • Checkout button style – Select whether PayPal’s default checkout button should be used or a WooCommerce-style button (inherits the theme styling for other WooCommerce buttons) should be used on the Cart page.
  • PayPal Express WooCommerce Style Button

    WooCommerce Style Button

    WooCommerce PayPal Express PayPal Button

    PayPal Button

  • Standard checkout button – Enable this checkbox to hide (checked) or display (unchecked) the “Checkout with PayPal” button on the cart page.
  • Standard checkout – Enable this checkbox to display a “Checkout with PayPal” button on the Checkout page.
  • Invoice Prefix – Enter a prefix to be used within PayPal for orders from this store (defaults to “WC-”). If you use PayPal in multiple stores, this ensures that invoice prefixes will be unique, as PayPal does not allow orders with the same invoice numbers.
  • PayPal Account optional – If “PayPal Account Optional” is enabled in your PayPal account, this will allow customers without PayPal accounts to check out with a credit card via PayPal.
  • Enable Bill Me Later – Enable this checkbox to display a “Bill Me Later” button next to the PayPal Express Checkout button.
  • Landing Page – If “PayPal Account Optional” is checked, you can select which type of PayPal page is displayed by default – a Login page or a Billing page. Defaults to “Login”.
  • Brand Name – Set a brand name to replace the business name used within your PayPal account on the hosted checkout page; helpful if you use the same account for multiple stores or child companies.
  • Custom Payment Page – The name of the custom payment page to use (if you’ve created one in PayPal)
  • Detailed Decline Messages – When checked, this will display detailed decline messages to the customer during checkout when possible, rather than a generic decline message.
  • Debug – Enable this is you are having issues correctly processing transactions; errors will be saved to the WooCommerce Error Log (/wp-content/plugins/woocommerce/logs/paypal_express.txt). All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin.

Don’t forget to press “Save changes” to save your changes :).

Processing Orders ↑ Back to Top

This extension skips most of the WooCommerce checkout process, and customers leave your site from the “Cart” page to complete the checkout through PayPal. PayPal Express is meant to reduce the amount of data entry (and possible data entry error) that the customer needs to do. To achieve this, PayPal Express sends back the customer’s billing information after they have logged into PayPal and authorized the transaction. Customers can still enter a new shipping address:

WooCommerce PayPal Express Checkout Page

PayPal Express Checkout Page

Typical scenario:

  • Customer shops on your site
  • Customer adds products to their cart
  • Customer reviews the Cart page
  • From the Cart page customer presses the “Checkout with PayPal” button
  • Customer is redirected to PayPal and WooCommerce sends the Sub Total of the order to PayPal
  • Customer logs into PayPal and authorizes the transaction*
  • PayPal redirects customer back to WooCommerce and sends authorization token and customer’s billing information
  • On the WooCommerce Review Order page customer can see any taxes and choose a shipping option
  • Customer finalizes the order and the transaction is finalized with PayPal using the order Grand Total

*Order authorization happens for an amount that is 150% of the sub total to anticipate taxes and shipping costs. If there are no taxes or shipping costs, then the original amount is used. If there are shipping / taxes, then the updated total will be used.

Usage ↑ Back to Top

Capture Charges from WooCommerce Order Admin

Using version 3.0+ of the extension allows you to authorize charges during checkout, then manually capture them later. You can do this via your PayPal business account, or can easily do so from the WooCommerce Edit Order page. Not sure what this means? Check out this tutorial on Authorizing vs. Authorizing and Capturing.

When payment is authorized for an order, the order status will be set to “on hold”. You can edit the order by going to WooCommerce > Orders, then clicking on the order number to edit the order that needs to have the charge captured. PayPal adds the new “Capture Charge” action to the Order Actions menu:

WooCommerce PayPal Express Capture Charge

PayPal Express Capture Charge

Once you’ve selected “Capture Charge” and saved the order, payments will be captured via PayPal, the order status will update to “processing”, and the Order notes will be updated to reflect these changes.

Bulk capturing charges is also possible. Select the orders for which you want to capture charges on the “Orders” page, then use the bulk “Capture Charge” action to update all selected orders:

WooCommerce Authorize.net AIM payment gateway bulk capture charges

Bulk Capturing Charges

Frequently Asked Questions ↑ Back to Top

Q: Why do I get errors when I test PayPal Express in Sandbox Mode?
A: You cannot have the “PayPal Sandbox” option turned on and use production API credentials. You’ll need to to go to https://developer.paypal.com/ and create a “buyer” and a “seller” profile in order to create a sandbox account. You can request sandbox credentials in the same way that you request live credentials once your account is set up. Put the seller’s API credentials into the WooCommerce admin for PayPal Express and use the buyer’s credentials to test purchases with. When you’d like to return to production mode, you’ll have to change back to your production/live API credentials.


Q: Can I ensure that the order includes a phone number for the customer when an order is placed using PayPal?
A: Version 2.1+ of PayPal Express will return a phone number for the buyer, but only if the admin has set up their PayPal account properly. The administrator needs to go to Profile > My Selling Tools > Website Payment Preferences and set the “Contact Telephone Number” to required. This will not work with PayPal’s API if the contact phone number is optional.

woocommerce-gateway-paypal-expressphone-setup

Questions & Feedback ↑ Back to Top

Have a question before you buy? Please fill out this pre-sales form.

Have some feedback for us on this documentation? Please let us know so we can make improvements!
Take me to the feedback form!

Back to the top