A payment problem costs you an order every hour it stays broken.

Gateway setup, declined and failed transactions, Stripe/PayPal integration issues and custom gateway work — diagnosed from the actual gateway logs, not the generic error message the storefront shows.

Gateway setup, declined and failed transactions, Stripe/PayPal integration issues and custom gateway work — diagnosed from the actual gateway logs, not the generic error message the storefront shows.

A generic "payment failed" message hides several different real causes

The usual causes behind a decline or a stuck order.

WooCommerce shows the customer one of a handful of generic messages — declined, failed, unavailable — no matter what actually went wrong on the gateway side. The real cause is almost always visible in the gateway's own logs and API response: an expired authentication step, a currency mismatch, a webhook that never arrived, or an actual card decline. Most payment problems trace back to one of these, not a bug in WooCommerce itself.

WHAT USUALLY DRIVES THIS

  • A 3D Secure/SCA authentication step fails silently, and the customer sees a generic decline instead of the real reason
  • Stripe, PayPal or another gateway simply stopped showing at checkout after a plugin or theme update
  • A webhook never arrives, so a paid order stays stuck on "On hold" or "Pending" even though the customer was charged
  • A double-click on the pay button creates a duplicate charge, from a missing submit-lock on checkout
  • Test-mode keys are still live on a production store, or the reverse — live keys left active on staging
  • A currency mismatch between the store, the gateway account and the customer's card causes a false decline
  • The store needs a regional or local payment method with no existing WooCommerce plugin

What I deliver

Scoped and quoted once the actual cause is confirmed.

  • Payment gateway setup and configuration — Stripe, PayPal and regional/local gateways
  • Declined and failed transaction diagnosis — gateway logs, webhook and error-response tracing
  • 3D Secure/SCA authentication failures and card-declined troubleshooting
  • Authorize-vs-capture and delayed-capture workflow setup
  • Multiple-gateway setup, gateway migration and switching between providers
  • Custom payment gateway integration for regional, local or unsupported providers
  • Webhook reliability and duplicate-charge/double-submission fixes

TECHNOLOGY I USE

  • WooCommerce
  • WordPress
  • Stripe
  • PayPal
  • WooCommerce Payment Gateway API
  • PHP
  • Query Monitor
  • WP-CLI

How a gateway job runs

Five steps, start to finish — nothing skipped to save time.

  1. Trace the actual gateway logs and API response

    The storefront's error message is rarely the real one. I start in the order notes, the gateway's own dashboard/logs and the webhook delivery log to see the actual decline code or failure reason.

  2. Reproduce it with a real test transaction

    Not just the admin screen — a real transaction through the actual checkout, in the gateway's test or sandbox mode where possible, so the fix is verified against the real flow.

  3. Fix the specific cause, not a workaround

    Whether that's a gateway setting, a plugin conflict at checkout, a webhook endpoint, or code for a custom capture rule — the fix targets what the logs actually showed.

  4. Test on staging before it touches live payments

    Any gateway configuration or code change is verified on a staging copy first, since a mistake here means real money.

  5. Ship and monitor a run of live transactions

    Deployed with a rollback point taken first, then watched through a run of real orders to confirm the fix holds under actual traffic.

Who you’re working with

Eleven years of WordPress and web development work, WooCommerce included.

Ashekur Rahman, Website Developer
Ashekur Rahman
Freelance Website Developer

Running and integrating payment gateways on live WooCommerce stores has been a recurring part of eleven years in web development — enough to know how to read a gateway's own logs instead of guessing from the generic storefront error.

Based in
Bangladesh, worldwide clients
Experience
11 years in web development
Rating
5.0 — every Upwork contract
Response time
Within one working day

Questions I get asked

What store owners ask before fixing or setting up a WooCommerce payment gateway. See also the full Payments Q&A library.

Can you fix a WooCommerce payment gateway that stopped working?

Yes — I trace the actual gateway logs, webhook delivery and API response first, rather than guessing at a plugin update or a settings toggle. Most gateways that "just stopped working" have a specific error in the logs the storefront never shows the customer.

Do you work with Stripe and PayPal specifically?

Yes, along with regional and local gateways and custom/less common providers. Setup, migration between gateways, and fixing a specific integration issue are all in scope.

Why are customers' cards being declined?

A generic "declined" message on the storefront can hide several different real causes — a 3D Secure/SCA authentication step failing silently, a currency mismatch, a gateway-side restriction, or an actual card issue. I check the gateway's own decline code rather than treating every decline the same.

Can you build a custom payment gateway integration?

Yes — for a regional or local payment method that doesn't have an existing WooCommerce plugin, built against WooCommerce's own Payment Gateway API so it keeps working through core and WooCommerce updates.

What's the difference between authorizing and capturing a payment?

Authorization places a hold on a card without moving money; capture is the separate step that actually completes the charge. Some stores need delayed capture — charging only once an order ships, for example — which not every gateway plugin supports the same way. I set this up correctly for the specific gateway in use.

Can you fix duplicate charges from a double-click checkout?

Yes — this is usually a missing submit-lock on the checkout button combined with a slow or retried gateway request. I fix the underlying race condition, not just add a spinner.

Are webhooks part of this?

Yes. A missed or misconfigured webhook is a common cause of an order staying "On hold" or "Pending" after the customer was actually charged. I check webhook delivery and endpoint configuration alongside the checkout flow itself, since the two failure modes look similar from the storefront but have different fixes.

Is there a fixed price for gateway troubleshooting?

A single failed-transaction diagnosis or a gateway setup is usually a fixed quote after a short look at the store and its current gateway logs. Larger work, like a custom gateway integration or a full gateway migration, is scoped and priced the same way before work starts.

Payment Gateway Issues

5.0 · replies within a working day

$59to start

Not sure yet if this is the right fit? Start with the Payments Q&A library, then get a quote when you’re ready.

Why does WooCommerce just say "card declined"?

That's intentional — gateways withhold the precise reason at checkout so card testers can't use it to refine stolen numbers.

Not gateway-specific?

Checkout errors, custom fields and abandoned-cart causes that aren’t about the gateway belong on Checkout Optimization instead.

Something else entirely broken?

Shipping, tax, orders and stock problems outside the payment gateway belong on WooCommerce Fixes.

See All Other Questions

Goes straight to my inbox — real enquiries get a reply within one working day.

Prefer WhatsApp? Message directly

Available for new projects

NEXT STEP

Tell me what your payment gateway is doing that it shouldn’t.

Based in Dhaka, Bangladesh, working with clients worldwide. Describe the symptom — a decline, a stuck order, a missing gateway — and every serious enquiry gets a reply within one working day.