WebToffee Logo
  • Home
  • Plugins
  • Shopify apps
  • Bundles
  • Blog
  • Documentation
  • Support
Login
cart 0

  • Getting Started
    • Setup Guide
    • PayPal credit card checkout
    • Accept Payment Using PayPal Smart Button
    • Accept Payment using PayPal Express Button
  • Issue Refund
    • Automatic Refund Using PayPal
  • Customizations
    • Hide/change credit or debit card icons
    • PayPal Express button on a custom page
  • Third-Party Compatibility
    • Compatible Plugins
  • Video Tutorial
    • Get client ID and secret from PayPal business account
  • Changelog
    • Version 1.4.2
  • Troubleshoot
    • Common error codes and their causes
    • Fix 'Unpaid Order Cancelled - Time Limit Reached'

Home » Docs » PayPal Express Checkout Payment Gateway for WooCommerce » WooCommerce Order Canceled After Successful PayPal Payment: Unpaid Order Canceled – Time Limit Reached

WooCommerce Order Canceled After Successful PayPal Payment: Unpaid Order Canceled – Time Limit Reached

Last updated on May 8, 2023

You may have experienced the issue where purchased orders using PayPal do not get completed. All the purchased order changes to the “canceled” status. In the admin area, all the orders appear as “canceled”  with the message “Unpaid order canceled – time limit reached“. When this happens, you need manually change the statuses of all the canceled orders.

The problem arises due to the Hold Stock feature in WooCommerce Inventory management. In this feature, you can set a certain period of time to hold the stock for an unpaid order. During this time the status of the order is changed to “pending”. After the time limit is reached and the order is not paid, the pending order will be canceled. By default, WooCommerce will cancel the orders that remain in pending status for an hour.

This issue can be resolved easily. Go to the admin side of your WordPress store, and navigate to WooCommerce > Settings > Products > Inventory.

From this page, you can see that the Hold Stock field is set to 60 minutes by default. If you are using WooCommerce stock management, you can disable this feature by leaving the field blank. Simply delete the value in the field and then save the changes.

WooCommerce Products Inventory management page
WooCommerce Inventory Settings – Hold stock

This will ensure that there is no timeout when PayPal or any other payment tries to process the order automatically. Normally, the payment should be processed within a minute or two. PayPal and WooCommerce do not work very well together when the Hold Stock field has value in it. So, it is better to leave the field blank.

  • Was this article helpful?
  • Yes, thanks!Not really

This article posted in Documentation, PayPal Express Checkout Payment Gateway for WooCommerce, Troubleshoot and tagged woocommerce, WooCommerce canceled order, WooCommerce hold stock, WooCommerce inventory management, WooCommerce paid order canceled

Written by

Safwana

Safwana is a technical content writer for WebToffee. She loves working in WordPress and writing about it.

Comments (23)

  1. Cad

    July 15, 2022

    Bonjour, A propos de l’extension woo commerce, à quoi correspond l’annulation d’une commande ? J’en ai faite une à la demande d’un client. Pensant, qu’elle était supprimée, mais apparemment, elle n’annule pas le paiement, j’ai été surprises de lire que, 8 jours après, le client a eu le prélèvement de cette commande effectuée alors que je l’avais annulée. Comment cela se fait-il ? Merci pour votre explication.

    Reply
    • Alan

      July 21, 2022

      Hi,
      Can you please reach us via support and share the PayPal log file of the transaction and brief us on how you cancelled the order?

      Reply
  2. Naganagoud

    June 17, 2022

    Thank u so much………………..

    Reply
  3. Rakesh Kumar

    April 13, 2021

    Show in status cancelled

    Reply
  4. Angela

    October 19, 2020

    Thanks very much for this! I had the same problem with Stripe, so it’s not just a PayPal thing.

    Reply
  5. Fuuki

    September 8, 2020

    Hi, i think i’m experiencing something similar. I got a notification that i received a payment, but the order status is ‘CANCELLED’
    The payment hasn’t been tallied up though, has the customer paid or not?
    What should i do…

    Reply
    • Mark

      September 10, 2020

      As this is a woocommerce related issue, please reach out to their support forum.

      Reply
  6. Abhishek

    June 1, 2020

    After getting payment receiving mail and payment received by PayU.
    The following error comes
    Unpaid order cancelled – time limit reached. Order status changed from Pending payment to Cancelled. and also did not show the Payment successful message payu id, Transaction ID on order notes.

    Reply
    • Mark

      August 7, 2020

      If you are still experiencing any issues, please submit a ticket here.

      Reply
  7. hgf

    December 19, 2019

    An impressive share! I have just forwarded this
    onto a colleague who has been conducting a little homework on this.
    And he in fact ordered me lunch simply because I found it for him…
    lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending time to talk about this topic
    here on your website.

    Reply
  8. lashman

    June 19, 2019

    Hello, plz am having a cancel order this i created my store and i dont no how to go abt this….

    Reply
    • Mark

      June 20, 2019

      Hi,

      Canceled order may come due to many reasons. Are you sure that this is not just an order that the user canceled during paymeent? Do you have cancelled orders in your site regularly?

      Reply
  9. T Price

    April 16, 2019

    If a user adds an item to the cart and chooses the Affirm payment option, but does not finish the application process with Affirm, you will receive a cancelled order. If you do not see an authorization with a canceled order, most likely the applicant did not finish the process. If you see an authorization with a time limit expired message, make sure the hold stock feature is clear. When you do this, the pending order will remain until you change the status to processing. This does not however, mean the customer finalized the Affirm payment. Check your Affirm dashboard to see if payment has been received. If not, the customer most likely received an authorization but did not approve payment.

    Reply
  10. Giovanni

    November 29, 2018

    Is possible to restore a recurring payment after WooCommerce has canceled it? Or I have to recall my customer to do any manual action?

    I have WooCommerce Subscriptions and WooCommerce Memberships integrated and they were work fine till last month.
    From this month 2nd and others recurring payment of my customers start to be canceled… I need to restore the recurring payment…
    Thank you in advanced.

    Reply
    • Mark

      November 29, 2018

      Hi,

      Please try contacting woocommerce support. They will be able to help you with this. We are unable to say about the behaviour of woocommerce subscriptions as we are not the developers of said plugin.

      Reply
  11. erica alberti

    November 26, 2018

    Hello there,
    do you might know how to correct this error I received all time for new order?
    SHA Error: 8918824F5D92F3EDB28E96CF58F08CA706D452F8 == F0D7433F339460889F156050F1B90685E94C0E0A Order status changed from Pending payment to Cancelled.

    Reply
    • Mark

      November 27, 2018

      Hey,

      Please mention which payment gateway plugin you are using.

      Reply
  12. Hitesh Bhasin

    October 21, 2018

    Thanks a lot for this. This simple setting made me lost 12 or more orders. 🙁

    Reply
    • Mark

      October 23, 2018

      Hi Hitesh,

      Glad to know that you found the article helpful!

      Reply
  13. Sherissa

    August 16, 2018

    My client is also having this problem with orders being cancelled. Sometimes the order is cancelled after payment has gone through and other times order is cancelled, payment not received.
    Consecutive orders.

    Reply
    • Safwana

      August 17, 2018

      Hi Sherissa,

      This seems like a WooCommerce related issue. Please contact the WooCommerce Support team regarding this issue.

      Reply
  14. E Covey

    June 21, 2018

    I did delete the contents of the “hold stock” box, which sort of makes sense, but after doing that 2 more orders were canceled. This has never happened until the latest Woocommerce update, but now happens so often that I am going to lose business. Any thoughts on what is going on?

    Reply
    • Jwalin Shah

      June 23, 2021

      I’m facing the same issue, did you find any solution on this?

      Reply

Got any query? Please leave a comment or reach out to our support

Cancel reply

Your email address will not be published. Required fields are marked *

Webtoffee
Facebook
Twitter
Youtube
Linkedin
WordPress

We develop awesome WordPress plugins & WooCommerce extensions to help build successful online businesses.

Trustpilot

© 2023 WebToffee. All rights reserved.

Our plugins

  • GDPR Cookie Consent
  • PDF Invoices & Packings Slips
  • Product Import Export Plugin
  • User & Customer Import Export
  • Import Export Suite
  • Sequential Order Numbers
  • Smart Coupons for WooCommerce
  • URL Coupons for WooCommerce
  • PayPal Express Checkout
  • Stripe Payment Gateway
  • Subscriptions for Woocommerce
  • Product Catalog Sync for Facebook
  • PrintNode for PDF Invoices
  • Order, coupon, subscriptions for WooCommerce
  • WordPress Backup and Migration
View more +

Get Started

  • Plugins
  • Testimonials
  • Customer Stories
  • Affiliates
  • We're hiring

Help & Support

  • Installation Guides
  • Documentation
  • Documentation (Basic)
  • FAQ
  • Support

Company

  • About Us
  • Terms & Conditions
  • Privacy Policy
  • Cookie Policy
  • Refund Policy
  • Support Policy

© 2023 WebToffee. All rights reserved.

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
Cookie settingsReject allAccept all
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of the basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website, to store user preferences and provide you with content and advertisements that are relevant. Such cookies will be stored on your browser but only upon procuring consent.

You will also have the option to opt-out of these cookies should you want to. But opting out of some of these cookies may have an effect on your browsing experience as per the descriptions elucidated against the respective categories below.

Necessary
Always Enabled
The cookies defined under this category are absolutely essential for the website to function. Hence they are loaded by default irrespective if user consent.
CookieDescription
__cfruidCloudflare sets this cookie to identify trusted web traffic.
__stripe_midStripe sets this cookie cookie to process payments.
__stripe_sidStripe sets this cookie cookie to process payments.
cookielawinfo-checkbox-advertisementSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analyticsSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
cookielawinfo-checkbox-necessarySet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
cookielawinfo-checkbox-preferencesThis cookie is set by the GDPR Cookie Consent plugin to check if the user has given consent to use cookies under the "Preferences" category.
CookieLawInfoConsentRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
PHPSESSIDThis cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user sessions on the website. The cookie is a session cookie and is deleted when all the browser windows are closed.
viewed_cookie_policyThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not a user has consented to the use of cookies. It does not store any personal data.
Analytics
Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and are reported anonymously.
CookieDescription
_gaThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.
_ga_BQH8MSKD4MThis cookie is installed by Google Analytics.
_gat_gtagIdentification code of website for tracking visits.
_gidThis cookie is installed by Google Analytics. The cookie is used to store information on how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visited in an anonymous form.
_hjAbsoluteSessionInProgressHotjar sets this cookie to detect the first pageview session of a user. This is a True/False flag set by the cookie.
_hjFirstSeenHotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user.
_hjidHotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
_hjIncludedInPageviewSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's pageview limit.
_hjIncludedInSampleThis cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate heatmaps, funnels, recordings, etc.
_hjIncludedInSessionSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's daily session limit.
_hjTLDTestTo determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails.
CONSENTYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
has_recent_activityThis cookie is used to signal to the code repository website if the user has browsed other website resources during the current session.
tk_aiGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
tk_lrThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
tk_orThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
tk_qsGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
tk_r3dThe cookie is installed by JetPack. Used for the internal metrics for user activities to improve user experience.
Advertisement
Advertisement cookies help us provide our visitors with relevant ads and marketing campaigns.
CookieDescription
_fbpThis cookie is set by Facebook to deliver advertisements when they are on Facebook or on a digital platform powered by Facebook advertising after visiting this website.
frThe cookie is set by Facebook to show relevant advertisements to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook Pixel or Facebook social plugin.
VISITOR_INFO1_LIVEA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSCYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devicesYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-idYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
Preferences
Preference cookies are used to store user preferences to provide them with content that is customized accordingly. This includes the language of the website or the location of the visitor.
CookieDescription
_gh_sessThis cookie is used to preserve users' states across page requests.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
CookieDurationDescription
_hjSession_137657130 minutesNo description
_hjSessionUser_13765711 yearNo description
_octo1 yearNo description available.
_zendesk_authenticatedpastNo description
_zendesk_sessionsessionNo description available.
_zendesk_shared_sessionsessionNo description available.
edd_wp_session12 hoursNo description available.
logged_in1 yearNo description available.
m2 yearsNo description available.