List User Tickets
Authentication
RequiredResponse Fields
Unique ticket identifier
Event showing details
Event details
Ticket type/category
Owner’s full name
Whether ticket holder attended the event
Ticket price in USD
Example Request
Example Response
Get Ticket Details
Authentication
Required - must be ticket owner or club officerPath Parameters
Ticket UUID
Response
Same fields as list endpointExample Request
Get Ticket QR Code
Authentication
Required - must be ticket ownerPath Parameters
Ticket UUID
Response
Returns a PNG image of the QR code that can be scanned at the eventExample Request
Update Ticket Attendance
Authentication
Required - must be club officer for the event’s clubPath Parameters
Ticket UUID
Request Body
Whether ticket holder attended
Example Request
View Cart
Authentication
RequiredResponse Fields
Array of ticket objects in cart
Array of ticket types that became unavailable
type: Ticket type nameshowing: Showing IDevent: Event ID and namecount: Number of tickets that became unavailable
Example Request
Example Response
Initiate Checkout
Authentication
RequiredRequest Body
Empty object{}
Response Fields
Whether checkout initiation succeeded
Whether free tickets were automatically claimed
CyberSource payment page URL (if paid tickets)
Payment parameters to POST to CyberSource (if paid tickets)
Notes
- For free tickets, they are automatically claimed and no payment is needed
- For paid tickets, returns CyberSource payment form parameters
- Tickets are held for 10 minutes during checkout
- If cart becomes stale (tickets sold), returns 403 error
Example Request
Example Response (Free Tickets)
Example Response (Paid Tickets)
Transfer Ticket
Authentication
Required - must be ticket owner and ticket must be transferablePath Parameters
Ticket UUID
Request Body
Username of recipient
Response
Confirmation that ticket was transferredExample Request
Payment Flow
The ticket purchase flow for paid tickets:- Add tickets to cart - User browses events and adds tickets
- View cart -
GET /api/tickets/cart/to review tickets - Initiate checkout -
POST /api/tickets/initiate_checkout/- Returns CyberSource payment URL and signed parameters
- Tickets are held for 10 minutes
- Submit payment - Frontend POSTs payment_params to cybersource_url
- Payment processing - CyberSource processes payment
- Callback - CyberSource POSTs result to
/api/tickets/payment_complete/- If successful, tickets are assigned to user
- If failed, holds are released
- Confirmation - User receives email with ticket QR codes
Free Tickets Flow
- Add free tickets to cart
- Call
POST /api/tickets/initiate_checkout/ - Response has
sold_free_tickets: true - Tickets immediately assigned to user
- Skip payment steps
Error Responses
Cart is Stale (403)
Tickets in cart were sold or became unavailable:GET /api/tickets/cart/ to refresh and get available tickets