out4 · help center · scanning

Scanning tickets at the door.

Out4's scanner runs in our iOS + Android app. Anyone with the scanner role on an event can scan tickets at the door — no extra hardware, no separate device, no per-ticket fee.

Updated August 4, 2026

How scanning works

One app. One scan. Zero per-ticket fees.

The scanner lives inside the same out4 app your attendees use. Any account with a scanner role on an event becomes a scanner — switch events as you cover multiple doors.

Scan result

out4 scanner screen showing a valid ticket result in green

The same camera that takes your selfies scans QR codes. No dongles, no Bluetooth gun.

Every result is logged with timestamp, scanner, and device — fully auditable.

Multiple doors? While the phones have signal they all see the same live state — a ticket admitted at Door A is yellow at Door B.

Venue with no signal? Download the door list before you get there and the door keeps running. That download is not optional — see “No signal + the door mesh”.

Setup

Get the app, sign in, get the role.

Three steps, once per scanner. After that you're scanning until the role is removed.

1

Install the app

iOS: Live on the App Store — search “out4” or tap here.

Android: Currently in Google Play review. Internal-track APK available on request.

iPhone home screen with the out4 app icon
2

Sign in to your out4 account

Use your own out4 login. The scanner inherits the roles attached to your account, so the event owner grants you scanner access by adding your handle — not by sharing a generic kiosk login.
out4 sign-in screen showing email + password + Apple/Google buttons
3

Get the scanner role

The event organizer opens /events/<slug>/edit Roles+ Add scanner, then types your handle and picks a role. Three options:
  • Door scanner — scan tickets and see the result. No attendee list.
  • Runner — scan + search the attendee list by name for the "I lost my QR" cases.
  • Promoter — everything above plus sales analytics, manual check-in, and refunds.
Event Roles screen with three role rows highlighted: Owner, Door Scanner, Co-host

Day-of

What you actually do at the door.

Six steps. The first one happens before you get to the venue, and it is the one that decides whether the door survives a dead signal.

Warning

Download the door list while you still have signal.
Do this on the way, or at load-in — anywhere the phone has bars. Open the app, tap Scan, pick your event, tap Download door list. A phone that goes offline without a door list refuses every ticket you show it, and pairing to another scanner does not rescue it: the mesh shares check-ins, not door lists. Every phone working the door needs its own download.
  1. 1

    Before you leave signal: open the app, tap Scan, pick your event, tap Download door list. Every phone, every time.

  2. 2

    At the door, open the out4 app.

  3. 3

    Tap the Scan tab in the bottom nav.

  4. 4

    Pick your event — only events where you have a scanner role appear.

  5. 5

    Aim at the QR. Autofocus handles alignment — you don't need to tap to focus.

  6. 6

    Result appears within ~300ms.

Valid

Scanner result: VALID, ticket accepted, green ring

Already scanned

Scanner result: ALREADY SCANNED, amber ring, timestamp + scanner handle

Invalid

Scanner result: INVALID, red ring

Green check.Valid first-time scan. Door opens.

Yellow.Already scanned. Shows when and by whom (e.g. "Scanned 8:42 PM by @luda"). Judgment call — usually admit on re-entry, escalate if anything seems off.

Red.Invalid. Tap-to-expand for the reason. Don't admit until the runner or promoter has cleared it.

No signal

When the venue eats your signal.

Basements, metal rooms, 2,000 phones on one tower. The door keeps running — but only if you did one thing beforehand.

Warning

Every phone downloads the door list while it still has signal.
The door list is the snapshot of who is allowed in. A phone that goes offline without one refuses every ticket — you get “No signal, no door list” across the top and nothing scans. Pairing to another scanner does not fix it: the mesh shares check-ins, not door lists. Download it on the way in, on every phone.

Scan tab → your event → Download door list. It takes seconds and it is the whole ballgame.

The badge at the top of the scanner

One badge, four states. It tells you exactly how strong the door's no-duplicates promise is right now. Tap it on the phone for the same sentence plus who else is on this door and when they were last heard from. It turns green the moment things improve, and waits about eight seconds of solid failure before it downgrades — so a Wi-Fi blip doesn't make it flicker while you're working a queue.

Badge on the phoneWhen you see itWhat it actually promises
LIVEThe phone can reach out4.Verified with the server. No duplicates.
MESH · n devicesNo internet, but the paired phones are on one Wi-Fi or hotspot.Coordinated with the door host. No duplicates among connected scanners.
NEARBYNo internet and no shared network — the phones are only reaching each other over Bluetooth.Sharing check-ins with nearby scanners. Duplicates are still possible for up to a minute.
OFFLINE · this device onlyNo internet and no other scanner in reach.This phone only. It will not re-admit anyone it has already scanned.
LIVE

The phone can reach out4.

Verified with the server. No duplicates.

MESH · n devices

No internet, but the paired phones are on one Wi-Fi or hotspot.

Coordinated with the door host. No duplicates among connected scanners.

NEARBY

No internet and no shared network — the phones are only reaching each other over Bluetooth.

Sharing check-ins with nearby scanners. Duplicates are still possible for up to a minute.

OFFLINE · this device only

No internet and no other scanner in reach.

This phone only. It will not re-admit anyone it has already scanned.

Pairing a second phone to the door

One phone hosts, the rest join.
  1. On the phone that will host: Scan → your event → the door icon → Door setup, and turn on Host this door. A QR appears.
  2. On every other phone: open the normal scanner and point it at that QR. There is no separate Join button — the scanner recognises a door code and pairs instead of scanning a ticket. It says “Paired to the door”.
Pairing is a camera scan, so it needs no network at all — it works in a basement. Nothing hosts unless a human turns it on; a single-phone door is normal, not broken. If the host phone dies or wanders off, any other phone can tap Take over as host and the door carries on.

No venue Wi-Fi? A hotspot is a real door network.

The mesh needs the phones on one network, not on the internet. Turn on Personal Hotspot on one phone, join the others to it, and that is a perfectly good door — no venue Wi-Fi, no internet, full MESH coordination. This is a first-class setup, not a workaround.

One catch worth knowing before you rely on it: an iPhone's hotspot is carrier-controlled and can refuse to turn on where there is no cell signal at all — exactly the basement you needed it in. Android hotspots are generally more willing. If you have both on the crew, make the Android the hotspot.

The door list can cross the mesh — but only over Wi-Fi.

Once phones are paired over Wi-Fi or a hotspot, a phone that joins late can inherit the door list from a peer, and whichever phone finds a bar of signal can refresh the list for the whole door at once. Door setup has a Door list over the mesh row that says which of those is happening.

Over Bluetooth only, door lists deliberately cannot cross — they carry ticket key material and are far too big for the radio. Check-ins still cross; lists do not. Door setup says so plainly when that is your situation. Which is why the rule stays: download before you leave signal.

What the banner across the top means

There is no per-scan chatter about connectivity — the mode lives in one strip at the top of the scanner so you can stop reading it and still be told when something changes. The ones that matter:
  • Offline mode — door list in use. Normal. You are scanning against the snapshot; it names how many check-ins are waiting to upload.
  • No signal, no door list. The bad one. Nothing can be verified until signal returns or a list is downloaded.
  • Door host unreachable — solo mode. The host phone stopped answering. Check-ins still work here, but two doors can now admit the same ticket. Tap Take over right on the banner.
  • Queue full — scanning paused. Rare and serious: the phone is holding 5,000 unsent check-ins and will not take another. Get signal before scanning again.

What an offline door cannot know

A door list is a photograph, not a live feed. If a ticket is refunded after the list was downloaded, the phone has no way to learn that — the ticket scans green and the person walks in. The server catches it when the phone syncs and reports it, but by then they are inside.

This is irreducible: it is the price of a door that works with no signal, and no amount of engineering removes it. Refresh the list whenever the phone has signal — that is the only lever there is. Promoters running high-refund events should know this before choosing to work a venue offline.

After the doors close: the upload report

Queued check-ins upload by themselves as soon as signal returns; you can also force it with Upload now on Door setup. Nothing is ever discarded — anything the server hasn't confirmed stays on the phone and keeps retrying.

What comes back is the Upload report, and it tells two very different stories on purpose:
  • Let in twice. One ticket, two people through two doors. A real overcount. Each row names the ticket and both scans.
  • Turned away by mistake. A scan your door refused where the ticket was actually fine. Nobody checks a dashboard for this one — it was a person having a bad night at your door, so it is put in front of you.

When two offline scans collide, the earlier one is kept as the check-in and the later one is recorded as superseded — an online scan always outranks an offline one, whatever the phones' clocks claim. Nothing gets “resolved” by that: both people already walked in. The report exists so you know it happened.

Bar deals work offline too

Comp drinks, coupons and venue specials scan with no signal the same way tickets do. Open the redeem scanner and it quietly downloads that venue's deal list; a pill in the stats bar reads Works offline · n deals when the phone is covered, or No offline deal list — tap to retry when it isn't.

It always tries the server first and only falls back when the network is genuinely unreachable — a refusal from out4 is an answer, not an outage. Deals are single-use, so an offline burn is exactly a ticket burn: the same coupon will not pour a second drink on that phone, and the merchant gets the full record when it syncs.

The web scanner is online-only, by design.

The browser-based scanner in the dashboard has no offline path at all — no door list, no queue, no mesh. If you are running the door from a laptop or a phone browser and the signal dies, you lose the door until it comes back. Nothing is lost or corrupted; it simply stops working.

If there is any chance of bad signal at your venue, work the door from the iOS or Android app.

Heads up

Which events can go offline
Standard ticketed events are offline-capable by default — nothing to switch on. Secure-entry events are not, and that is deliberate: verifying a rotating QR without a server means putting every ticket's signing key on the phone, so it stays a per-event opt-in a promoter has to ask for. If Door setup refuses with “offline check-in is switched off for this event”, that is what happened. Email support@out4.events before the show, not during it.

Reference

All result states, in one place.

Bookmark this section — it's the troubleshooting cheat sheet for everything the scanner can show you.

BadgeStateWhat it meansWhat to do
Valid first-time scanFirst time this ticket has been scanned at this event.Admit.
Already scannedScanned before. Result shows the time and the scanner who admitted them (e.g. "Scanned 8:42 PM by @luda").Judgment call. Usually admit if they look like the same group (re-entry, group split). Escalate if anything seems off.
Wrong eventThe ticket is valid, but for a different event.Direct the attendee to the right door. The wrong-event response includes the correct event title.
Refunded or cancelledThe ticket was refunded or the order was voided. The sale is no longer active.Don't admit. Direct them to the promoter / box office.
Expired eventThe event already happened. Tickets don't admit after the event end time.Don't admit.
Garbage QRThe code isn't an out4 ticket — wrong format, random QR, advertising poster, etc.Don't admit.
Secure-entry onlyThis event requires the rotating in-app QR. A PDF or screenshot won't scan.Ask the attendee to open the out4 app and show their rotating QR.
Checked in — offlineValid, decided against the door list on the phone rather than by the server. Only appears when the phone has no signal.Admit. The check-in uploads by itself when signal returns.
Not on the door listOffline only. The ticket is not in the snapshot this phone downloaded — usually because it was bought after the download.Get signal and scan again, or have a runner or promoter check them in by name. Do not treat it as a fake ticket.
Can't verify — no door listNo signal AND no door list on this phone (or the list expired, or it does not match how this event checks people in). Nothing was decided about the ticket.Nobody was checked in. Get signal, download or refresh the door list on Door setup, then scan again.

Valid first-time scan

First time this ticket has been scanned at this event.

Admit.

Already scanned

Scanned before. Result shows the time and the scanner who admitted them (e.g. "Scanned 8:42 PM by @luda").

Judgment call. Usually admit if they look like the same group (re-entry, group split). Escalate if anything seems off.

Wrong event

The ticket is valid, but for a different event.

Direct the attendee to the right door. The wrong-event response includes the correct event title.

Refunded or cancelled

The ticket was refunded or the order was voided. The sale is no longer active.

Don't admit. Direct them to the promoter / box office.

Expired event

The event already happened. Tickets don't admit after the event end time.

Don't admit.

Garbage QR

The code isn't an out4 ticket — wrong format, random QR, advertising poster, etc.

Don't admit.

Secure-entry only

This event requires the rotating in-app QR. A PDF or screenshot won't scan.

Ask the attendee to open the out4 app and show their rotating QR.

Checked in — offline

Valid, decided against the door list on the phone rather than by the server. Only appears when the phone has no signal.

Admit. The check-in uploads by itself when signal returns.

Not on the door list

Offline only. The ticket is not in the snapshot this phone downloaded — usually because it was bought after the download.

Get signal and scan again, or have a runner or promoter check them in by name. Do not treat it as a fake ticket.

Can't verify — no door list

No signal AND no door list on this phone (or the list expired, or it does not match how this event checks people in). Nothing was decided about the ticket.

Nobody was checked in. Get signal, download or refresh the door list on Door setup, then scan again.

Modes + options

Standard, secure entry, offline, and manual.

Four ways tickets get into your event. The scanner handles all of them — you mostly just pick which mode at event-creation time.

Standard tickets (default)

PDF + in-app QR both scan. Most events use this — easiest for attendees, no friction at the door.

Secure entry mode

Only the rotating in-app QR scans. PDFs and screenshots are rejected because the code refreshes every ~30 seconds — a screenshot from yesterday won't work. Promoters toggle this in event settings to prevent screenshot- sharing on high-demand shows.

Multi-device scanning

Any number of phones can scan the same event at once. While they all have signal the server is what keeps them straight: if Scanner A admits, Scanner B sees yellow on the same QR, and there is nothing to set up.

That coordination is the first thing a dead signal takes away. Pair the phones into a door mesh and they keep checking with each other instead — see No signal + the door mesh.

Offline behavior

With a door list downloaded, a phone that loses signal keeps checking people in — it verifies against the snapshot, admits with “Checked in — offline”, and queues each check-in until out4 confirms it. A strip across the top of the scanner says which mode you are in; there is no per-scan nagging about it.

Without a door list there is no offline mode — the phone refuses every ticket. The download, what the connection badge promises, how to pair a second phone, and what the sync report tells you afterwards all live in No signal + the door mesh.

Manual check-in (fallback)

When QR can't scan (broken camera, lost phone, cracked screen), runners and promoters search the attendee list by name and tap Manual check-in. Verify ID first. Manual check-ins are recorded in the audit log with the scanner's handle.

Roles

Who can do what.

Three role levels. Owners add roles per event, so a runner at Show A isn't automatically a runner at Show B.

ActionDoor scannerRunnerPromoter
Scan QR
See scan result detail
Search attendees by name
Manual check-in
See sales analytics
Cancel event
Add / remove other scanners

Troubleshooting

The things that go wrong at the door.

Sorted by frequency. Tap a question to open the fix.

iOS: Settings → out4 → Camera → On. Force-quit and relaunch the app.
Android: Settings → Apps → out4 → Permissions → Camera → Allow. Relaunch the app.

Auth probably expired, or your scanner role was revoked. Pull down to refresh, then sign out and sign back in. If it still spins, ask the event owner to confirm your role on the event in /events/<slug>/edit → Roles.

The event has secure entry turned on — only the rotating in-app QR is accepted. Ask the attendee to open the out4 app, go to Tickets, and show their rotating QR (not a PDF or a screenshot).

Runners and promoters can manually check them in: event detail → Attendees → search by name → tap the row → Manual check-in. Verify ID first. Manual check-ins are written to the audit log.

Promoters can record cash sales from the event dashboard: Attendees → Add cash sale → enter the buyer, the ticket type, and the amount. The system mints a comp ticket marked cash-paid so the door scan shows green when they come in, and the books balance against the bank deposit.

Yes. While every phone has signal they all talk to the same server, so once a ticket is admitted at Door A it shows yellow ("already scanned") at Door B. Make sure every staffer has the scanner role added to their account. If the signal drops, that shared view is what you lose — pair the phones into a door mesh to keep it. See No signal + the door mesh.

The phone is offline and working from a snapshot that does not contain those tickets. Two causes, in order of likelihood:
  • The list is old. Anything sold after the download is not in it. Get one bar of signal and tap Refresh door list on Door setup — on a mesh over Wi-Fi, that one refresh reaches every paired phone.
  • You downloaded the list for a different event. Door setup names the event at the top. Check it matches the door you are working.
Runners and promoters can check people in by name in the meantime.

The first time an iPhone joins a door mesh, iOS asks for Local Network access. If that prompt was dismissed or denied, the phone silently cannot see the other scanners — there is nothing in the app to tell you, because the app is never told either.
Fix: Settings → Privacy & Security → Local Network → out4 → On, then force-quit and reopen out4 and scan the pairing code again.

Some older and budget Android handsets can receive over Bluetooth but cannot broadcast. Such a phone pulls in everyone else's check-ins fine, but nothing will ever discover it. Door setup says so on that phone: “This phone can't announce itself over Bluetooth.”
Fix: pair that phone to another one instead of hosting the door from it. Everything it scans still crosses over Wi-Fi and still uploads to out4 — nothing is lost.

Almost always a sleeping screen. Keep the scanner screen open on every phone: the app holds the screen on while the Scan camera is up and on the host's Door setup screen, but a phone that gets pocketed or switched to another app stops contributing over Bluetooth entirely.
Also check they are on the same network. Two phones on different Wi-Fi networks — one on the venue's, one on a hotspot — are not on a mesh together.

Most common cause: a refund processed mid-event (Stripe webhooks flip the ticket to refunded). The first scan was still valid; the later scan is rejecting because the sale was voided after entry. Direct the attendee to the box office or promoter. The event audit log has the full timeline.

Increase the screen brightness and tilt away from venue lights to kill the reflection. If it still won't scan, use the manual check-in path (search by name) — runners and promoters can admit them directly.

Live-event etiquette

The soft skills that keep a door moving.

Most of door work is people work. These are the lessons we keep re-learning from real events.

Rule

Don't argue with attendees.

If the scan rejects and the attendee insists, escalate. The runner or promoter sorts it out a few feet back from the door — never in front of the queue. Door speed and crowd vibe both depend on you staying neutral.

Rule

Don't manually toggle the database.

Use the in-app manual check-in. Raw SQL edits skip the audit log and break the live multi-device sync — door staff at the other gate won't see the change.

Tip

Refunds at the door go through Stripe.

Promoters can issue a refund directly from the attendee's row (Stripe Connect handles it). Don't try to "scan it through" if the ticket is legitimately bad — refund first, admit on a comp ticket if appropriate.

Tip

Save the scanner phone battery.

The scanner UI keeps the screen on while you're on the Scan tab, and the phone hosting a door mesh holds its screen on too. Bring a battery pack for any event longer than ~2 hours — camera + bright screen + LTE will drain a phone fast, and the host phone going flat is what takes a door mesh down.

More help

Still stuck?

The team is small and we answer fast.

In the app, tap the ? button in the top-right of any scanner screen — it deep-links back to this page.

Email support@out4.events for anything that's not urgent.

Mid-event and need a human right now? DM @out4.events on Instagram — Chris is the on-call.

Need more help?

Email support@out4.events for anything that isn't urgent. We're a small team — most replies happen the same day.

Mid-event and need a human right now? DM @out4.events on Instagram — Chris is the on-call.