Draft API. Endpoints may change before general availability.

Door scanning

Every ticket has one QR code. At the door, staff scan it with our door app on any phone. A second scan is caught, even if two people scan the same ticket at the same moment. On multi-day events the same code works on each day the ticket covers.

Wallet passes

Buyers can add any ticket to Apple Wallet or Google Wallet from the ticket page, the confirmation page or the email. The pass shows the same QR code, so it scans exactly like the emailed ticket. Passes use your logo and colours and update on the buyer's phone when you change the event. A refunded or cancelled ticket shows as void in the wallet and is refused at the door.

Who can scan

Team members open door.eventtickets.dev and sign in. For staff without an account, create a door link in the dashboard's Door page: a link plus a 6-digit PIN that only works for one event and stops working when you choose. You can also run the scanner on your own address, like door.yourclub.com.

Re-entry

Each event chooses how a second scan on the same day is handled, and can change it at any time, even during the event:

single default
No re-entry. Each ticket gets in once per day.
reentry
Scan the same ticket again to let them back in.
in_out
Staff switch the scanner to Scanning out when people leave, and see how many are inside now. Someone who scanned out can scan back in.

Multi-day events

The scanner picks today's day by itself and staff can switch. A full pass gets in once on every day; a Saturday ticket shows Wrong date on Friday, with the days it's for. Counts are per day.

What staff see

Admit green
Valid and now checked in. Let them in.
Back in green
Re-entry on the same day, with the time they first came in.
Out dark
Scanned out (scan in and out events).
Already in amber
This ticket was already scanned in today. Shows when.
Not in amber
Scanning out a ticket that isn't checked in.
Wrong date red
A real ticket, but not for today.
Cancelled red
The order was refunded or the guest-list ticket was cancelled.
Wrong event red
A real ticket, but for a different event.
Invalid red
No ticket matches this code.

If the order has add-ons to collect at the door, like parking or merch, they're listed under the result with a Hand over button. Any ticket on the order shows them, and each can only be handed over as many times as it was bought.

Lost phone or broken screen? Staff can search the guest by name or email in the scan history and check them in by hand. That's logged too.

Following check-ins from your own system

Scanning happens in our door app, not through the public API. To know who's arrived, listen for the ticket.redeemed webhook (and ticket.readmitted / ticket.exited if you allow re-entry), or list checked-in tickets with GET /v1/tickets?event_id=…&status=redeemed. For headline numbers, GET /v1/events/:id/stats gives tickets issued and checked in.

Guest list

Free tickets for guests, press and staff come from POST /v1/tickets or the dashboard's Guest list. They're emailed, scan like any other ticket, and are recorded against whoever issued them. On multi-day events, give them a ticket type to limit their days; otherwise they cover every day.

Why a separate code? The QR holds a random code that isn't the order number or ticket id. Those can appear in emails, receipts and URLs, so knowing one of them is never enough to get through the door.