How to setup PayPal Standard (and sandbox account) in WooCommerce?

Featured, WooCommerce
How to setup PayPal Standard (and sandbox account) in WooCommerce?

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

To clarify, this is not for PayPal Checkout. This is for PayPal Standard.

To use PayPal Standard, you must have a PayPal business account.

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

Let’s jump into it!

How to setup PayPal Standard on WooCommerce?

  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

Step 1: Enable PayPal in WooCommerce

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

Next, click the Payments tab.

Then, enable the PayPal payment method and click Setup.

Next, add in your PayPal email address.

If you have not created a PayPal account yet, create a business account before proceeding. You will need a business account to get your API keys from PayPal.  

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.

Video: How to setup PayPal Standard?

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.

Under Advanced Options, find “PayPal sandbox” and click “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.

To get these we need to go to your PayPal Developer account and Sign In.

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

Then, on the Sandbox Test Accounts page, click Create Account and create a Business Account.

After creating your Business Account, hover over the Manage tab and click “Profile” to see your Account Details. Toggle the tab to “API Credentials”.

Then, copy and paste the Username, Password, and Signature into your WooCommerce PayPal sandbox settings.

Click Save changes.

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

If you are having trouble, follow along to this video tutorial below.

Additional Resources

Comments

  1. Msheff January 4, 2020 | 5:58 am

    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?

    • Simon Gondeck March 11, 2020 | 9:16 pm

      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).

  2. Vlad April 22, 2020 | 12:52 pm

    Great tutorial, thanks a lot

  3. Monica May 25, 2020 | 11:21 pm

    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?

  4. jeems May 31, 2020 | 8:44 pm

    Thank you for this tutorial keep it up!

Leave a reply for Msheff

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. Your email address will not be published. Required fields are marked*

FAQ

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.

Does PayPal accept recurring payments?

Yes, PayPal accepts recurring payments and works on WooCommerce Subscriptions. Learn more by watching my video tutorial here: https://www.youtube.com/watch?v=_aMTW4rcW0A

How to create a sandbox account for PayPal Standard?

Looking to also setup a PayPal sandbox account to test transactions? See the video at: https://www.youtube.com/watch?v=KDcAvJ_jURk

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

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

What WooCommerce plugin do I need to setup PayPal Pro?

Looking to setup PayPal Pro? Get the plugin here: https://sgwp.dev/a8fcb

After setting up PayPal, can my Ecommerce store start accepting payments?

Yes you are correct! I always do a test order using a real PayPal account to make sure everything is working properly!

Here is a link for How to Setup a PayPal sandbox account to test transactions: https://www.youtube.com/watch?v=KDcAvJ_jURk

Will PayPal Standard work with WooCommerce Subscriptions?

Yes it will! 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). Read more about how to apply here: https://docs.woocommerce.com/document/subscriptions/faq/paypal-reference-transactions/

PayPal does not does not add shipping cost to payment. Any suggestions?

I would look at these docs for more information on shipping costs: https://docs.woocommerce.com/document/paypal-standard/#section-13

Is it possible to see the Paypal Guest checkout after click "place order"? I want the customer see the guest checkout so they can still pay if they don't have a PayPal account.

Yes, it is possible to see the PayPal Guest Checkout after clicking “place order”. However, a user will be able to sign into their PayPal account or use PayPal Guest Checkout.

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: https://docs.woocommerce.com/document/paypal-standard/#section-16

I have Multiple WooCommerce Sites that all use the same PayPal account info. What would you recommend for the Auto Return URL?

I do not have experience using the same PayPal account on Multiple Woo sites, but looks like the auto-return URL will return to the URL used by that website. I would add https://example.com/checkout/order-received/ in your PayPal dashboard and then this on another site of yours (i.e. example2.com) to see if it auto-returns to https://example2.com/checkout/order-received/. See more info here: https://docs.woocommerce.com/document/paypal-standard/#section-7 and https://www.pixelyoursite.com/documentation/enable-paypal-auto-return

Do you need to create two separate PayPal sandbox accounts for Test Transactions?

Yes, you need to create two separate PayPal sandbox accounts. The first PayPal Sandbox account as a “BUSINESS ACCOUNT” where you add the API credentials in the PayPal Standard payment settings in the WooCommerce backend under “sandbox mode”. The second PayPal Sandbox account as a “PERSONAL ACCOUNT” that you use when going through the Checkout.

I have gone through the setup and after payment checkout, my WC order shows as Processing. Does this mean seller has received the payment automatically?

Yes that is correct. Whether you are in “sandbox” or “live” environment, if customers payment was successful the order status will be “processing”. If the payment was not successful the order status is “pending”, “failed”, “on hold”, etc.

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. Does that make sense?

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.