Eventlayer / Understand the model

Check-in

Record one admission against an assigned ticket and handle the result in your scanner.

Your scanner reads a ticket. Your backend asks Eventlayer to record admission. The ticket state on the server determines whether the operation succeeds.

At the door
  1. 01Your scanner
  2. 02Your backend
  3. 03Eventlayer check-in
  4. 04Admit / explain

Make the transition

Check-in requires an assigned ticket and an active ticket type. Use a fresh, disposable ticket: check-in cannot be reversed.

check-in.ts · server only · API key
const { data: ticket, error } = await eventlayer.tickets.checkIn({
  ticketId: "tkt_from_your_scanner",
});

if (error) {
  console.error(error.code, error.requestId);
} else {
  console.log(ticket.status); // "checked_in"
}

Explain each result

ResultMeaningYour scanner should
200, ticket is checked_inThis request recorded admissionShow success
409, TICKET_ALREADY_CHECKED_INThe ticket was already usedAsk staff to review
409, FAILED_PRECONDITIONCurrent ticket or ticket-type state prevents entryShow the reason
404, NOT_FOUNDNo accessible ticket was foundReject the lookup
No responseOutcome is unknownReconcile before admitting

Two scanners can read the same assigned ticket at once. Only one can complete its first check-in. A prior lookup is not authority to admit a guest.

Your backend also authenticates staff and checks that the ticket belongs at this entry point. An API key grants workspace access; it does not implement your staff permissions or venue policy.