How to setup PayPal on WooCommerce?

In this guide, learn how to setup PayPal for your WooCommerce store.

To use PayPal, you must have a PayPal Business account.

If you are more of a visual learner, follow along to my tutorial video (over 99,000 views) where I outline everything in the steps below.

If you have never added PayPal to your WooCommerce store you have to use the updated plugin that is PayPal’s all-in-one checkout solution using the PayPal Payments extension. Use this video below to setup PayPal Payments.

Let’s jump into it!

  1. Enable PayPal in WooCommerce
  2. Get NVP/SOAP Integration (Classic) credentials
  3. Enable Instant Payment Notifications (IPN)
  4. Add auto return url and identity token
  5. Add your brand’s logo
  6. How to setup PayPal sandbox account on WooCommerce?
  7. Video

Step 1: Enable PayPal in WooCommerce

The first step is to go to your WordPress dashboard, hover over WooCommerce, and go to Settings.

Next, click the Payments tab.

Then, enable the PayPal payment method and click Setup.

Next, add in your PayPal email address.

Quick Tip: You need to create a PayPal Business account to use PayPal on WooCommerce.

Step 2: Get NVP/SOAP Integration (Classic) credentials

Next, open up a new tab and go to PayPal.com. Sign in to PayPal.

On your PayPal dashboard, click the “Settings” icon in the top right hand corner and then “Website Payments” under the Products & Services sidebar menu. Then, click “Update” on API Access.

woocommerce-paypal-api-access

Next, scroll down to “NVP/SOAP Integration (Classic)” heading and click “Manage API credentials”.

woocommerce-paypal-nvp-soap-api-classic

Then, you will be to view your API Username, API Password, and Signature. Copy these values.

Finally, paste these values in the API credentials section. Save Changes.

woocommerce-paypal-api-credentials

Step 3: Enable Instant Payment Notifications (IPN)

If you want to enable Instant Payment Notifications, click “Enable IPN email notifications” on your PayPal settings in WooCommerce.

woocommerce-paypal-ipn-email-notifications

Next, go back to your PayPal settings > Website payments. Under API access click Update.

Then, click Choose IPN Settings and add your notification URL.

https://your-domain.com/?wc-api=WC_Gateway_Paypal

Finally, toggle to Receive IPN messages and Save.

woocommerce-paypal-ipn

Step 4: Add auto return url and identity token

Enabling the auto return url will allow a customer to return to your Order Received page after payment. This is important as one of your customers may want to shop around, read another blog post, get more engaged with your brand, etc.

Navigate back to PayPal settings > Website payments. Click update under Website preferences.

woocommerce-paypal-website-payments

Next, add your auto return URL. Replace the domain below with your own.

https://your-domain.com/checkout/order-received/

Then, copy the identity token and paste into your PayPal settings in WooCommerce.

woocommerce-paypal-identity-token

Save changes.

Step 5: Add your brand’s logo

Upload your brand’s logo to WordPress. PayPal recommends dimensions of 150 pixels x 50 pixels. You could also do 50 pixels x 50 pixels (this is what I do!).

Next, copy the image source url.

woocommerce-paypal-copy-image-upload

Then, in your PayPal settings in WooCommerce, paste the source url. Save changes.

woocommerce-paypal-image-url

Finally, do a live transaction on your site using PayPal Standard. Is your brand’s logo showing up?

woocommerce-paypal-standard-image-url
To see the image url, a customer has to sign in with their existing PayPal account.

How to setup PayPal sandbox account on WooCommerce?

On your WordPress dashboard, hover over WooCommerce and click Settings.

Next, click the Payments tab and click Manage next to PayPal.

paypal-sandbox-woocommerce-setup

Under Advanced Options, find “PayPal sandbox” and click “Enable PayPal sandbox”.

woocommerce-enable-paypal-sandbox

If you scroll to the bottom of your PayPal settings page, you will notice we need to insert our Sandbox API username, Sandbox API password, and Sandbox API signature.

woocommerce-sandbox-api-credentials

To get these we need to go to your PayPal Developer account and Sign In. If you do not have a account, sign up for free in less than 5 seconds.

On your PayPal Developer Dashboard, under the Sandbox menu click Accounts.

paypal-developer-sandbox-accounts

Then, on the Sandbox Test Accounts page, you will see 2 accounts already created. 1 is a business account and he other is a personal account.

Hover over the Manage Accounts tab for the ‘Business’ account and click “View/edit account” to see your Account Details.

paypal-sandbox-manage-accounts

Toggle the tab from “Profile” to “API Credentials”. Then, copy the Username, Password, and Signature.

nvp-soap-api-credentials-paypal

Finally, go back to your WooCommerce PayPal sandbox settings and paste the Username, Password, and Signature.

paypal-sandbox-api-credentials-woocommerce

When finished, click Save changes at the bottom of the page.

Your sandbox account is all set up. The next step is to create a sandbox personal account to test transactions.

Videos

If you see something called “PayPal Standard” on the Payments tab in your WooCommerce settings use the video below.

If you have never added PayPal to your WooCommerce store you have to use the updated plugin that is PayPal’s all-in-one checkout solution using the PayPal Payments extension.

To create a business account with PayPal follow the video below:

If you are having trouble with setting up a sandbox account, follow along to the video tutorial below.

Additional Resources

Simon Gondeck

I’m a big fan of WordPress + WooCommerce (especially WooCommerce Subscriptions). Check out my YouTube channel.

21 thoughts on “How to setup PayPal on WooCommerce?”

  1. Hi Simon,
    great content, thanks a lot! Have you had the same issue: I set up PayPal Standard according to your tutorial. After a successful purchase the customer is redirected to the “order-received” page because I set the return URL in PayPal.
    But if the customer clicks on “Cancel and return to shop” in the PayPal Popup then he´ll be redirected to the “order-received” page as well without having done the payment. Is it possible to set a “cancel URL”? I don´t think so.
    Have you ever tried this? Do you have an idea?
    The PayPal Merchant Support isn´t able to help.
    Best Regards
    Ingo

    Reply
  2. Hello,
    Paypal Standard is no longer available in the new woocommerce version. woocommerce offers an extension to download: WooCommerce PayPal Payments.
    Problem, it offers in addition to the standard payment in one go the possibility of paying in 4 installments. how to remove the “Payment X4”? And impossible to translate some error messages. Paypal Standard was fine. Are there other Paypal extensions for woocommerce? help!

    Reply
    • I agree. PayPal Standard was great! Not sure why this big change to this all-in-one solution with PayPal Payments. In the PayPal Payments setting you should see an option to disable Payment X 4. If you cannot find it check the PayPal Payments docs.

      Reply
    • The Country/Region will determine the currency of your sandbox account, which should match your site’s currency.

      For example, if you want to use British pounds you would select your Country as “United Kingdom” and then update your WooCommerce > Settings > General > Currency > Pound Sterling. Or, if you wanted to use US Dollar, you would create a sandbox account as “United Stats” and update WooCommerce currency to United States dollar.

      Reply
  3. Hi Sam, nice article, i need build a new woocommerce store. but i only have one business paypal account. it seem only one IPN and paypal id token can be setup in paypal. which means my new store can’t be add on paypal for IPN and return url. for multiple woocommerce stores, how fix these issue? look forward your hint!

    Reply
  4. Thank you for your tutorials. I followed it through. But the money only shows that it went through on my woocommerce dashboard and not in my PayPal business account. S they in sync real time?

    Reply
  5. Q1: Is the developer account on a separate account from the email you entered for the main PayPal email?

    Q2: Do you need to update the token to test a sandbox account?

    Q3: Does WooCommerce only set downloadable product orders to complete?

    Reply
  6. Simon-Thank you. Excellent job. Can I just go in and set up my Sandbox account or is it necessary to set up my regular account first (we are already using PayPal)? Is there a good way to test my sandbox account before I setup and test thru WooCommerce?

    Reply
  7. Thanks a lot. V useful. Q1: on my “Orders” page in my dashboard, it says “On hold” instead of “completed. Can I just ignore this, or is there a bug in my system?
    Q2: How are orders fulfilled? Manually? I sell digital products and want to have everything automated – after payment, customer gets an email with a receipt and a link to download the product. Any videos on how to set that up in wp/woocommerce?

    Reply
    • Q1: on my “Orders” page in my dashboard, it says “On hold” instead of “completed. Can I just ignore this, or is there a bug in my system?

      Q1 Answer: When you were checking out using PayPal Sandbox, did you enter in the SAME “sandbox” email and password that you created at https://developer.paypal.com/developer/accounts/? Note, you need to make sure that you enter in a different email when doing test orders.

      For example:
      PayPal Sandbox (Personal Account): [email protected]
      PayPal Sandbox (Business Account): [email protected]

      Q2: How are orders fulfilled? Manually? I sell digital products and want to have everything automated – after payment, customer gets an email with a receipt and a link to download the product. Any videos on how to set that up in wp/woocommerce?

      Q2 Answer: Orders are filled manually, unless you send them to a fulfillment center. In WooCommerce, after payment, a customer will automatically get an order confirmation email that includes the order details (i.e. receipt).

      Reply

Leave a Comment