Eventlayer / Ticketing API
Tickets with a lifecycle,
not just a database row.
Issue, assign, cancel and check in tickets through one API. Eventlayer keeps the ticket lifecycle consistent as your product changes it.
Ticket lifecycle
One source of truth for access.
Assignment, admission and access removal all change the same ticket. Try a transition to see which operations are allowed.
Ticket lifecycle · interactive illustration
From any existing ticket
↓ remove access
Cancelled / deleted
A registered Wallet device keeps a cancelled record so the pass can be invalidated. Otherwise, the ticket is deleted.
Select an operation to explore the ticket lifecycle.
Show the API
Create inventory now. Assign it later. Or do both at once.
Use the event and attendee from your registration flow. Both paths reach the same assigned ticket; keep each returned ID so your backend can resume if a later call fails.
Explore the ticket APITypeScript · server-side excerpt
const { data: ticket, error } = await eventlayer.tickets.create({
eventId: event.id,
attendeeId: attendee.id,
});
if (error) throw error;
console.log(ticket.status); // "assigned"ticket.status → "assigned"
Build your ticket flow
Model the access your product sells.
General Admission, VIP and Staff are separate ticket types under the same event. Choose the type when issuing a ticket.
ticket_type / tt_ga
General Admission
Default access
ticket_type / tt_vip
VIP
Premium access
ticket_type / tt_staff
Staff
Team access
Example types. An event starts with General Admission; create the other types your product needs. Your app decides which types each door accepts.
Your product. Eventlayer underneath.
Build your ticket flow on Eventlayer.
Build your registration and checkout experience, with ticket state handled underneath.
Start buildingFree during private beta. No credit card.