Help Center / POS & Sales / Member Check-In & Attendance

Member Check-In & Attendance

Jul 15, 2026 · 119 views

Overview

Member Check-In lets gyms, studios, and any subscription business verify customers at the door. Staff scan the member's QR code or search their name, the system checks their subscription on the spot, and the visit is recorded:

  • Active monthly/yearly plans — check in, showing the plan and validity date.
  • Session packs (e.g. 10 sessions) — check in and deduct one session automatically. The pack expires when the last session is used.
  • Expired, paused, cancelled, or no subscription — entry is denied with the exact reason, and the attempt is still logged so you can follow up with a renewal offer.

The Membership QR

Every customer has a permanent QR code (their customer code). It never changes — renewals, plan changes, and multiple subscriptions all use the same QR. The subscription check happens at scan time, so an expired member's QR still scans but shows "expired".

Customers receive it automatically after buying a subscription at the POS:

  • A full-screen QR appears on the sale-complete screen for them to photograph.
  • The receipt prints a MEMBERSHIP CHECK-IN QR block.

To reissue a lost QR: open the customer in Sales & CRM → Customers and click Membership Pass (printable), or tap the QR icon next to the customer in the POS customer list or Contacts.

Checking Members In (Web)

  1. Go to Sales & CRM → Check-In.
  2. Click Scan QR and point the camera at the member's QR — or type their name, phone, or customer code in the search box.
  3. A green card shows an active membership with plan details; press Check In.
  4. A red card shows why entry is denied (e.g. "Membership expired on 15 June 2026") with a Log Attempt button and Renew Subscription. For an expired plan, Renew asks you to confirm and starts a new term from today (full duration, fresh sessions for a session pack) right there — the card refreshes so you can check the member in at once. No payment is recorded by Renew; collect it at the POS or record it separately. If the member has no plan to renew, or you lack the manage subscriptions permission, the button opens the Subscriptions page already searched for that member.
  5. If the member already checked in today, a warning is shown (re-entry is still allowed).

Checking Members In (POS)

  1. Enable it once in Settings → POS → Member Check-In.
  2. A Member Check-In entry appears pinned at the top of the POS menu.
  3. The screen has a live camera QR scanner plus a search box that works with the offline customer list.
  4. Verification needs an internet connection — subscription status is always checked live.

Requiring a Photo per Visit

Turn on Settings → POS → Member Check-In → Require a photo on every check-in to make staff capture a camera photo of the member before an allowed check-in can be recorded (both web and POS). Photos appear:

  • as thumbnails in the Attendance report, next to each visit, and
  • in the Gallery under a dedicated Check-Ins tab.

Denied "log attempt" records don't require a photo.

Attendance Report

Sales & CRM → Attendance shows the day's check-ins by default with date and result filters:

  • Stat cards: total attempts, allowed check-ins, unique customers, and denied attempts.
  • Each row shows the time, member, plan, allowed/denied badge with reason, session deduction, staff member, and notes.
  • Click the history icon for a member's full visit history.
  • The denied count is your renewal call list — every denied visit is a customer who showed up wanting in.

Check-ins also feed the membership analytics in Reports → Subscriptions (utilization timeline, dormant members, last visit per member).

Permissions

Check-in requires the Check In Customers capability (granted to Manager and Cashier roles by default) or Manage Subscriptions. Store owners always have access.

Which Subscriptions Admit at Check-In

Not everything you sell as a subscription should open the door. Each subscription product has a Counts for Member Check-In switch on its edit form:

  • ON — the subscription appears at check-in and admits the member (memberships, session packs).
  • OFF (the default) — the subscription never appears at check-in (registration fees, joining fees, add-on charges). It still counts toward prerequisites (below).

The switch is read live: flipping it applies immediately to subscriptions customers already bought. If you enable member check-in for your store, mark your membership products first — a store with nothing marked denies every scan with "no subscription on file".

For special cases, each customer's individual subscription can override the product: on Subscriptions, the eye button next to a subscription cycles inherit from product → always visible → always hidden. Use it for one-off comps, or for subscriptions whose product was deleted and can no longer be configured.

Requiring a Membership for Dependent Services

Some services should only be usable alongside an active membership — personal-training packs are the classic case. On the product edit form, tick the qualifying products under Requires Active Subscription To and choose whether the customer must hold any one of them (e.g. Monthly OR Quarterly) or all of them (e.g. Membership AND Locker):

  • Enforcement happens at check-in: a PT pack shows "Needs [membership]" and won't admit while the required membership is missing or lapsed. Renewing the membership unfreezes the pack — no sessions are lost.
  • Selling is not blocked: the POS shows a warning when the customer doesn't hold the requirement (buying both together in the same cart satisfies it), so front desks are never stuck mid-sale.
  • The rule is locked in at purchase. Editing the product's requirements affects future sales and renewals only — subscriptions already sold keep the deal they were bought with, and packs sold before any rule existed are never retroactively restricted.

Choosing Which Subscription a Visit Uses

When a member holds more than one usable subscription — say a monthly membership plus a session pack — the POS check-in screen shows a picker asking "What is this visit for?". Regular gym visits go on the membership (nothing is consumed); a training session goes on the pack (one session is deducted). The system pre-selects the sensible default (a time-based plan over a session pack) so a plain tap does the right thing. Requires POS app 2.31+.

When a Subscription Can't Be Used

Subscriptions on file that can't admit the current visit appear in a grey "Not usable for this visit" list with the exact reason (POS app 2.32+):

  • Starts [date] — a future-dated term, e.g. a renewal bought in advance.
  • Expired / Paused / Cancelled / Payment pending — the subscription's own status.
  • No sessions left — a depleted session pack.
  • Needs [product] — a prerequisite membership is missing or inactive (see above).

If a membership you expect to admit shows up here (or not at all), check three things on the web portal: the product's Counts for Member Check-In switch, its Requires Active Subscription To checkboxes, and the subscription's dates on the Subscriptions page.

Check-In on a Phone

From POS app 2.32, opening Member Check-In on a phone shows the camera full-screen — hold it up, scan the QR, done. The search field sits at the bottom: start typing a name, phone, or customer code and the camera swaps for the matching customers; clear the search to bring the camera back. After a scan or a search pick, the verification screen takes over the display, and recording the visit (or tapping refresh) returns to the camera for the next member. Tablets keep the camera-beside-results layout.

The Face-Check

The verification screen shows the member's photo in a large circle — green border when entry is allowed, red when denied, with a matching badge — so staff can confirm the QR belongs to the person holding it. The photo shown is, in order:

  1. The store-captured customer photo (taken at the counter or uploaded on the customer record), or
  2. The member's KukuExpress app profile selfie, when the store never captured its own photo.

Members without either simply show the status icon. On a denied check-in, a small receipt icon next to the reason opens the customer's past purchases — useful for pitching the right renewal on the spot.

Photo Capture When Selling a Membership

Subscription products have a Require photo capture at POS switch (product edit form, next to the check-in settings). When it's on, selling that product prompts the cashier before payment:

  • No store photo on file — the camera opens to photograph the customer. The photo saves onto their customer record and becomes the face-check photo at the door.
  • Store photo already on file — it's shown for visual confirmation, with a Retake option if it's outdated.
  • An app profile selfie never substitutes here — identity photos must be store-captured, so avatar-only members still get photographed once.
  • Works for memberships sold inside bundles, and requires a customer to be attached to the sale (the POS will ask if one isn't).

Bundles That Include Memberships

A bundle containing memberships or session packs activates each of those subscriptions automatically at sale — same dates, stacking, and rules as selling them individually, with the activity log noting they came from the bundle. If you sold such bundles before this fix and the subscriptions never appeared, your administrator can repair them from the server.

Proof of Use (Photo and/or Signature)

A product can carry three kinds of requirements, each enforced at a different moment:

  • Sale Requirements — enforced once, at the register, when the item is sold: require a customer, or capture a customer photo (the member's ID shot).
  • Consumption Proof — session packs only: each check-in that uses a session must capture the member's photo and/or signature. A session used is money spent; this proves who spent it.
  • Usage Proof — monthly/yearly memberships: every check-in that rides the membership captures the member's photo and/or signature. Nothing is counted down, but you see exactly who is using the subscription.

Consumption and usage proof each have independent Photo and Signature switches on the product's create and edit forms (shown with the subscription settings). Switch on either, or both. Changes apply immediately, including to packs and memberships customers already bought.

Details worth knowing:

  • The requirement follows which subscription the visit uses: if the cashier picks a different plan for the visit, that plan's rules apply.
  • Back-dated check-ins are exempt — when backfilling a missed visit, the member isn't standing at the counter anymore.
  • The captures are stored with the visit and shown in the Attendance report — photo thumbnail and signature side by side, each click-to-enlarge. The report's Requirements column shows each plan's rules, and the Plan name links to the product.
  • The web Check-In page enforces all of this immediately. POS check-ins need POS app 2.38 or later — don't flag products until your devices are updated, or the POS will refuse the check-in without offering the capture. (Builds 2.33–2.37 handle session packs only, always asking for both photo and signature.)

Full-Screen Face Check (POS 2.39)

When a member with a stored photo scans in, the verification screen now shows their photo near full-screen with the allow/deny badge on top — big enough to match the face from behind the counter, instead of the small circle earlier builds showed. Members without a photo still get the plain status icon.

Day-Restricted Memberships (Allowed Check-In Days)

Some plans are only good on certain days — a karate class that runs Monday and Wednesday, another on Sunday and Monday, and an All Access plan for every day. Each subscription product can carry its own Allowed Check-In Days:

  • On the product's create or edit form, under the subscription settings, tick the days the plan admits (Mon–Sun). Leave every day unticked for a plan with no restriction (All Access).
  • At check-in — the web Check-In page and the POS — every plan shows a Mon–Sun strip with the allowed days filled and today outlined, so staff can see immediately whether the membership is right for today.
  • A member on the wrong day is denied with "Not valid today — Mon · Wed only", and the attempt is logged in the Attendance report like any other denial. Sell a day pass or the right plan from there.
  • A member holding several plans (say Mon · Wed and Sun · Mon) is automatically checked in on whichever plan covers today; when more than one covers today, the cashier picks.
  • Back-dated check-ins are judged on the weekday of the back-dated date.

The rule is read live from the product: change the days on the product and every member on that plan follows the new schedule immediately. For an individual exception — one member allowed an extra day, or a subscription whose product was deleted — use the calendar button on that subscription's row on the Subscriptions page to set days for that subscription only (or tick every day to lift the restriction for that member). The Subscriptions page shows each subscription's days under the plan name, and every change is logged in the subscription's history.

"Today" is judged on your store's own timezone (set on the store profile), not on the device. POS check-ins need an up-to-date POS app to show the day strip and the "Not valid today" wording; the web Check-In page works immediately.

Letting a Member In on the Wrong Day (Allow Anyway)

When a day-restricted plan is denied because today isn't one of its days, staff who hold the Allow Off-Schedule Check-Ins capability (Managers by default; grant it to other roles under Store Settings → Roles) can still let the member in:

  • On the web Check-In page, the denied card shows Allow anyway. Enter a short reason (required) and confirm.
  • On the POS, the same button asks for a manager PIN first, then the reason.
  • The visit is recorded as allowed — a session is used if the plan is a session pack, and any photo or signature requirement still applies — with the override, the reason and who approved it on the attendance row and in the subscription's history.

In the Attendance report, overridden visits carry an "override" badge with the reason, the Denied filter can be narrowed by reason (for example wrong day), the stat cards count overrides, and the new By weekday view shows each plan's check-ins per weekday so you can see whether members actually come on their plan's days.

Classes

By default a check-in is a general visit. If your store runs classes (Karate, Dance, Yoga, HIIT …), create them under Sales → Classes and staff can check members in to a class. Each class has its own access rule:

  • Any membership — any subscription that counts for check-in admits the member (the same rule as a general visit).
  • Specific subscriptions or purchases — only members holding one of the listed products may join. A listed subscription plan must be active (Karate class → Karate plan); a listed one-time product or service (a workshop fee, a uniform) counts once it has been bought. Choose any (one listed product is enough) or all.
  • Open — anyone can join, no membership needed. Open classes never use a session from a pack.

Optionally give a class its schedule days and time. These are informational: the class is listed first on the Check-In page and POS on its scheduled days, but a member is never denied for the class's day — day restrictions stay on the subscription product (Allowed check-in days).

Checking in to a class

Once the store has at least one active class, the Check-In page and the POS Member Check-In screen show the classes as chips above the search. Pick the class first (or leave General visit), then scan or search the member. The verdict card lists which classes the member may join today; picking a class the member's plan does not cover shows a denial naming the required plan, with the plan offered for sale. A subscription that is valid but not for the chosen class shows as not for this class in the picker.

To make staff always choose a class, turn on Require a class on every check-in under Settings → POS → Member Check-In. Older POS builds without the class picker keep recording general visits.

Class attendance

The Attendance report gains a Class column and a class filter on every view, and a new By class view with, per class, the number of check-ins, unique members, days with attendance, the average headcount per day, and denied attempts. Selecting a class in that view lists its roster — members holding an active subscription on the class's required plans, or members who attended it in the range — with each member's plan, visits in the range and last visit. Use the Sheet view filtered by class for a printable class register.

The section above is the short version. For creating classes, the three access rules with worked examples (Karate plan, open Yoga, a workshop fee), the "require a class" setting, and the By class attendance view with rosters, read the full guide: Classes: Check Members In to Karate, Yoga, HIIT and Track Attendance per Class.

Checking Members In Without Internet (POS 2.48)

The POS keeps its own copy of what it needs to verify a visit — every member's active and recently expired plans, purchases that unlock other products, your classes and their access rules, and who has already checked in today. It refreshes during sync and every time the app comes back online. A QR scan or face check is therefore answered on the device, instantly, using the same rules the server applies: a valid plan, allowed check-in days, class access, one visit per day, photo or signature when your store requires it.

When the register is online the server still confirms every visit in the background. If the server reaches a different verdict — the plan was cancelled from the back office a minute ago, the member already checked in on another device — the visit is recorded as denied, nothing is consumed from the plan, and the POS shows a Rejected on sync banner on the check-in and POS screens listing the affected members so staff can follow up. The Attendance report marks these rows and shows an admitted offline badge on visits that were verified by the device.

  • Memberships sold offline admit right away. A plan sold at the register while offline becomes a provisional plan on that device, so the member can check in before the sale has uploaded. The visit itself waits for the sale to post, then syncs.
  • Session packs deplete locally. Visits recorded offline are subtracted from the pack on the device, so a 10-session pack cannot be used 11 times while the register is disconnected.
  • Stale data is visible. The verdict card shows how old the device's copy is. If a register has been offline for a long time, sync it before relying on it for renewals or cancellations made in the back office.

Today's Check-Ins (POS)

Open Today's Check-Ins from the Member Check-In screen's app bar or from the POS menu to review who came in. A day bar (previous / next / pick a date, up to today) sits above headcount tiles and a list of every visit: the member's photo, class, plan used, which staff member checked them in, the deny reason for refused visits and any manager Allow anyway override. Visits recorded on this device that have not synced yet, and visits rejected on sync, are shown too — so the screen works offline.

The screen follows the same permission as the server's check-in log: staff need Check In Customers or Manage Subscriptions; without either, the entry points are hidden.

Finding a class faster

The class picker has a search box that filters the class tiles by name or description as you type. Classes are listed in week order starting Monday (earliest scheduled weekday, then start time), with every-day classes after the scheduled ones.

Who Delivered the Session (Trainer)

When a check-in uses a session of a session pack, the check-in screen shows a Delivered by picker with the store's active staff. It starts on the class's default trainer (if the class has one) and can be changed or cleared. The desk person checking the member in is recorded separately, so a receptionist checking in a PT client does not become the trainer.

The trainer is saved on the visit, shown on the success screen (with the session commission if the store pays one), in Today's Check-Ins, in the attendance report (filter by trainer) and in the member's visit history. On the POS it works offline like the rest of check-in: the pick travels with the visit when it syncs. Stores that pay per-session commissions pay the trainer on the visit. A visit saved without a trainer can be credited later: HR picks Set trainer on the visit in the attendance report or the member’s visit history (within 45 days); the commission then waits for a second approver.

Class sessions and member schedules

A class can run several sessions a week, each with its own day and time. Under Sales → Classes, edit the class and add one line per session — for example Karate on Mon 5:00–7:00 PM, Wed 5:00–7:00 PM and Sun 9:00–11:00 AM. Two sessions on the same day are two lines (Mon 5:00 PM and Mon 7:00 PM). A class with no sessions is treated as ad hoc.

Locking a member to their sessions

The plan the member bought still decides which days they can come (a Karate Mon & Wed plan only admits on Mondays and Wednesdays). To lock a member to particular sessions, open Subscriptions, click the class sessions button on their plan, and tick the sessions they signed up for. Only sessions on the plan's days can be picked. Leave everything unticked to let them attend any session on their plan's days.

A locked member checking in to any other session is denied as Not valid today, with their own sessions named on the card. A manager can still use Allow anyway for a make-up class. The lock carries over when the plan is renewed.

Which session a check-in is for

Every class check-in records its session. It is worked out from the check-in time: the session in progress (or starting within the hour), otherwise the member's own session that day. On the Check-In page you can change it when a day has more than one session. A check-in on a day the class has no session is recorded as off schedule.

In Attendance → By class, the Sessions grid shows one row per session time with the number of members at each session; class check-ins from before sessions existed were matched to the session on their weekday.

Merging classes

If you set up one class per schedule — Karate Mon & Wed, Karate Sun & Wed — you can fold them into one class with several sessions. Under Sales → Classes, click Merge on the class you want to keep and tick the classes to merge into it.

  • Their sessions move to the class you keep. Two sessions on the same day and start time become one.
  • Every past check-in moves too, still showing its session, so Attendance → By class reads as one class across its whole history.
  • Members locked to a session stay locked to it.
  • The kept class admits every plan that admitted to any of the merged classes; if one of them was open to anyone, the kept class is too.
  • The merged classes are archived and drop off the class lists. A check-in still sent for one of them (from a POS that was offline) is recorded on the class you kept.

A merge can't be undone with one click, so check the classes you ticked before you confirm.

Related Articles

On this page