After a payment is verified, TktPlz creates a ticket record in theDocumentation 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.
tickets table. The tickets API exposes two operations: downloading a PDF version of the ticket (rendered with Puppeteer using HTML/CSS), and retrieving the HMAC-SHA256 signed QR code payload used for venue entry scanning.
POST /api/ticket/download
Generates and streams a PDF ticket. The server renders an HTML page using Puppeteer with the ticket holder’s details, event information, payment details, and an embedded QR code. The response is a binary PDF file withContent-Disposition: attachment.
The Razorpay order ID associated with the ticket. The server joins
tickets with users on this field.- Event name and
bookingIDin the header - Event poster image (from
eventDetails.posterstored in the ticket JSON) - Date, venue, city, state, and hall name (when applicable)
- Ticket holder name and email (from the
userstable) - Number of tickets, base amount, convenience fee, and total amount
- Seat information (
seat_no,seat_type) for Seating events - Zone information for Open events
- Order ID, payment ID, and
valid_tilldatetime - HMAC-SHA256 signed QR code for venue entry
GET /api/user/getQR/:orderId
Returns the HMAC-signed QR code payload for a ticket. TheorderId parameter in this endpoint is actually the ticket UUID (tickets.id), not the Razorpay order ID.
The QR data is a JSON-stringified object containing:
ticketId— the ticket UUIDhash— HMAC-SHA256 of the ticket UUID using the server’sTICKET_SECRET
POST /api/organizer/scan-qr) to validate entry.
The ticket UUID (
tickets.id) — not the Razorpay order ID.true on success."QR generated successfully"JSON-stringified string to be encoded into a QR image by the client. Contains
ticketId and hash.qrCode string is the raw data to encode. Pass it to any QR code library on the client:
Ticket schema reference
Tickets are stored in thetickets table with the following key fields:
Primary UUID of the ticket record.
UUID of the ticket holder (references
users.id).UUID of the event (references
events.id).Unique booking reference displayed on the ticket.
Razorpay order ID.
Razorpay payment ID.
Event category, e.g.
"movie", "concert", "hackathon".Quantity of tickets in this booking.
Grand total paid (decimal).
Base ticket amount excluding convenience fee.
Convenience fee charged.
"CONFIRMED", "PENDING", "CANCELLED - REFUND DUE", or "CANCELLED - REFUND PROCESSED".Seat category for Seating events (e.g.
"Normal", "Executive").Comma-separated seat labels for Seating events.
JSON array of seat UUIDs for Seating events.
Zone name for Open/Online events.
Hall name for Seating events.
Access URL for Online events.
Datetime until which the ticket is valid.
"NOT_CHECKED_IN" or "CHECKED_IN"."unused" or "used".JSON blob with event metadata (name, date, location, city, state, poster).
