Eventlayer / Check-in API
One call to check them in.
No race condition at the door.
Build any scanning experience you want. Eventlayer performs the ticket transition and gives your app a result it can trust.
Correctness at the door
Two scanners. One admission.
Both devices can see an assigned ticket. Only one request can complete its first check-in.
Two scanners. One admission. · illustrated race
Scanner A
POST /v1/tickets/tkt_123/check-in
Ready to scan the same ticket
Scanner B
POST /v1/tickets/tkt_123/check-in
Ready to scan the same ticket
Your scanner. Eventlayer underneath.
checked_in
200 · Admit the guest.
already_checked_in
409 · TICKET_ALREADY_CHECKED_IN
unavailable
409 · FAILED_PRECONDITION
invalid_ticket
404 · NOT_FOUND
Example scanner labels mapped to API responses. Unavailable includes cancelled or unassigned tickets and inactive ticket types.
Show the API
The call that records admission.
Run check-in on your backend after authorizing staff and confirming the ticket belongs at this door. Only a successful response admits the guest; duplicate and unknown results need their own scanner states.
Build a check-in toolTypeScript · server-side excerpt
// Server excerpt, after staff and door authorization.
try {
const { data, error } = await eventlayer.tickets.checkIn({
ticketId: ticket.id,
});
if (error) {
// Return a non-admission result to your scanner.
return { admitted: false, code: error.code };
}
return { admitted: true, ticket: data };
} catch {
// A lost response does not tell you who was admitted.
return { admitted: false, code: "RESULT_UNKNOWN" };
}Your scanner. Eventlayer underneath.
Keep the door experience yours.
Your application
Authenticate staff, read the barcode and confirm the event and access type. Show an answer the person at the door can act on.
Eventlayer
Validate the ticket state and active type, record one check-in and emit the ticket change. If the response is lost, your scanner shows an unknown result for staff to reconcile.
Your product. Eventlayer underneath.
Build the scanner. We’ll keep the state correct.
Connect your scanner to the API. Keep staff access, door rules and the interface in your application.
Start buildingFree during private beta. No credit card.