Volver a proyectos
Comercio y restauración2026

Sistema POS Android para comercios

Sistema de punto de venta para terminales Android con catálogo, operadores, cierre de caja, impresión y panel de gestión remoto.

Sistema POS Android para comercios

El proyecto

Desarrollamos un sistema de punto de venta Android y un panel móvil de operaciones para gestionar productos, operadores, terminales, ventas e ingresos desde un mismo backend.

En el terminal, el operador inicia sesión con un PIN validado en servidor, crea la venta, imprime el recibo y puede trabajar con caché local cuando la conexión es inestable. El panel permite supervisar ventas, productos y terminales sin interrumpir el flujo del mostrador.

La integración con hardware incluye impresión y lectura contactless con el SDK del dispositivo. El flujo EMV se dejó preparado y probado en hardware de desarrollo; la autorización bancaria real requiere todavía adquirente, claves de producción y certificación específica.

Stack: Kotlin · Jetpack Compose · Hilt · Room · Retrofit · WorkManager · Supabase · PostgreSQL.

¿Necesitas algo parecido?

Cuéntanos tu caso: partimos de lo que ya hemos construido para llegar antes y gastar menos.

Servicio relacionado: Apps móviles
Detalles técnicos

Retos

  • →Mantener el flujo de venta disponible cuando la conexión es intermitente
  • →Evitar que dos mostradores reclamen el mismo terminal o dupliquen una venta si se pierde la conexión a mitad de una operación
  • →Cierre de caja que cuadre siempre, incluso si el dispositivo se queda sin red justo al cerrar el turno
  • →Una segunda app de gestión que refleje el negocio en tiempo real sin ralentizar el datáfono en el mostrador

Cómo los resolvimos

  • Integración con el SDK del terminal para impresión y lectura contactless, con feedback claro ante errores y timeouts
  • Cola local con WorkManager que sincroniza en segundo plano, con la asignación de terminal resuelta de forma atómica en el backend
  • Cierre de caja con validación server-side — el estado remoto siempre manda, el dispositivo nunca "asume" que un cierre se aplicó
  • Panel de gestión sobre el mismo backend con su propio ciclo de sincronización — el dueño ve el negocio en tiempo real sin tocar el flujo del mostrador
KotlinJetpack ComposeHiltRoomRetrofitWorkManagerSupabasePostgreSQL