WillyPOS está fuertemente cohecionado y ligado con la nube de WillyHUB. Los datos transaccionales de sus ventas, operaciones diarias, stock, incluso su catálogo de producto completo, se almacena de forma segura y centralizada en WillyHUB Data360. Para más información, consulte la [Guía de WillyHUB Data360]() en la *Guía del Usuario de Data360*. Gracias a esta modelo de funcionamiento, cuenta en todo momento con una única fuente de verdad, actualizada y centralizada a la que puede acceder en cualquier momento y lugar.

Una vez que la instalación de su WillyPOS finalizó correctamente, instaló las llaves de seguridad provenientes del archivo .YAML y encendió por primera vez el dispositivo, iniciará en un mínimo asistente de Inicio y Configuración. Aquí deberá establecer la conexión con algún punto de Internet, si aún no está conectado.

Cuando WillyPOS detecte conexión activa a Internet, iniciará de forma automática el proceso de sincrinización con la nube, este proceso se realiza en este orden de pasos:

1. El sistema se comunica con WillyHUB API, envía sus credenciales de acceso y la firma digital.
2. WillyHUB API valida la autenticación del dispositivo.
3. Se inicia la descarga de la información del cliente, aquí el POS obtiene la información de su negocio (nombre, dirección, etc)
4. Sincronización de los datos del local de operación. Obtiene el nombre, ubicación y otros datos relevantes del local comercial físico donde está operando.
5. Sincronización de usuario y accesos
6. Sincronización de su catálogo de productos completo

> **NOTA:**  
WillyPOS repite continuamente el proceso de sincronización después de un tiempo determinado fijo basado en su plan. Esto se realiza de manera automática y sin intervención suya con la finalidad de permanecer actualizado con la última información que haya agregado o modificado en su catálogo de productos y usuarios cajeros para WIllyPOS.

```mermaid

flowchart LR
    %% Definición de Estilos
    classDef pos fill:#0984e3,stroke:#74b9ff,stroke-width:2px,color:#fff
    classDef api fill:#6c5ce7,stroke:#a29bfe,stroke-width:2px,color:#fff
    classDef sync fill:#00b894,stroke:#55efc4,stroke-width:2px,color:#fff
    classDef security fill:#d63031,stroke:#ff7675,stroke-width:2px,color:#fff
    classDef error fill:#b2bec3,stroke:#636e72,stroke-width:2px,color:#2d3436
    classDef timer fill:#e17055,stroke:#d63031,stroke-width:2px,color:#fff

    %% --- INICIO ---
    Start([Inicio Conexión WillyPOS]):::pos --> EnvianCredenciales

    %% --- FASE 1: AUTENTICACIÓN ---
    subgraph FaseAuth ["Fase 1: Autenticación (WillyHUB API / STS)"]
        EnvianCredenciales[WillyPOS envía credenciales y firma digital] --> ValidarToken{WillyHUB API: Validar Autenticación}:::security
    end

    ValidarToken -- "Inválido" --> Rechazo[Bloqueo de Conexión / Alerta]:::error
    ValidarToken -- "Válido" --> InitSync

    %% --- FASE 2: SINCRONIZACIÓN EN CASCADA ---
    subgraph FaseSync ["Fase 2: Descarga y Sincronización de Datos"]
        InitSync[Descarga de Información del Cliente/Negocio <br/><i>Nombre, Dirección legal, Razón Social</i>]:::sync --> SyncLocal
        
        SyncLocal[Sincronización de Datos del Local Operativo <br/><i>Ubicación física del terminal</i>]:::sync --> SyncIAM
        
        SyncIAM[Sincronización de Usuarios y Accesos <br/><i>Cajeros autorizados, roles y permisos</i>]:::sync --> SyncGCP
        
        SyncGCP[Sincronización del Catálogo de Productos <br/><i>Inventario, precios, categorías</i>]:::sync
    end

    %% --- OPERACIÓN Y CICLO ---
    SyncGCP --> POSReady([WillyPOS Operativo y Sincronizado]):::pos
    
    %% --- BUCLE DE 10 MINUTOS ---
    POSReady --> CicloEspera([Espera de 10 minutos]):::timer
    CicloEspera -- "Reinicia sincronización" --> EnvianCredenciales
```

## Solución a problemas rápidos en esta estapa

1. **¿De dónde obtengo mi usuario para iniciar sesión en WillyPOS?**  
Debe tener en cuenta que WillyPOS no trae usuarios pre-configurado por defecto, ni tampoco se crean o modifican dentro de el. Para crear usuarios debe entrar al dashboard de WillyLabs en [https://www.willydashboard.cl/iam](https://www.willydashboard.cl/iam) con sus credenciales de su usuario IAM o su usuario root. Antes de empezar aségurese de estar en el servicio WillyLabs IAM (Identity and Access Management), si no lo está, seleccione en servicios IAM. Dentro del dashboard de IAM encontrará a su izquierda un menú, seleccione Usuarios Especiales al Sistema. Encontrará todos sus cajeros actualmente registrados en su cuenta de WillyPOS. Sobre la lista encontrará el botón Nuevo usuario, deberá escoger indicar el nombre y apellidos del usuario y podrá ingresar opcionalmente la información de contacto. Ahora deberá crear las credenciales del usuario, (usuario y contraseña), el usuario y la contraseña deben ser de 5 a 10 números enteros. Finalmente el tipo de cajero, IAM tiene predefinidos y configurados 2 tipos de usuarios cajero: Usuario Cajero (que solo le permite iniciar sesión y realizar ventas) y Usuario Cajero Administrador (que le permite realizar todas las acciones en WillyPOS, incluido cancelar ventas y aplicar descuentos), pude configurar parámetros adcionales (como seleccionar usted mismo los permisos exactos que ese usuario tendrá sobre el WillyPOS, además de especificar horarios y los WillyPOS exactos a los que se podrá conectar). Luego precione Crear Usuario, al confirmarse, su usuario fue creado exitosamente en su cuenta y se han guardado los cambios de forma segura.  
Dependiendo de su plan, deberá esperar al menos el intervalo de sincronización que se especifican los detalles de su plan, si no los conoce, el máximo tiempo de sincronización es de 30 minutos. Asegúrese además que WillyPOS esté conectado a Internet y la sincronización inicial haya resultado con éxito, lo notará porque el nombre de su negocio aparecerán en pantalla, transcurrido el tiempo podrá iniciar sesión con el usuario recién creado utilizando las credenciales que le creó. Para más información, consulte [Usuarios Especiales del Sistema]() en la *Guía del Usuario de IAM*.

```mermaid

sequenceDiagram
    autonumber
    
    %% Agrupación por entornos (Nube vs Local)
    box rgb(236, 240, 241) "WillyDashboard ☁️"
        actor Admin as 👨‍💻 Administrador
        participant Dash as 🖥️ Dashboard IAM
        participant IAM as 🛡️ WillyLabs IAM
        participant HUB as 🔄 WillyHUB Data360
    end

    box rgb(223, 249, 251) "Entorno Local Operativo 🏪"
        participant POS as 💳 WillyPOS (Software)
        actor Cajero as 👤 Nuevo Cajero
    end

    %% =========================================================
    %% FASE 1: CREACIÓN EN LA NUBE
    %% =========================================================
    rect rgb(250, 249, 246)
    Note over Admin, IAM: 1️⃣ FASE 1: CREACIÓN CENTRALIZADA EN WILLYDASHBOARD
    
    Admin->>+Dash: Inicia sesión (Credenciales Root/IAM)
    Dash->>+IAM: Valida autenticación
    IAM-->>-Dash: Acceso concedido
    
    Admin->>Dash: Navega a Menú > "Usuarios Especiales al Sistema"
    Dash-->>Admin: Despliega listado de cajeros actuales
    
    Admin->>Dash: Selecciona "Nuevo usuario" y completa formulario
    
    Admin->>+Dash: Confirma "Crear Usuario"
    Dash->>+IAM: Envía payload con datos y políticas
    IAM-->>-Dash: Registra y guarda cambios de forma segura
    Dash-->>-Admin: Alerta: Creación exitosa en la cuenta
    end

    %% =========================================================
    %% FASE 2: SINCRONIZACIÓN AUTOMÁTICA
    %% =========================================================
    rect rgb(240, 248, 255)
    Note over IAM, POS: 2️⃣ FASE 2: SINCRONIZACIÓN AUTOMÁTICA (Intervalo según plan: Max 30 min)
    
    POS->>+HUB: Ejecuta ciclo de conexión (Envía credenciales y firma STS)
    HUB->>+IAM: Consulta actualizaciones de usuarios/roles
    IAM-->>-HUB: Entrega registro de políticas del nuevo Cajero
    HUB-->>-POS: Sincroniza y guarda credenciales en DB local

    end

    %% =========================================================
    %% FASE 3: LOGIN EN TERMINAL LOCAL
    %% =========================================================
    rect rgb(232, 255, 238)
    Note over POS, Cajero: 3️⃣ FASE 3: INICIO DE SESIÓN EN WILLYPOS
    
    Cajero->>+POS: Usuario/Contraseña
    POS->>POS: Validación de usuario
    POS-->>-Cajero: OK (Apertura de caja)
    end
```