Payment recovery guide

WooCommerce payment pending after successful Stripe or PayPal payment: recovery checklist

Reviewed September 28, 2026 Evidence confidence: diagnostic guide with official-source links Primary risk: captured money and store order state disagree
Current decisionDo not manually complete, refund, delete, or re-run payment actions until you verify the gateway transaction, WooCommerce order status, webhook delivery, captured amount, shipping, tax, discounts, refunds, and customer-facing receipt. The goal is to avoid turning one payment-state mismatch into duplicate fulfillment, duplicate refunds, or incorrect accounting.

Use this when

Use this checklist when WooCommerce still shows Pending payment or another unclear order state, but the payment processor shows activity. Common examples:

  • Stripe shows a successful or captured payment, but the WooCommerce order stayed Pending payment.
  • PayPal shows a successful payment, authorization, capture, or transaction, but WooCommerce did not move the order correctly.
  • Mollie, WooPayments, PayPal, or Stripe shows a different total than the WooCommerce order total.
  • The customer says they paid, but the store did not send the expected order confirmation.
  • Checkout failed or timed out, but the payment gateway still shows an authorization, capture, payment intent, transaction, or refund activity.
  • Shipping, tax, coupon, currency, refund, or payout numbers do not reconcile.

15-minute recovery checklist

  1. Freeze the evidence first. Save the WooCommerce order ID, customer email, checkout time, payment gateway, plugin versions, order notes, gateway transaction ID, error message, and any screenshots before clearing caches or changing plugin settings.
  2. Check the payment gateway record. Open Stripe, PayPal, Mollie, or WooPayments and confirm whether the payment was authorized, captured, failed, refunded, disputed, cancelled, or still pending. Record the exact amount and currency.
  3. Check the WooCommerce order state. Compare order status, order total, payment method, transaction ID, order notes, stock changes, email events, shipping total, tax total, discount total, and refund records.
  4. Check webhook or notification delivery. Payment gateways often update store state through webhooks or server notifications. Look for failed deliveries, missing events, duplicate endpoints, blocked requests, or verification/signature errors.
  5. Reconcile money before fulfillment. Compare gateway captured amount to WooCommerce order total. Check item subtotal, shipping, shipping tax, product tax, coupon, fees, currency, exchange rate, partial refunds, and payouts.
  6. Make the smallest safe correction. Only after the records agree, choose one action: update order status, capture payment, refund, re-send invoice, contact customer, reconfigure webhooks, update plugin, or escalate to gateway/plugin support with evidence.
  7. Log the final state. Record what changed, who changed it, the before/after order status, payment state, amount, refund state, and whether the customer or accountant needs follow-up.

Gateway → store reconciliation map

CompareWhy it mattersWhat to write down
Gateway transaction stateThe processor is the source for whether money was authorized, captured, failed, refunded, or disputed.Transaction/payment ID, status, amount, currency, time, fees, refund/dispute state.
WooCommerce order stateThe store controls fulfillment, emails, inventory, and customer support workflow.Order ID, status, order notes, transaction ID, email logs, stock notes.
Webhook / IPN / notification deliveryMany order-status mismatches happen when the gateway paid event does not reach or verify on the store.Event ID, endpoint URL, HTTP status, delivery attempts, signature/verification errors.
Amount breakdownUndercollection can hide in shipping, taxes, discounts, fees, currency, or rounding.Item subtotal, shipping, tax, discounts, fees, total captured, total expected.
Refund and payout recordsA payment can look fixed in the order screen while payout/accounting data remains wrong.Refund IDs, payout IDs, balance/report line items, accounting notes.

Search your site records

Look for these terms in order notes, logs, plugin logs, server logs, and support tickets:

woocommerce payment pending
pending payment
payment succeeded order pending
stripe payment succeeded woocommerce order pending
paypal payment succeeded woocommerce order pending
payment_intent.succeeded
payment_intent.payment_failed
checkout error
webhook verification failed
OrderProcessor.php
amount mismatch
shipping not included
tax mismatch
captured amount
transaction id
refund failed

Known issue records

SymptomRecordFirst check
Stripe paid, WooCommerce pendingWooCommerce Stripe payments stuck in Pending PaymentReconcile successful Stripe payments against WooCommerce order status.
Stripe checkout error after updateWooCommerce Stripe 10.8.3 checkout errorCheck cache layers, Stripe.js, Adaptive Pricing, and WooPayments conflicts.
Gateway charged less than order totalStripe charged without shipping costCompare captured amount against shipping, VAT/tax, discounts, and total.
PayPal and WooCommerce totals disagreeWooCommerce PayPal amount mismatchAudit discounted, gift-card, tax-sensitive, and negative-fee orders.
Safety noteThis is independent research, not official support, accounting advice, tax advice, legal advice, or a replacement for gateway/plugin support. When real money is involved, preserve evidence and verify the official processor record before making irreversible changes.

Get future revenue-breakage alerts

The product being tested is simple: save your WooCommerce payment stack and get notified when a plugin, gateway, checkout, webhook, refund, total, or reconciliation issue could affect real orders.

Save your stack for alerts

Official references