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.

FAQs

How can I test transactions on WooCommerce using PayPal?

To test live transactions on your site, you will need to setup a PayPal sandbox personal account.

First, go back to your PayPal Developer account dashboard and click “Accounts” on the Sandbox menu.

Next, click “Create Account” and create a Personal Account. After creating your personal account, copy your email address and password.

Then, go back to your WooCommerce store, go to a product page, add the product to Cart, and go to your Checkout page.

How do I know sandbox mode is enabled? On the Checkout page, you will notice the “SANDBOX ENABLED” shows up next to the PayPal payment method.

Finally, click Proceed to PayPal and enter in your personal sandbox account email address and password to complete your test transaction.  After your payment has been made, go back to your WooCommerce backend, click “Orders” to see your test order.

I have ‘pending order’ in my WooCommerce dashboard, but no payment was received in my PayPal account.

If the customer abandons the order in PayPal (and not your WooCommerce store), the order shows as Pending (unpaid).

How to create a sandbox account for PayPal Standard?

Looking to also setup a PayPal sandbox account to test transactions? See the video below:

Do I need a PayPal Business account to use PayPal plugin?

Yes, to use PayPal on your WooCommerce store, you must have a PayPal Business account.

Will PayPal Standard work with WooCommerce Subscriptions?

Yes it will but there are limitations (see bottom of this FAQ).

To enable PayPal Standard to work with Subscriptions, do the following steps:

  1. On your WordPress dashboard, hover over WooCommerce and click ‘Settings’
  2. Next, click the ‘Payments’ tab and then click ‘Manage’ in the PayPal Standard row
  3. Then, check ‘Enable PayPal Standard for Subscriptions’
  4. Finally, scroll to the bottom of the and click ‘Save changes’

enable-paypal-standard-for-subscriptions

However, if your WooCommerce Subscriptions are setup for the customer to downgrade or upgrade their subscription (i.e. change from 1 month to every 2 months or change recurring total from $50/month to $75/month) you will have to apply for PayPal Reference transactions. in your PayPal dashboard (typically requires subscription revenue to be $2,000/month or higher). Learn more about how to apply here.

Can I use the same PayPal information as my other ecommerce shop?

Yes you can use the same PayPal information. I just would recommend setting the invoice prefix to be different on each store. In addition, login to your PayPal -> Preferences, and set Block accidental payments to “No.” See more details here

On my WooCommerce “Orders” page dashboard, it says “On hold” instead of “completed. Any Suggestions?

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): bill@microsoft.com
PayPal Sandbox (Business Account): steve@apple.com

Why do I need to create multiple PayPal Sandbox accounts for my WooCommerce store?

Because you need to create 1 Sandbox account for your store to process payments, and 1 Sandbox account for the customer to process their payment. For example, I started a Ecommerce Store called “Sam’s Shoes” and it is based in Orlando, Florida. I need to create 1 Sandbox account for my store “Sam’s Shoes” so I know I will receive payment when a customer makes an order. I need to create 1 other Sandbox account to simulate a customer (let’s say Katie from Phoenix is making a purchase for some Yeezy’s), so I can test that the customers PayPal account will work properly.

Will PayPal Standard work in my country?

PayPal Standard is available almost anywhere in the world, with certain exceptions due to legal constraints. These countries include the following: Belarus, Burma (Myanmar), Democratic Republic of the Congo, Iran, Iraq, Liberia, Nigeria, North Korea, Sierra Leone, Sudan, Syria, Western Balkans, Zimbabwe.

What do I need to create a PayPal Business account?

To create a PayPal Business account you need the following:

  • Valid email address
  • Customer service information
  • Business address
  • Phone number
  • Bank name
  • Business or personal bank account number.
  • Bank routing number

Go to PayPal.com and click “Sign up” for business account.

How to change the “Proceed the PayPal” button text in WooCommerce?


/* = Custom PayPal Button Text
---------------------------------------------------- */
function custom_paypal_button_text( $translated_text, $text, $domain ) {
	switch ( $translated_text ) {
		case 'Proceed to PayPal' :
		$translated_text = __( 'NEW BUTTON TEXT!', 'woocommerce' );
		break;
	}

	return $translated_text;
}

add_filter( 'gettext', 'custom_paypal_button_text', 20, 3 );

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): bill@microsoft.com
      PayPal Sandbox (Business Account): steve@apple.com

      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