Skip to main content

Spec — Cashier, Shift, Device & Cash Reconciliation

1. Cashier Account Management

Shop Manager can create a Cashier with the following fields:

FieldRequiredNotes
Full name
Username
Email
Phone number
ShopEach Cashier belongs to only one Shop
Account statusActive / Suspended / Terminated
Login methodEmail, username, or phone
NoteOptional

Cashier uses the Shop Portal with permissions limited by role.

1.1 Account status

StatusDescription
ActiveCan log in and work normally
SuspendedCannot log in; active shift is handled
TerminatedPermanently disabled

1.2 Suspend Cashier

When a Cashier is suspended:

  1. All current sessions are revoked.
  2. Cashier cannot log in on any device.
  3. Device can still be used by another Cashier.
  4. If Cashier has an active shift → shift moves to Suspended – Pending Reconciliation.
  5. Shop Manager receives a notification.
  6. Shop Manager counts the cash drawer and performs closing reconciliation.
  7. System records suspend time, actor, and last transaction.

2. Shift Management

Shop must create a shift first before Cashier can start work.

2.1 Shift information

Required when creating:

FieldDescription
Shift dateWork date
Scheduled start timePlanned start time
Scheduled end timePlanned end time
Assigned CashierAssigned Cashier
Assigned active deviceAssigned device
Late grace minutesAllowed late period
NoteOptional

System auto-records:

shiftId, shopId, createdBy, createdAt, assignedBy, actualStartAt, actualEndAt, openingCash, expectedClosingCash, actualClosingCash, discrepancy, closedBy, reviewedBy, status

2.2 Scheduled Time vs Actual Time

System must store separately:

  • Scheduled Start/End Time — planned time configured by Shop.
  • Actual Start/End Time — time Cashier actually starts and ends.

Must not overwrite scheduled time with actual time.

2.3 Shift Assignment Validation

Cashier overlap — INVALID:

Shift 1: 08:00–16:00 } Same Cashier → BLOCK
Shift 2: 15:00–23:00 }

Device overlap — INVALID:

Cashier A: 08:00–16:00, POS-01 }
Cashier B: 15:00–23:00, POS-01 } → BLOCK

Device reuse — VALID:

Cashier A: 08:00–16:00, POS-01
Cashier B: 16:00–00:00, POS-01

2.4 Shift Status

PhaseStatus
Before startDraft, Scheduled, Cancelled, No-Show
During shiftActive, Suspended, Auto-Locked
After endPending Reconciliation, Pending Manager Review, Completed, Completed with Discrepancy

Normal flow:

Scheduled → Active → Pending Reconciliation → Completed

3. Start Shift

Cashier can only start a shift when:

  • Cashier is Active.
  • Shift is assigned to the correct Cashier.
  • Shift is not Cancelled or No-Show.
  • Cashier logs in on the correct assigned device.
  • Device status is Active.
  • Cashier has no other active shift.
  • Previous shift is closed or Manager allows continuation.

When starting a shift:

  1. Cashier opens the assigned shift.
  2. System verifies Cashier and Device.
  3. Cashier enters opening cash by denomination.
  4. System auto-calculates total opening cash.
  5. Cashier submits → system records actualStartAt → shift becomes Active.

4. Opening Cash & Denomination Count

Shop accepts US bills and coins.

Bills

$1 · $2 · $5 · $10 · $20 · $50 · $100

Coins

$0.01 · $0.05 · $0.10 · $0.25 · $0.50 · $1.00

Total Amount = Denomination × Quantity

All cash amounts support two decimal places.


5. Cash Transactions

5.1 Cash Deposit

Player gives cash to buy Credit:

  1. Cashier finds Player.
  2. Cashier enters cash amount received.
  3. System checks transaction limit.
  4. Cashier confirms → Credit added to Player → Cash In increases.

Recorded: cashierId, shiftId, shopId, deviceId, playerId, transactionId, amount, createdAt

  • Deposit by Cashier does not require Player OTP.
  • Cashier cannot edit, cancel, or reverse after completion.

5.2 Cash Redemption

Player exchanges Credit for cash:

  1. Cashier finds Player, enters Credit amount to redeem.
  2. System calculates cash to pay.
  3. Checks limit and approval rule.
  4. If approval needed → Pending Approval → Shop Manager approve/reject.
  5. After approval → Cashier pays cash → Cash Out increases.

Limits may apply per transaction and per day.

5.3 Cash Drop

Cashier transfers cash from cash drawer to Shop Manager or safe:

  1. Cashier creates Cash Drop, enters denomination and amount.
  2. System creates Cash Drop ID.
  3. Cashier hands over cash offline.
  4. Recipient counts and confirms online on Shop Portal.
  5. Cash Drop → Confirmed → Expected Cash Drawer decreases.
StatusDescription
DraftNewly created
Pending HandoverAwaiting handover
Pending Receiver ConfirmationAwaiting recipient confirmation
ConfirmedConfirmed — deducted from Expected Closing Cash
RejectedRejected
CancelledCancelled
DisputedDisputed

Only Confirmed Cash Drops are deducted from Expected Closing Cash.


6. Expected Closing Cash

Expected Closing Cash = Opening Cash + Cash In − Cash Out − Confirmed Cash Drops ± Approved Adjustments
ComponentDescription
Opening CashOpening shift cash
Cash InCash received from Player
Cash OutCash paid to Player
Cash DropsCash handed off from drawer (Confirmed)
Approved AdjustmentsAdjustments approved by Shop Manager

Cashier cannot edit Expected Closing Cash.


7. Blind Closing Count & Discrepancy

7.1 Blind Closing

  1. Cashier counts cash by denomination.
  2. Cashier enters Actual Closing Cash.
  3. Cashier cannot see Expected Closing Cash before submitting.
  4. After submit, system shows Expected, Actual, and Discrepancy.
  5. Cashier cannot edit Actual Closing Cash after submit.

7.2 Discrepancy

Discrepancy = Actual Closing Cash − Expected Closing Cash
ResultMeaning
NegativeShortage
PositiveOverage
ZeroBalanced

If discrepancy exists → shift moves to Pending Manager Review → notify Shop Manager.

7.3 Manager Review & Resolution

Shop Manager can:

  • Request recount
  • Confirm Actual Closing Cash
  • Record discrepancy reason
  • Add note or attachment
  • Create adjustment with audit log
  • Close shift with discrepancy
  • Suspend Cashier
  • Escalate investigation
  • Finalize shift

Resolution options:

No Action Required · Recount Confirmed · Data Entry Error · Missing Transaction · Missing Cash Drop Confirmation · Shortage Assigned to Cashier · Overage Recorded · Manager Adjustment Approved · Escalated for Investigation · Shift Closed with Discrepancy

After shift is finalized, financial data cannot be edited directly. Any subsequent changes must create a new adjustment transaction.


8. No-Show

If Cashier does not sign in before Scheduled Start Time + Late Grace Minutes:

  1. Shift → No-Show; record noShowDetectedAt.
  2. Notify Shop Manager (do not notify Admin).
  3. Release device for another shift assignment.
  4. Allow Shop to reassign another Cashier.

Shop Manager can: Reassign Cashier · Cancel shift · Create replacement shift · Record reason note.

No-Show shifts must not be deleted from history.


9. Automatic Lock

When Scheduled End Time is reached:

  1. Warn Cashier.
  2. During Closing Grace Period — complete in-progress transactions.
  3. After grace period — block new transactions.
  4. Shift → Auto-Locked → notify Cashier and Shop Manager.
  5. Shift → Pending Reconciliation.

System must not auto-fill Actual Closing Cash with Expected Closing Cash.


10. Shift Handover

Applies when the next Cashier receives the cash drawer from the previous Cashier:

  1. Cashier A stops transactions, performs closing count.
  2. Cashier B or Shop Manager counts handed-over cash.
  3. Cashier B confirms amount received.
  4. Closing Cash of Shift A → Opening Cash of Shift B.
  5. Shift A closes; Shift B is allowed to start.

Handover record stores:

fromShift, toShift, fromCashier, toCashier, device, cashDrawerOrCounter, denomination details, total cash amount, confirmation time, confirmed by, discrepancy (if any)


11. Device Management

One physical device can be used by multiple Cashiers across different shifts.

FieldDescription
Device IDDevice identifier
Device NameDisplay name
Shop IDOwning Shop
Device TypeDevice type
Operating SystemOperating system
Browser / App VersionVersion
Device FingerprintDevice fingerprint
Last IPMost recent IP
First Registered TimeFirst registration
Last Active TimeMost recent activity
StatusStatus
Approved By / Approved AtApprover / time

11.1 Device Status

Pending Approval · Active · Temporarily Blocked · Compromised · Lost · Retired

11.2 Revoke Cashier Access

Revokes access for one Cashier on one device only. Other Cashiers can still use it; device remains Active.

11.3 Block Device

Locks the entire device. All sessions revoked. No Cashier can use it. Related active shifts must switch device or reconcile.

Block Device ≠ Suspend Cashier


12. Transaction Visibility

Cashier can view:

  • Transactions they performed
  • Transactions in current active shift
  • Transactions from their past shifts (if Shop allows)

Cashier cannot view:

  • Shop total balance
  • Other Cashiers' transactions
  • Full Shop transaction history
  • Shop internal settlement

13. Shift Report

Shift report must include:

Shift Information

Shift ID · Cashier · Shop · Device · Cash Drawer/Counter · Scheduled Start/End · Actual Start/End · Shift Status

Transaction Summary

Total Transactions · Total Cash Deposits · Total Cash Redemptions · Total Cash In · Total Cash Out · Total Cash Drops · Approved Adjustments

Cash Reconciliation

Opening Cash · Expected Closing Cash · Actual Closing Cash · Discrepancy · Shortage/Overage

Review and Audit

Reviewed By · Resolution · Manager Note · Attachments · Finalized At · Audit History


14. Audit Requirements

System stores audit log for:

Cashier creation · Suspension/termination · Shift creation/assignment/reassignment · Device assignment/transfer · Opening cash · Cash deposit · Cash redemption · Cash drop · Closing cash · Manager review · Adjustment · Shift finalization · Device block/unblock · Cashier-device access revoke

FieldDescription
ActionAction performed
ActorActor
Previous valuePrevious value
New valueNew value
ReasonReason
TimestampTimestamp
DeviceDevice
IP addressIP address
Related entity IDRelated entity ID

15. Notification Requirements

Shop Manager receives notification when:

EventNotify
Cashier No-Show✅ Shop Manager
Cashier suspended mid-shift✅ Shop Manager
Shift Auto-Locked✅ Shop Manager + Cashier
Redemption needs approval✅ Shop Manager
Cash Drop needs confirmation✅ Shop Manager
Closing reconciliation has discrepancy✅ Shop Manager
New device needs approval✅ Shop Manager
Device blocked / compromised✅ Shop Manager
Shift handover has discrepancy✅ Shop Manager
No-Show❌ Do not notify Admin

16. Actor Permissions Summary

Shop Manager

Create/edit/suspend/terminate Cashier · Create/edit shift · Assign/reassign Cashier and device · Handle no-show · Review closing reconciliation · Handle discrepancy · Close/finalize shift · Manage device · Block/unblock · Revoke cashier access · View reports

Admin

View Cashier/Shift by permission · Assign Cashier to shift (correct Shop) · Does not handle day-to-day no-show · Does not replace Shop Manager in reconciliation (except escalation)

Cashier

Log in (email/username/phone) · View assigned shift · Start shift · Opening cash · Deposit · Redemption (per limit) · Cash drop · View own shift transactions · Closing count · Submit reconciliation · Handover

Cashier cannot: View Shop/other transactions · Edit/cancel/reverse transactions · Change own schedule · Self-assign device · Edit actual closing cash after submit