Read-only WooCommerce Stripe reconciliation for payment status, amount, currency, and refund mismatches.
View the Project on GitHub moxianyu6975-cpu/payment-truth-for-woocommerce
Stripe can report a successful payment while WooCommerce still treats the matching order as pending, on hold, failed, or otherwise unpaid. That disagreement does not automatically mean the customer should be charged again or that the order should be marked paid manually. First confirm that both records refer to the same transaction, then inspect order notes, Stripe events, webhook delivery, logs, and timing.
WooCommerce order status and Stripe payment status are separate records. The official Stripe extension normally updates the WooCommerce order after the payment flow and relevant webhook processing complete. A delay, configuration problem, interrupted request, plugin conflict, or manual edit can leave those records out of sync.
The observable fact is simple:
The cause is not established until the evidence is reviewed.
pi_...) or charge ID (ch_...) from the order metadata or transaction details.Do not use a screenshot or customer statement as the only proof that the two records match.
Payment Truth for WooCommerce scans recent orders created by the official WooCommerce Stripe Gateway. When a usable PaymentIntent or charge reference exists, it reads the matching Stripe record through the gateway’s existing connection and compares it with WooCommerce.
After a five-minute grace period, it can report the critical pattern “Stripe succeeded while WooCommerce still considers the order unpaid.” The finding keeps the order and provider evidence together, but it does not change the order, replay a webhook, capture money, or decide whether fulfillment is safe.
A mismatch does not prove that a webhook failed. The same visible result may follow an interrupted checkout, delayed processing, an extension conflict, a manual status edit, an incorrect transaction reference, or another integration problem. Root-cause analysis still requires logs and event history.