# Gate entry

Validate tickets on the authenticated Boni Panel scan screen, where the first scan admits and every later scan is refused.

## Scan in the panel, not with a camera app

Staff validate tickets on the **Event Ticketing → Scan** screen in Boni Panel, signed in with a panel account. The first valid scan of a ticket admits the holder and claims it; every later scan of the same ticket is refused.

Each ticket's QR encodes a link to that scan screen carrying a signed ticket token. Opening the QR with a plain camera therefore lands on the scanner rather than showing raw text — but the camera itself decides nothing. Entry is allowed only when the authenticated scan screen says so.

## What a scan returns

| Result | What it means | What staff should do |
|---|---|---|
| Entry allowed | A valid, unclaimed ticket was claimed just now | Admit the holder |
| Already claimed | This ticket was used before, shown with who scanned it and when | Do not admit; check with the holder |
| Rejected | The ticket is void or its order was cancelled | Do not admit; refer to the organizer |

Claiming is single-winner. If two staff scan the same ticket at the same instant, exactly one sees entry allowed and the other sees already claimed.

## Practical notes

- Do not test with a real attendee's ticket. A successful scan consumes it.
- The scanner also accepts a ticket token pasted directly, which covers a damaged or unreadable QR.
- Record the gate when you have more than one entrance, so the claim record shows where each attendee entered.
- Have staff sign in to the panel before doors open. Scanning requires an authenticated session.

## Why it is built this way

A ticket that can be validated by any camera can be validated by any screenshot. Boni signs each ticket token, stores only a claim outcome, and makes the claim atomic, so a forwarded screenshot of a used ticket fails at the door and a duplicate cannot be admitted by two lanes at once.

Canonical: https://docs.boni.one/event-ticketing/gate-entry
Version: 1
Updated: 2026-08-19T04:55:39.644Z
