WooCommerce Payment Errors: What to Check
A WooCommerce payment error can happen before, during or after the provider accepts an attempt. Match the order with the transaction first, then investigate the gateway, account and notification path.
Read the guide
Search Field Notes
A useful next read.
36 field notes
No matching guide yet. Try “checkout”, “shipping” or “catalog”.
All Field NotesConfirm whether money moved before retrying
Check the WooCommerce order and the matching event in the payment provider’s account. A checkout error or missing confirmation page does not prove that no payment happened. Match the amount, currency, time and transaction reference through an authorised account owner, keeping customer details private.
If the provider has accepted or authorised an attempt, do not ask the customer to keep retrying while the order is unclear. Review the order notes and gateway state before changing fulfilment or recording a refund. Authorisation, capture and settlement are separate provider states; use the gateway’s terminology instead of treating every successful-looking event as completed payment.
Distinguish a decline from an integration error
A provider decline can relate to the payment method or merchant account and may need a provider-side response. An integration error can happen before the provider sees an attempt, or when the store fails to process the response. Read the exact message and the matching provider event to distinguish those paths.
Record the gateway extension and version, test/live mode, currency and purchase type. Express payments, Checkout blocks and subscriptions can have different requirements. A provider’s name alone does not establish support for every flow. Check the documentation for the installed extension and the feature being used, especially after a checkout change.
Check the same payment in three places
Match the customer message, gateway transaction and WooCommerce order.
- What you see
Checkout result
Record the visible message and whether the attempt created an order.
What to checkCheck before asking for a retry.
- What you see
Provider transaction
Match amount, currency, time and reference through the authorised account owner.
What to checkConfirm its payment state.
- What you see
WooCommerce order
Compare notes, status and the gateway notification for the same transaction.
What to checkReconcile the mismatch.
Read the order notes and the matching gateway log
Use the order’s notes to find the transition WooCommerce observed. Then review the gateway log or provider event for the same attempt. Keep the scope small: a specific test and timestamp are more useful than a large export of unrelated customer activity.
If diagnostic logging needs to be enabled, control access and turn it off when no longer needed. Logs can include identifiers or sensitive configuration, so redact them before sharing. A generic HTTP code is not a complete diagnosis; interpret it in the gateway’s context and look for the request or error detail that explains the failed step.

Trace the notification path when payment and order disagree
If the provider confirms payment but WooCommerce remains pending, examine the path that informs the store. Depending on the gateway, that can involve webhooks, callbacks or a return flow. Check the configured destination and the delivery result in the provider dashboard, then compare it with the store’s logs.
A firewall, access restriction, wrong URL or server error can interrupt that path. Keep webhook authentication and signature checks intact while investigating. Do not solve a delivery problem by making the endpoint accept unverified events or manually marking every pending order paid. Match the specific transaction first, then correct and test the notification flow using the provider’s documented method.
Reproduce the failure through the right test mode
Use an isolated store and the gateway’s supported test environment where possible. Repeat the required product, currency and checkout path, including recurring or express behaviour if relevant. Review recent extension, theme, cache and server changes one at a time when the evidence points there.
After a fix, verify the success and failure paths that the gateway supports: the displayed result, order transition and relevant notification. Sandbox success establishes that defined test path; production account conditions and settlement need their own confirmation. Record those limits so the business knows what was checked and which provider action is still outstanding.

Common questions
Why does a paid order still show Pending payment?
First verify the matching provider transaction. Then investigate order notes and the gateway’s notification/return path. Avoid duplicate attempts or manual fulfilment changes until the mismatch is understood.
Does Processing mean the money has settled?
It describes the store’s order state. Settlement and other provider-side states need confirmation in the payment account using that provider’s definitions.
Will changing payment plugins fix a decline?
A provider decline may be unrelated to store code. Check the attempt and account-side reason before replacing an integration.
Can I use the same gateway for Checkout blocks and subscriptions?
Only if the exact extension and version support the required features together. Verify each required purchase and renewal flow rather than assuming support from the provider name.
Can I mark an order paid manually?
First reconcile the exact provider transaction and the gateway/order mismatch. A manual status change should follow a confirmed business decision; it should not conceal an unverified payment or a broken notification path.