Stripe webhook and payment errors

An order is stuck on pending after a payment — what the webhook does and what to send support.

Published June 2, 2026

A customer tells you they paid, or you can see a charge, but the order is still showing Pending and never moved to Received. This article explains what sits behind that and what to do about it.

What the webhook does

When a customer pays at checkout, Stripe sends MenuDock a short confirmation message to say the payment went through. That message is the webhook. It's what flips an order from Pending to Received, which is also when the customer gets their confirmation email.

You don't set this up or maintain it. MenuDock owns the webhook and keeps it running across all stores. Your side of payments is connecting your Stripe account, covered in Connect Stripe. So if a payment looks off, your job is to recognise what's happened and pass the right details to support, not to change any Stripe settings.

Order stuck on pending

Pending means the order was created but the payment hasn't been confirmed. For most orders this lasts a few seconds and nobody notices. See Order status flow for how the statuses fit together.

If an order sits on Pending and the customer says they paid, one of two things has happened:

  • The payment never actually completed. The card was declined, the customer closed the page, or a 3D Secure check was started and not finished. No money was taken, and there's nothing to fix on your end.
  • The payment did complete, but the confirmation didn't reach MenuDock in time. There's a real charge in Stripe, yet the order is still Pending. This is the one to report.

The good news for the second case: the system is built to retry safely. Stripe re-sends the confirmation if the first attempt doesn't land, and MenuDock won't double-charge or duplicate the order when it does. Most short hiccups sort themselves out within a few minutes, so it's worth refreshing the order before doing anything else.

Was the customer actually charged?

This is the question that tells the two cases apart, and you answer it in your own Stripe dashboard.

Open the payment in Stripe and look at whether a charge was captured. If there's no captured charge, no money left the customer. The payment didn't go through, so the order should stay Pending and the customer should simply place it again. Nothing is broken.

If there is a captured charge but the MenuDock order is still on Pending, that's the delivery hiccup. Note the order number and the Stripe payment reference and send them to support.

Declined or abandoned payments

A declined card is normal and isn't a fault with your store or with MenuDock. Stripe records it as a failed payment, no money is taken, and the order stays Pending. Ask the customer to try a different card or check with their bank. The same goes for someone who reaches checkout and closes the page before paying: the attempt is dropped and you can ignore it.

What to send support

Before contacting us, check the charge in Stripe as above and give it a few minutes in case it self-corrects. If a charge was captured but the order is still Pending after that, email support@menudock.co.uk with:

  • your store name
  • the MenuDock order number
  • the Stripe payment reference (the payment intent ID from the charge in your Stripe dashboard)

With those three things we can match the charge to the order and move it to Received for you. Please don't change any webhook or endpoint settings in Stripe, as that's part of the platform plumbing MenuDock manages and altering it can stop confirmations reaching us.

Related articles

Need a hand?

Charge captured in Stripe but the order is still on Pending after a few minutes? Email support@menudock.co.uk with your store name, the order number, and the Stripe payment reference, and we'll reconcile it.

Was this article helpful?