> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orriven.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Check-in

> The Onsite module: enable it, run the check-in desk at the event door, a session, or a venue, and read who arrived.

Check-in records that a person **passed a door**. Sessions and venues can already be gated by perks — that answers "may this person enter"; check-in answers "did they". The **Onsite** module adds two pages to the event navigation: **Check-in**, the desk, and [Badges](/en/onsite/badges), the card the desk scans.

Open **Onsite → Check-in** after enabling the module.

## Enable the Onsite module

Onsite is optional and **off by default**. While it is off, the **Onsite** entry in the event navigation opens an enable wall instead of pages.

<Steps>
  <Step title="Open Onsite in the event navigation">
    The wall describes what the module adds: scanning badges at the door, recording arrivals and session attendance, and printing each attendee's badge.
  </Step>

  <Step title="Choose Enable Onsite">
    **Check-in** and **Badges** join the event navigation immediately. Enabling is per event and cannot be undone — see [Event settings](/en/events/settings).
  </Step>
</Steps>

Enabling Onsite also turns on everything that reads attendance: the **Attendance** section of [Reports](/en/events/reports), [certificates of attendance](/en/onsite/certificates), and the check-in QR code on each attendee's [entry pass](/en/events/hosted-pages).

## Who can run the desk

Recording a check-in is day-of-event work, not content editing. The **On-site staff** role can run the desk and look attendees up without changing ticket types, the agenda, or emails. Planners, Admins, and Owners can run it too. See [Members and roles](/en/organization/members-roles).

## The desk

The Check-in page is one station. Set the door once, then scan.

### Choose the door

**This desk is the door of** selects what the scans are recorded against:

* **Event arrival** — the front desk. This is the arrival that counts for the arrival rate, certificates, and the "attendee arrived" automation trigger.
* **Agenda · a session** — attendance at one session on the [agenda](/en/program/agenda).
* **Venue · a venue** — entry into one active [venue](/en/program/venues).

### Scan a badge

The **Scan a badge** field keeps keyboard focus, so a USB scanner can feed it without touching the keyboard. Typing the badge code and pressing Enter does the same. Each scan shows a result card:

* **Attendee** — the person (linked to their attendee page), their ticket type, and their registration status.
* **Result** — one of:
  * **Checked in** — the door allowed the scan and the entry was recorded.
  * **Already checked in** — this person was already recorded at this door. Nothing is duplicated and nothing errors.
  * **Not confirmed — cannot check in** — the registration is pending, waitlisted, cancelled, or rejected. This is the one hard stop: only a **confirmed** registration can be checked in.
  * **Missing: …** — the door requires perks the person does not hold. The verdict is advisory: the **Check in anyway** button records the entry regardless.
* **Holds** — the perks the person holds, when there are any.

A code that is misspelt, belongs to another event, or does not exist answers **This badge is not valid for this event.**

<Note>
  **The gate verdict is advice; the person at the desk decides.** Required perks are the door's own: a session also requires its venue's perks (a session in a gated room inherits the gate), while a venue scan asks only for the venue's own perks. The desk can override a missing perk. It cannot override a registration that is not confirmed.
</Note>

### Manual check-in

When the badge is not at hand, **Manual check-in** finds an attendee by name or email and checks them in at the current door with **Check in**. The entry is recorded with the method **Manual** instead of **Scan**.

### Checked in here

The **Checked in here (N)** table lists every entry at the current door: attendee, ticket type, time (in the event's time zone), method, and who recorded it. **Undo** removes an entry. Undo cannot be undone — the person can be scanned again.

## Where else check-ins appear

* **Attendee detail page** — the **Check-in** card shows the person's badge and every door they have passed, with **Undo** on each entry. See [Attendees](/en/events/attendees).
* **Session page** — an **Attendance** list of who checked in to that session.
* **Reports** — arrival rate, arrivals per day, and attendance per session and per venue. See [Reports](/en/events/reports).
* **Certificates** — the event-door check-in is what makes a person's certificate available; session-door check-ins are the lines on it. See [Certificates](/en/onsite/certificates).

## What the attendee sees

The [entry pass](/en/events/hosted-pages) shows the check-in QR code — and the badge code beneath it — only on a **confirmed** registration of an event with Onsite enabled. A pending registration says the code appears once the organizer confirms it. A cancelled one says the registration is no longer active. Wallet passes follow the same rule.

## Automations

The trigger **Attendee arrived (event check-in)** fires on the **Event arrival** door only — once per person, not for every session or venue they pass. See [Automations](/en/marketing/automations).

## Rules to know

* **One entry per person per door.** A second scan at the same door is acknowledged as already checked in; it never records twice.
* **Only confirmed registrations can be checked in**, by scan or by hand.
* **Perk verdicts are advisory.** Missing perks are shown and can be overridden with **Check in anyway**.
* **A session inherits its venue's gate; a venue scan checks only the venue's own perks.**
* **Undo deletes the entry.** Attendance figures, certificates, and the session attendance list all read live check-ins, so an undone entry disappears from all of them.
* **A badge is valid for its own event only.** Another event's badge is the same "not valid" as a misspelt one.
* Enabling Onsite is per event and one-way.

## Over the API

Check-ins can be recorded and listed through the [Developer API](/en/developers/api-reference#check-ins) — by registration id or badge code, against the event, a session, or a venue — with the same acknowledge-on-repeat behaviour as the desk.

## Related

<CardGroup cols={2}>
  <Card title="Badges" icon="id-badge" href="/en/onsite/badges">
    Print the card the desk scans.
  </Card>

  <Card title="Certificates" icon="award" href="/en/onsite/certificates">
    The certificate of attendance after an arrival, with session credits.
  </Card>

  <Card title="Reports" icon="chart-bar" href="/en/events/reports">
    Arrival rate and attendance per session and venue.
  </Card>

  <Card title="Hosted pages" icon="panel-top" href="/en/events/hosted-pages">
    The entry pass and its QR code.
  </Card>
</CardGroup>
