Read-only WooCommerce Stripe reconciliation for payment status, amount, currency, and refund mismatches.
View the Project on GitHub moxianyu6975-cpu/payment-truth-for-woocommerce
If WooCommerce marks an order paid while the matching Stripe PaymentIntent or charge is in a terminal failure state, pause operational decisions and verify the linkage between the two records. A WooCommerce status alone is not proof that Stripe collected the expected funds, and a Stripe failure attached to the wrong reference is not proof that the order is unpaid.
Start with identifiers rather than status labels:
This prevents a failed first attempt from being confused with a successful later attempt.
The mismatch may follow a manual WooCommerce status change, custom checkout code, a plugin conflict, an incorrect transaction reference, a retry flow, delayed data, or another integration issue. These are investigation paths, not conclusions.
Payment Truth for WooCommerce compares recent official WooCommerce Stripe Gateway orders with their matching Stripe records. After its grace period, it reports a critical finding when WooCommerce considers the order paid but Stripe reports a cancelled or terminally failed payment.
The plugin is intentionally read-only. It does not mark the order unpaid, cancel fulfillment, retry payment, or contact the customer. The store operator keeps control of every state-changing decision.