Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

WooCommerce Critical

WooCommerce Orders Stuck on Pending Payment: How to Reconcile

Customers paid but the order never progressed. The gateway callback is usually where it broke. Here is how to find it and reconcile safely.

Short answer: the payment was authorised at the gateway, but the message telling WooCommerce about it never arrived or was rejected. The order sits in “pending payment” while the money has genuinely moved.

Why it is worse than a visible error

Nothing looks broken — the store is online and checkout works for new visitors, only the order status is wrong. Meanwhile customers have been charged and are waiting, which turns a technical fault into a trust problem fast.

Where the callback fails

  • The webhook/IPN endpoint is unreachable, redirected, or returning an error.
  • A security plugin or firewall blocks the gateway’s server-to-server requests.
  • The callback URL still points at a staging or old domain after a migration — a classic cause.
  • A caching layer intercepts the endpoint and returns a cached response.
  • The gateway’s signing secret changed and validation now fails.

Check the gateway dashboard’s webhook/IPN delivery log — it usually shows the failed deliveries and the HTTP status your site returned.

Reconcile carefully

  1. Export the affected orders with timestamps and totals.
  2. Match them against the gateway’s transaction list to establish which were genuinely paid.
  3. Update only the confirmed orders, adding an order note recording why.
  4. Check stock, since manual status changes may not have adjusted inventory.

Never bulk-complete pending orders without matching them to real transactions — you will either ship unpaid orders or hide genuine payment failures.

Fix the cause and verify

Reconciling existing orders is remediation; the repair is restoring the callback path. Place one controlled order and confirm the status changes automatically, the email sends and stock decreases, then re-check the gateway log for queued failed deliveries.

WP REPAIR INCIDENT STANDARD

Reconstruct the incident before fixing it

Pending payment can mean no payment happened, a callback never arrived or the callback was rejected. Reconciliation must precede any bulk status change.

WP RepairDiagnostic model
1Browser2Session3Gateway4Order
Follow the chain until you find the first point that stops behaving as expected.
  1. 1

    Export affected order IDs, times, totals, currencies and gateway references.

  2. 2

    Match them to the gateway transaction and webhook delivery logs.

  3. 3

    Inspect callback URL, signing secret, firewall and cache behaviour.

  4. 4

    Update only confirmed paid orders with an audit note and explicit stock review.

What must be verified

  • Every historical order has a documented payment decision.
  • A new controlled order changes status automatically.
  • Webhook delivery returns a successful status and stock/email effects occur once.

ABOUT THIS SYMPTOM

Frequently asked questions about this guide.

If the store looks fine and checkout works for new customers, can the payment system still be broken?+

Yes. This particular issue leaves the store looking entirely normal, since payments were genuinely authorized at the gateway, but the message telling WooCommerce about it never arrived or was rejected, so only the affected orders' status is wrong while everything else functions.

Is it safe to bulk-mark all pending orders as complete to clear the backlog?+

No, never do this without matching each order to a real transaction first. Bulk-completing pending orders risks either shipping products that were never actually paid for, or masking genuine payment failures that need separate handling.

What's a common reason the payment callback stops working right after a site migration?+

The webhook or IPN callback URL registered with the gateway can still point at the staging site or the old domain after migration. Since the gateway sends its confirmation to whatever URL it has on file, this silently breaks the connection until the endpoint is updated.

After reconciling the stuck orders, is the problem actually fixed?+

Reconciling existing orders is remediation, not the repair. Confirm the callback path itself is restored by placing one controlled order and verifying the status updates automatically, the email sends, and stock decreases, then check the gateway's log for any other queued failed deliveries.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident↗