First, the bookings in an event have to be enable for the promoter and for the channel. Without this first step the booking flow isn't allowed.
Bellow, there is a diagram that shows the main flow. First, have to create the shopping cart and continue the flow as explained in the purchase flow section. Second, have to create order with /order/createOrder call , next, to confirm the booking with /order/commitOrder call. Finally, the booking will pass to be a purchase with the /order/purchaseBooking call.
First of all, an empty shopping cart must be created by calling /shoppingCart/create method which returns a token unique identifier. After that, you will have to use it in order to add/remove seat tickets to the cart.
Bear in mind whilst a shopping cart is active, any ticket into it is locked up to 10 minutes to ensure nobody else could buy them as well. In case that time expires without an order has been created, the tickets will be automatically released and will be available again. The processs in shopping cart (add seats, add client data, add delivery method) is the same that the purchase flow, this can see it in purchase flow alignment section.
Once the shopping cart is complete it should be turned into an order to be able to create the booking. This have to be performed in two steps in order to let you handle with the payment at your end. First call is /order/createOrder which one will increase the seating lock time up to 45 minutes, which is the time you will have to process that payment, to indicate that this is a booking the orderType parameter set the value BOOKING. Then a call to /order/commitOrder must be done to finally confirm the booking.
The payment processes have to be implemented at your end but at least you have to notice the amount already paid in the /order/commitOrder call and ensure this is greater or equals from the order total price amount.
Once the booking is committed, it pass to purchase with the /order/purchaseBooking call, so the state changes from booking to purchase. Notice that items parameter indicates which items will be in the purchase.