Let's say there is 120 seats in a cinema and there is a reserve your seat feature. The client has to choose his seat and then pay the amount for his seat.

Should the seat be locked once the client clicks book (his seats) or when he completes the payment flow ?

If it's when the client click book, then the seat will appear taken until

  • the client pays
  • abort the payment process
  • 15 minutes have passed to account for potential application crashes.

If it's on payment then once the payment pre-authorization happen:

  • if the seat is not available anymore the payment is cancelled and an error message is displayed

What are the usual expectations from users for this kind of system ?

1 Answer 1


It should not be possible to choose a seat which someone else has already chosen and is in the process of paying for. You need three statuses: Available, Held pending payment, and Bought.

You will have far more disgruntled customers who have chosen an apparently-available seat only to have their payment refused, than customers who see no seats available but are told "We currently have X seats being paid for: they may become available again shortly. Check back soon."

It does mean that once a seat is chosen and the payment path is started, that payment must be completed before the hold expires and the seat is released again. But that puts the onus on the buyer to complete his purchase (and you can have an on-screen countdown).

That is: don't dangle the carrot in front of a buyer and then whisk it away at the last moment. Tell them up front what the situation is.

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.