Machine Activation — Hiro App
Trigger: Customer selects a machine or scans a QR code in Hiro App Products: Hiro App · Hiro Platform · Hiro Link Outcome: Machine starts, customer sees active cycle timer
Flow
Customer opens Hiro App
│
├─ Scans QR code on machine
│ OR
└─ Browses outlet → selects machine
│
▼
App sends activation request to Hiro Platform
(outlet ID, machine ID, customer ID, wallet balance)
│
▼
┌─────────────────────────────────┐
│ Hiro Platform: Pre-checks │
└─────────────────────────────────┘
│
├─ [1] Is machine online?
│ (check Hiro Link last heartbeat / status)
│ NO → return error → App shows "Machine unavailable"
│
├─ [2] Is machine available?
│ Platform checks machine type first:
│ │
│ ├─ WASHER
│ │ Must be idle to activate
│ │ Running → return error → App shows "Machine in use"
│ │
│ └─ DRYER
│ Idle → proceed to activate normally
│ Running → allow add-on time (extend current cycle)
│ App shows remaining time + "Add time" option
│
└─ [3] Does customer have enough wallet credit?
(cycle price ≤ wallet balance)
NO → return error → App shows "Insufficient credit"
+ prompt to top up
│
▼ All checks pass
Platform deducts cycle cost from wallet balance
│
▼
Platform sends activation command to Hiro Link
│
▼
Hiro Link activates machine
│
├─ Machine responds (protocol-based) → Link sends cycle start confirmation + timer data to Platform
│
└─ No machine response (pulse-based) → Link sends pulse-sent confirmation to Platform
│
▼
Platform records transaction
(timestamp, outlet, machine, customer, amount, cycle type)
│
▼
Platform sends activation confirmation to App
(transaction ID, cycle duration / timer start)
│
▼
App shows active cycle timer + order confirmationPre-Check Summary
| Check | Pass Condition | Failure Response |
|---|---|---|
| Machine online | Hiro Link is connected and reachable by Platform | "Machine unavailable, please try another" |
| Machine available | Washer: must be idle. Dryer: idle or running (add-on time allowed) | Washer running → "Machine in use" |
| Sufficient credit | Wallet balance ≥ cycle price | "Insufficient credit" + top-up prompt |
Machine Type Behaviour
| Machine Type | Idle | Running |
|---|---|---|
| Washer | Activate normally | Blocked — cannot activate, show "Machine in use" |
| Dryer | Activate normally | Allow add-on time — extend the current running cycle |
Post-Activation
- Customer sees countdown timer in Hiro App
- Timer source: Hiro Link cycle data via Platform (protocol-based). For pulse-based machines, the timer is a preset estimate with an offset to account for the delay between payment and the customer loading the machine — shown with a "~" prefix to indicate it is approximate
- Transaction recorded in Platform for order history and merchant reporting
Related Flows
- Machine Activation — Kiosk — same Platform logic, different entry point
- Machine Activation — DirectPay — bypasses the App entirely; QR-on-machine payment for occasional users
- Wallet Top-Up — triggered when credit check fails
