Skip to content

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 confirmation

Pre-Check Summary

CheckPass ConditionFailure Response
Machine onlineHiro Link is connected and reachable by Platform"Machine unavailable, please try another"
Machine availableWasher: must be idle. Dryer: idle or running (add-on time allowed)Washer running → "Machine in use"
Sufficient creditWallet balance ≥ cycle price"Insufficient credit" + top-up prompt

Machine Type Behaviour

Machine TypeIdleRunning
WasherActivate normallyBlocked — cannot activate, show "Machine in use"
DryerActivate normallyAllow 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

Hiro internal wiki — optimised for LLM ingestion and agent editing.