The bookings API handles the reservation phase that sits between event browsing and payment. When a user selects seats or ticket quantities, the client callsDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Sumitbose5/tktplz/llms.txt
Use this file to discover all available pages before exploring further.
POST /api/booking/get-booking-summary which runs two middleware layers — getPrices and lockItems — before returning the computed price breakdown. Locks are held for 10 minutes via Redis and are automatically released by a BullMQ background job. Call POST /api/booking/unlock-items to release them early if the user abandons the checkout.
Middleware pipeline
POST /api/booking/get-booking-summary passes the request through two middlewares before the controller:
-
getPrices— looks up ticket pricing for the event fromticket_prices(flat) orticket_categories(categorized). Attaches apriceInfoobject to the request containingprice,event,categories, andtype("flat","category", or"unpaid"). -
lockItems— claims the selected seats or ticket quantities in Redis using atomicSET NXoperations with a 600-second TTL. For seating events, locks keys follow the patternlocked:seat:{eventId}:{seatId}. For other event types, keys followtickets:lock:{eventId}:{type}:{userId}. A BullMQ unlock job is also scheduled. If any lock fails (seat already taken), the entire request is rejected with HTTP 409.
POST /api/booking/get-booking-summary
Locks selected items and returns an itemised price breakdown including the per-ticket convenience fee.This endpoint locks items atomically. If any seat or ticket type is already locked by another user, the whole request fails and you must retry with updated selections.
Seating events
UUID of the event.
Must be
"Seating" for assigned-seat events.UUID of the user holding the lock.
Array of seat UUIDs to lock, e.g.
["seat-uuid-1", "seat-uuid-2"].Same array of seat UUIDs — used by the controller to fetch price per seat.
Array of seat breakdown objects.
Sum of all seat prices before fees.
Sum of convenience fees. Tiers: ₹0–199 → ₹10; ₹200–499 → ₹30; ₹500–999 → ₹50; ₹1000+ → ₹75.
GST amount. Currently
0 (temporarily disabled).totalSeatAmount + totalConvenienceFee + gstAmount.Open and Online events
ForOpen and Online event types, pass eventDetails and categoriesBody instead of selectedSeats.
UUID of the event.
"Open" or "Online".UUID of the user.
Array of
{ type, count } objects representing ticket categories to lock.Object with at least
{ type } matching the event type.Array of
{ id, type, count, price } — the selected ticket categories with quantities.POST /api/booking/unlock-items
Releases locks held by a user for a specific event. Call this when the user navigates away from checkout without completing payment.UUID of the event whose locks should be released.
UUID of the user whose locks to release.
One of
"Seating", "Open", "Online", or "Registration". Determines which Redis key pattern to scan.GET /api/booking/get-locked-seats/:eventId
Returns all seats currently locked in Redis for a given event. Useful for rendering real-time seat availability on the seating map.UUID of the Seating event.
Array of lock objects.
Total number of currently locked seats.
