Title: Paidcheck &#8211; Find Orders Paid with Stripe but Stuck in Pending for WooCommerce
Author: Mykyta Dudariev
Published: <strong>12 d'octubre de 2026</strong>
Last modified: 29 d'octubre de 2026

---

Cerca extensions

![](https://ps.w.org/paidcheck/assets/banner-772x250.png?rev=3740925)

![](https://ps.w.org/paidcheck/assets/icon-256x256.png?rev=3740925)

# Paidcheck – Find Orders Paid with Stripe but Stuck in Pending for WooCommerce

 Per [Mykyta Dudariev](https://profiles.wordpress.org/mykytadudariev/)

[Baixa](https://downloads.wordpress.org/plugin/paidcheck.1.1.0.zip)

 * [Detalls](https://ca.wordpress.org/plugins/paidcheck/#description)
 * [Ressenyes](https://ca.wordpress.org/plugins/paidcheck/#reviews)
 *  [Instal·lació](https://ca.wordpress.org/plugins/paidcheck/#installation)
 * [Desenvolupament](https://ca.wordpress.org/plugins/paidcheck/#developers)

 [Suport](https://wordpress.org/support/plugin/paidcheck/)

## Descripció

Sometimes a customer pays with Stripe, but the WooCommerce order never hears about
it: the Stripe webhook fails or is missed, the customer closes the tab before the
redirect back, or a confirmation gets lost. The money is in your Stripe account,
but the order status is not updated after the payment and the order sits in «Pending
payment», «Failed», «On hold» or even «Cancelled», and the customer waits for goods
that never ship.

Paidcheck finds those orders. Open **WooCommerce > Paidcheck**, choose how far back
to look (1, 2 or 7 days) and press **Check orders**. Paidcheck reads each recent
unpaid Stripe order’s payment from Stripe and sorts the results:

 * **Paid, order not updated**: Stripe has the full payment (or an uncaptured authorization
   on a pending or failed order), the order does not.
 * **Paid, amount differs**: Stripe has a payment, but for a different amount or
   currency.
 * **No link to a Stripe payment**: the order has no Stripe payment recorded, or
   Stripe does not know it.
 * **Payment in progress**: the payment is still processing or waits for the customer.
 * **Could not check**: Stripe could not be reached for that order; the reason is
   shown.

Each finding shows the order with a link to edit it, both amounts, both statuses,
the payment time and the Stripe payment ID linked to your Stripe Dashboard, so you
can fix the order by hand.

**Read-only.** Paidcheck never changes an order, never adds an order note and never
creates, changes or cancels anything in Stripe. Orders created in the last 15 minutes
are skipped, so payments still being confirmed are not reported.

**Supported gateway.** Paidcheck works with the official [WooCommerce Stripe Gateway](https://wordpress.org/plugins/woocommerce-gateway-stripe/)
plugin, including its card, wallet and local payment methods. WooPayments is not
supported: it does not give the store a Stripe key to read with. Other Stripe plugins
are not supported either.

**Where the Stripe key comes from.** You choose on WooCommerce > Paidcheck > Settings.
By default nothing is configured: Paidcheck uses the secret key that the WooCommerce
Stripe Gateway has saved for its current mode (the test key in test mode, the live
key otherwise), and does not store, display or log it. Optionally you can save your
own restricted key with read access only, one for test mode and one for live mode,
so that Stripe itself enforces that Paidcheck cannot change anything. A restricted
key is stored in your site’s database, as the gateway stores its own keys, and is
never shown again after you save it. When a restricted key is chosen, the gateway’s
key is never used. The key is used only for the requests below.

The last result stays on the screen until the next check and holds order numbers,
statuses, amounts and Stripe payment IDs only, no customer names, emails or addresses.
Paidcheck supports High-Performance Order Storage.

### External services

Paidcheck connects to the Stripe API (`api.stripe.com`), provided by Stripe, to 
read the payment state of your orders.

 * **When:** while a shop manager runs a check on the WooCommerce > Paidcheck screen,
   and once when a shop manager saves a restricted key for the gateway’s current
   mode, to confirm that it sees this store’s payments. Nothing is sent in the background.
 * **What is sent:** for each checked order, a read request for the PaymentIntent
   or Checkout Session ID that the WooCommerce Stripe Gateway recorded on the order,
   authenticated with the key you chose (the gateway’s secret key or your restricted
   key). When a restricted key is saved, up to three such read requests for the 
   most recent orders’ PaymentIntents and one for the most recent order that recorded
   only a Checkout Session. No customer data is sent.
 * **What is received:** Stripe returns the full payment object, which includes 
   the latest charge and, for a Checkout Session, the session. These can contain
   the customer’s billing name, email and address as Stripe recorded them. Paidcheck
   uses only the payment’s ID, status, amount, currency, creation time and refund
   flag; it stores and shows nothing else, and keeps no customer details.

Stripe [Services Agreement](https://stripe.com/legal/ssa) and [Privacy Policy](https://stripe.com/privacy).

## Captures

[⌊Findings grouped by result, with both amounts, both statuses and a link to each
payment in the Stripe Dashboard.⌉⌊Findings grouped by result, with both amounts,
both statuses and a link to each payment in the Stripe Dashboard.⌉[

Findings grouped by result, with both amounts, both statuses and a link to each 
payment in the Stripe Dashboard.

[⌊A check in progress. In test mode the screen says that it checks test-mode payments.⌉⌊
A check in progress. In test mode the screen says that it checks test-mode payments
.⌉[

A check in progress. In test mode the screen says that it checks test-mode payments.

[⌊The Settings tab by default: Paidcheck reads Stripe with the WooCommerce Stripe
Gateway's secret key and offers a read-only restricted key instead.⌉⌊The Settings
tab by default: Paidcheck reads Stripe with the WooCommerce Stripe Gateway's secret
key and offers a read-only restricted key instead.⌉[

The Settings tab by default: Paidcheck reads Stripe with the WooCommerce Stripe 
Gateway’s secret key and offers a read-only restricted key instead.

[⌊The Settings tab with a read-only restricted key in use, shown only by its last
four characters.⌉⌊The Settings tab with a read-only restricted key in use, shown
only by its last four characters.⌉[

The Settings tab with a read-only restricted key in use, shown only by its last 
four characters.

## Instal·lació

 1. Install and activate WooCommerce and the WooCommerce Stripe Gateway.
 2. Install Paidcheck through the Plugins screen, or upload it to `/wp-content/plugins/`,
    and activate it.
 3. Open WooCommerce > Paidcheck and press Check orders.

## PMF

### Stripe charged the customer but the order is still «Pending payment». Why?

Usually the Stripe webhook that tells WooCommerce about the payment failed or never
arrived, or the customer closed the tab before the redirect back to your store. 
The money is in Stripe, but the order was never updated. Run a check on WooCommerce
> Paidcheck to list such orders from the last 1, 2 or 7 days.

### A Stripe webhook failed or was missed. How do I find the affected orders?

Run a check on WooCommerce > Paidcheck covering the days the webhook was failing,
up to 7 days back. Orders that Stripe shows as paid but your store does not are 
listed as «Paid, order not updated». Fix each order by hand, then check the webhook
settings of the WooCommerce Stripe Gateway and your Stripe Dashboard so it does 
not happen again.

### Will Paidcheck mark my orders as paid?

No. It only reports. Open the order from the report, compare it with the payment
in your Stripe Dashboard and update it yourself.

### Which orders are checked?

Orders placed with the WooCommerce Stripe Gateway in the last 1, 2 or 7 days that
are pending payment, failed, on hold or cancelled, and older than 15 minutes.

### The report says «No link» for an order that was paid. Why?

The order has no Stripe payment ID, or Stripe does not know that ID for the key 
in use. A common cause is an order paid in test mode while the gateway is now in
live mode, or the other way round. The report shows which mode was checked.

### Can I use a restricted key?

Yes, and it is the safer choice: a restricted key can only do what you allow. In
the Stripe Dashboard open Developers > API keys > Create secret key, choose «Sharing
with a third-party service» (vendor name Paidcheck), then «Custom permissions». 
Set **Payment Intents** and **Checkout Sessions** to Read and leave every other 
permission on None. The key Stripe creates starts with `rk_`. Then open WooCommerce
> Paidcheck > Settings, click «Use a read-only restricted key instead», paste the
key for the gateway’s current mode (live or test) and click «Save and verify». Going
back to the gateway’s key later removes the saved restricted keys. Paidcheck checks
the key against a recent order’s payment before keeping it, and refuses a full secret
key (`sk_`), a key for the other mode, a key without the needed permissions and 
a key that does not see this store’s payments, which most likely belongs to another
Stripe account.

### Who can use it?

Users who can manage WooCommerce, such as administrators and shop managers.

### Does it work with many orders?

Yes. The check runs in small batches with a progress indicator, so hundreds of orders
finish without hitting your server’s time limit.

### What happens to my data if I delete the plugin?

Deleting Paidcheck removes its last result, any unfinished check and the restricted
keys saved in its settings. Orders and gateway settings are never touched.

## Ressenyes

No hi ha ressenyes per a aquesta extensió.

## Col·laboradors i desenvolupadors

«Paidcheck – Find Orders Paid with Stripe but Stuck in Pending for WooCommerce» 
és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.

Col·laboradors

 *   [ Mykyta Dudariev ](https://profiles.wordpress.org/mykytadudariev/)
 *   [ measuredcode ](https://profiles.wordpress.org/measuredcode/)

[Traduïu «Paidcheck – Find Orders Paid with Stripe but Stuck in Pending for WooCommerce» a la vostra llengua.](https://translate.wordpress.org/projects/wp-plugins/paidcheck)

### Interessats en el desenvolupament?

[Navegueu pel codi](https://plugins.trac.wordpress.org/browser/paidcheck/), baixeu-
vos el [repositori SVN](https://plugins.svn.wordpress.org/paidcheck/), o subscriviu-
vos al [registre de desenvolupament](https://plugins.trac.wordpress.org/log/paidcheck/)
per [fisl de subscripció RSS](https://plugins.trac.wordpress.org/log/paidcheck/?limit=100&mode=stop_on_copy&format=rss).

## Registre de canvis

#### 1.1.0

 * New: save your own restricted Stripe key with read access only, instead of using
   the WooCommerce Stripe Gateway’s secret key. The key is checked against a recent
   payment when you save it.
 * WooCommerce > Paidcheck now has two tabs: Check orders and Settings.
 * The screen and each result now say which key was used. A scan with a restricted
   key that finds none of your payments warns that the key may belong to another
   Stripe account.
 * A line about Paidcheck Pro, in development, below results that have orders needing
   action.
 * Fix: on narrower screens the order and Stripe status badges in the report wrap
   instead of cutting the status short, as in «Pending paym…».

#### 1.0.0

 * Initial release.

## Meta

 *  Versió **1.1.0**
 *  Darrera actualització **fa 6 dies**
 *  Instal·lacions actives **Menys de 10**
 *  Versió del WordPress ** 6.5 o posterior **
 *  Provada fins a **7.1.4**
 *  Versió del PHP ** 7.4 o posterior **
 *  Idioma
 * [English (US)](https://wordpress.org/plugins/paidcheck/)
 * Etiquetes
 * [order status](https://ca.wordpress.org/plugins/tags/order-status/)[pending payment](https://ca.wordpress.org/plugins/tags/pending-payment/)
   [stripe](https://ca.wordpress.org/plugins/tags/stripe/)
 *  [Vista avançada](https://ca.wordpress.org/plugins/paidcheck/advanced/)

## Valoracions

Encara no s'ha enviat cap ressenya.

[La vostra ressenya](https://wordpress.org/support/plugin/paidcheck/reviews/#new-post)

[Visualitza totes les ressenyes](https://wordpress.org/support/plugin/paidcheck/reviews/)

## Col·laboradors

 *   [ Mykyta Dudariev ](https://profiles.wordpress.org/mykytadudariev/)
 *   [ measuredcode ](https://profiles.wordpress.org/measuredcode/)

## Suport

Teniu quelcom a dir? Necessiteu ajuda?

 [Visualitza els fòrums de suport](https://wordpress.org/support/plugin/paidcheck/)