Jetron TicketFluid

Checkout flow

The end-to-end white-label flow, from browsing to reserving to checkout.

Jetron Fluid powers a complete ticket-buying flow on your own frontend. The flow has three phases: browse, reserve, and order.

Browse events and tickets

Use GET /events to list your host's public events and GET /events/{slug}/tickets to show the purchasable ticket types. Each ticket includes live availability (quantityLeft), pricing, and a status such as AVAILABLE or SOLD_OUT.

Reserve tickets

When the attendee picks tickets, call POST /events/{slug}/reservations. This prices the cart and holds the stock for the checkout window, and returns:

  • reservationToken: identifies the attendee's cart. Echo it as the X-Device-ID header on the order and release calls.
  • quoteReference: an opaque handle to the priced, server-held quote.
  • total, totalFees, items: the priced cart, in the smallest currency unit.
  • clientExpiresAt: drive a countdown timer on your checkout page.

Calling it again with the same X-Device-ID refreshes/extends the same reservation instead of holding fresh stock. See Reservations for the details.

Render your checkout page

Collect the attendee's details (email, first name, last name) on your own checkout UI while the countdown runs. Tickets are issued to the email you submit.

Create the order

Call POST /events/{slug}/orders with the quoteReference in the body and the reservationToken echoed as X-Device-ID:

  • Free (zero-total) orders are fulfilled immediately and return status: "confirmed" with the order reference.
  • Paid orders return status: "pending_payment" and a checkoutUrl. Redirect the attendee there to pay. After payment, the gateway redirects to your callbackUrl with a reference query parameter.

A duplicate order for the same reservation returns 409.

Releasing a hold early

If the attendee abandons checkout, you can free the stock immediately with DELETE /events/{slug}/reservations (echo the token as X-Device-ID). Holds otherwise expire on their own.

Limitations

Seat Map events

Seat Map events cannot be sold through the API yet, and the checkout endpoints return 400 for them. Use the checkout embed to sell those events, which supports seat selection in full.

Reservations and orders are never cached.

On this page