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

# How do I check in ticket holders at the door?

> Scan tickets in the Events Portal, give door staff a scanner link that needs no login, and handle refusals, re-entry, roster-only tickets and undo.

<Note>
  **Must know**

  * **Plan feature and permissions.** Needs **Event Ticketing**. Scanning needs **Scan Tickets** (in the Coach and Volunteer templates). Overriding a refused scan needs **Manage Tickets**, and undoing a scan needs **Reverse Redemptions**.
  * **Door links are shown once.** A door scanner link needs no login but can't undo or override. Copy or print it right away; regenerate it if it's lost.
  * **Roster-only tickets don't scan.** **Roster check-in only** tickets are refused at the door and checked in from the event's **Check-in** tab.
  * **Bulk check-in skips the checks.** **Redeem all outstanding** checks in every remaining ticket at once, skipping payment, name and waiver checks, and can't be undone in bulk.
</Note>

**Where to find it.** **Events Portal** in the admin dashboard sidebar opens on **Scan Tickets**, which lists events for the next 90 days. Pick one to open its scanner. Or click **Open scanner** on the event's **Check-in** tab (hidden when every active ticket type is roster-only). The scanner shows **Sold**, **Checked in**, **Check-in rate** and **Recent scans**.

<Steps>
  <Step title="Link an athlete if needed">
    When the type's **Attendance** is **Optional at scan** or **Required at scan**, the scan marks the athlete **Present**. For a ticket not tied to an athlete, click **Link athlete (optional)** before you scan. A **Required at scan** ticket is refused until you pick one.
  </Step>

  <Step title="Scan or type the ticket">
    Point the camera at the QR code, or type the serial and click **Check in**. A green result shows the holder and the uses left. If the type has **Allow re-entry**, someone already admitted that day scans back in as **Re-entry** without using up a use.
  </Step>

  <Step title="Handle a refusal">
    A red result gives the reason (see the table). With **Manage Tickets**, click **Override & admit** where it appears.
  </Step>

  <Step title="Undo a mistake">
    With **Reverse Redemptions**, **Undo last scan (\[serial])** gives the ticket its use back and restores the athlete's earlier attendance status.
  </Step>
</Steps>

**What each refusal means.**

| Message | Can staff override it? |
| - | - |
| This ticket hasn't been paid for yet. | Yes |
| This ticket isn't valid yet. | Yes |
| This ticket has expired. | Yes |
| This ticket needs the attendee's name before it can be scanned. | Yes |
| A required waiver hasn't been signed for this ticket. | Yes |
| This ticket still needs required info filled in. | Yes |
| Select the athlete checking in before scanning this ticket. | Yes |
| This ticket is checked in from the roster, not scanned. | Yes |
| No ticket matches that code. | No |
| This ticket has been voided. | No |
| This ticket is for a different event. | No |
| This ticket has already been redeemed. | No |
| Family requirements must be resolved before this ticket can be used. | No |

**Door scanner links.** The **Check-in** tab's **Door scanner links** card lists links as **Active**, **Expired** or **Revoked**. With **Manage Tickets**, click **New link**, set **Name** and optionally **Starts (optional)**, **Ends (optional)**, **Ticket types** (empty means all), then **Create link**. Copy it with the copy icon, or use **Print QR sheet** or **Email link**, before **Done**. It can't be shown again. Each row's **Actions** menu has **Edit**, **Regenerate link** (the old URL stops working) and **Revoke**. Usage is in **Reports > Ticketing > Scanner Link Activity**.

**What door staff see.** A scanner with no login, undo or override. Before the start time it shows "This scanner opens soon"; once revoked or expired, "This scanner link is no longer active". It also refuses ticket types outside the link's scope.

**Roster-only tickets.** In the **Check-in** tab's **Tickets** table, open the ticket's **Actions** menu, click **Check in**, click **Redeem**, then confirm **Override & redeem** (**Manage Tickets**). Other tickets show **Manual redeem** instead. **Recent scans** shows who scanned each ticket, or **Door scanner** for a link scan. With **Manage Tickets**, **Redeem all outstanding** at the top of the tab checks in every ticket with a use left, skipping payment, name and waiver checks. It can't be undone in bulk.

**Related:** [How do I sell tickets to an event?](/club/events-competitions/sell-tickets-to-an-event) · [How do I void, reassign or reissue a ticket?](/club/events-competitions/manage-issued-tickets) · [How do I register and check in event attendees?](/club/events-competitions/register-and-check-in-event-attendees) · [How do I set staff roles and permissions?](/club/staff-operations/staff-roles-and-permissions)
