Our organisation sells extremely in demand tickets for events, where stock is typically limited. Users would get extremely angry if they lost their tickets once they have been allocated & the user is in the checkout funnel.

I have been thinking about the best way to handle the small number of cases where we may not get a response from our payments service. (+ 60secs)

1. Should we assume the payment has failed and prompt the user to pay again, setting up something on the backend to alert staff on potential duplicate payments that can then be refunded.

2. Or, should we take them though to some purgatory style page, where we inform them their order may have gone through & periodically call the status of the order to check if the status has changed to paid. Maybe also give the user the option to cancel out & re-attempt payment.

I am leaning towards the former as it seems the experience & messaging would be a little vague in the latter.

Any thoughts on best practices?

2 Answers 2


"Trust" is the keyword when we are talking about experience having to deal with money or warranty. In your case the user expectation that your system will reserve the valuable seat for them will either make or break the experience. From a UX point of view it is very important to bring in transparency in the system. This will help the user build trust with your site.

  • Your first option is not the greatest experience for any user, as their money gets locked with you and what if the loop repeats and the payment fails again which is highly likely if there is technical problem at the client side.
  • The second option is tempting but i would not recommend it as it is. If you just keep the user hanging they will pretty soon be frustrated and will attempt to either refresh the page on their own or try and hit any buttons that they see active on the page. In all cases this can be a frustrating experience.

My recommendation would be:

  • As i said earlier the best option that you have in failed cases is to be prompt and honest in telling the user (in simple language) that there is the technical glitch on the payment side.
  • As an additional would be to have a mechanism for a locking period and display this countdown timer to the user. Telling them upfront that the tickets would be locked for them only for this duration. The ideal time for someone to makeup their mind is around 5-7 mins.

Hope you find your way out of this.

Cheers, Nishant


Considering that you are asking this in a UX place, you have to consider the user first, so the ticket should be kept for the user a reasonable amount of time, plus you should give him the opportunity to pay with a different method.

If you have the option to wait for the payment response, that should be your first step.

Assuming that the payment has failed is good practice from the company perspective, but bad from the user point of view.

You should have clear messages to the user stating how you are going to proceed, giving him the chance to do the payment with a second method or try, after all, he is alsready interested in your product. Of course, you are still a company, and want to make money, so be reasonable with the time and wait, but not forever.

Remember, if users are happy, they will come back again and will recommend your site.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.