Payments Basics

Order Still Pending After Payment? What to Check

EPaySe Team
4 min read

When a customer has paid but your order still says pending, check three things in order. First, the payment status with your provider. Second, whether your provider sent a notification. Third, whether your server answered it without an error. Then fix the cause and resend a test notification. Tools and names differ between providers.

  • Payment status: did the payment really succeed at your provider?
  • Notification: did your provider send a message about it?
  • Your answer: did your server accept it without an error?

This guide is the written companion to our short video on the same topic.

Why can an order stay pending after the customer has paid?

Your order status is changed by your own system, usually when your provider tells it that a payment has succeeded. If that message never arrives, arrives late, or is rejected by your server, the payment can be complete while your order stays pending. Some payment methods also take time to confirm, so pending can be correct for a while.

Our article on payment webhooks explained covers what these notifications are.

What should you check first?

Check the payment status in your provider's dashboard or through their status lookup. If the payment is still pending there, the order is correct to wait, and the next step is to understand why the payment is slow to confirm. If it shows as successful, the problem is between your provider and your order system, so go to the next check.

If the payment shows as failed or declined, the order should not be paid. Our guide on why a card payment gets declined explains the difference between soft and hard declines.

What should you check second?

Look at your provider's delivery log for notifications, if they offer one. Find the notification for this payment and check whether it was sent, when, and what answer it received from your server. Providers differ in what they show, so check your provider's documentation.

If there is no notification, check that your notification address is set up for the right environment and is reachable from the internet.

What should you check third?

Check what your server answered. A notification is usually expected to receive a quick success response. An error, a timeout or a failed check of the message's signature can make your provider treat it as undelivered and try again later. Look at your server's logs around the time of the payment for errors.

Also check that your code finds the right order from the notification and updates it only once. Our article on three payment failures to test before launch includes a repeated-notification test.

How do you fix it and confirm?

Fix the cause you found, then resend a test notification, or ask your provider to resend the real one if they support it. Confirm that the order changes to paid once, and that your customer receives one confirmation. Write down what happened so the same check can be repeated.

Frequently asked questions

Why does my order say pending when the customer has paid?

Your order is usually updated when your provider sends a notification that the payment succeeded. If that message is late, missing or rejected by your server, the payment can be complete while the order stays pending.

What is the first thing to check?

Check the payment status with your provider. If it is still pending there, the order is right to wait. If it shows as successful, check whether a notification was sent and what your server answered.

Can a provider send the notification again?

Some providers retry a notification if your server does not answer with success, and some let you resend it manually. Check your provider's documentation for what yours supports.

Why might my server reject a notification?

Common reasons are an error in your code, a slow response, or a failed check of the message's signature. Look at your server's logs for the time of the payment.

How do I stop this from happening again?

Test failures before launch, including a notification that arrives twice or late, and monitor your notification endpoint. Keep a short checklist so that anyone on your team can run the same checks.

Where to go next

EPaySe is a payment gateway in development for high-risk and regulated businesses, reviewed and approved case by case. If you have questions about your own setup, contact the EPaySe team.

This article is general information, not legal, tax or financial advice. Check with your own advisor before making decisions about your business.

webhooks
payments basics
integration
pending orders
payment status
troubleshooting
Share:

Related Articles