Tribu API
BackendEl backend de todo el ecosistema: ventas, compras, inventario, contabilidad, FEL, planilla y operación de campo. Un core más productos satélite, sobre una sola base.
Ecosistema SaaS que diseñé y construí de punta a punta: un ERP web, una caja registradora de escritorio, una app de ventas en ruta, un panel interno de métricas y el sitio público, todos sobre una sola API. El punto de venta y la app de campo siguen vendiendo, cobrando y facturando aunque se caiga el internet.

Las empresas de Guatemala necesitan vender en mostrador, despachar en ruta, controlar inventario, llevar su contabilidad y emitir factura electrónica FEL. Normalmente lo resuelven con tres o cuatro sistemas que no se hablan, y casi ninguno funciona cuando falla el internet, algo que en una tienda o en una ruta de reparto pasa todos los días.
El backend de todo el ecosistema: ventas, compras, inventario, contabilidad, FEL, planilla y operación de campo. Un core más productos satélite, sobre una sola base.
El ERP que usa el negocio: ventas, compras, inventario, contactos, FEL, reportes, permisos y configuración multi-sucursal.
La caja registradora: vende, cobra, factura e imprime tickets ESC/POS sin internet. Incluye turnos, cuentas abiertas y restaurante con mesas y comandas.
La app de campo para vendedores de ruta, repartidores y cobradores: rutas, visitas con GPS, pedidos, entregas con evidencia y cobros, también sin conexión.
El panel del negocio SaaS: MRR, ARR, churn, suscripciones, planes y gestión de empresas. El token nunca llega al navegador.
El sitio comercial: propuesta de valor, planes y solicitud de demos para captar clientes.
Ventas, cobros, turnos de caja y tickets impresos al instante. Sin internet, todo queda en una cola local y se sincroniza solo al volver la señal.
Mesas, para llevar, comandas a cocina, precuentas y cuentas separadas desde la misma caja.
Rutas por frecuencia, visitas con GPS y distancia al cliente, pedidos, entregas con evidencia, cobros y liquidación.
Compras, órdenes de compra, inventario multi-bodega, lotes, producción, cotizaciones, cuentas por cobrar y gastos.
Facturas, notas de crédito y débito, factura especial, libros de ventas y compras, resumen de IVA y crédito fiscal.
Empleados, pago de nómina, comisiones, roles y permisos por usuario y sucursal.
Cada app tiene una regla de alcance clara: si no ocurre en el mostrador, no va en el POS; si no ocurre en la calle, no va en GO.
En el POS y en GO, SQLite es copia local y cola de envío. La fuente de verdad siempre es el servidor.
El core nunca importa de un satélite (el lint lo hace cumplir). El POS consume tipos generados desde el contrato OpenAPI.
Los certificadores FEL viven detrás de una interfaz común: cambiar de proveedor es configuración, no código.
Una sola base para el core y los satélites: un esquema, un respaldo y una sola fuente de verdad.
El mostrador y la ruta no se pueden detener cuando se cae la señal. Además, reintentar un envío nunca puede crear dos ventas ni cobrar dos veces.
Diseño offline-first: cada escritura va a SQLite junto con su fila en la cola, en un mismo lote atómico en Rust. El UUID del documento se genera al crearlo, y la API es idempotente por id y occurredAt.
El POS y GO operan sin conexión y sincronizan sin duplicados: un reintento de algo ya registrado cuenta como éxito.
Cada certificador tiene su propia API y su propio formato, cada negocio elige el suyo, y el cajero puede pedir la factura sin señal.
Un registro de proveedores detrás de una interfaz común, con parser del XML DTE, estados de emisión explícitos y un modo de simulación. Sin señal, la venta viaja marcada para facturar y la API la emite al recibirla.
Agregar o cambiar un certificador no toca el flujo de venta, y se puede facturar desde una caja sin internet.
El POS y GO son binarios distribuidos en las computadoras y teléfonos de los clientes: no se actualizan todos al mismo tiempo que la API.
Contrato OpenAPI congelado en el POS con tipos generados, cambios solo como campos opcionales y nunca null en los cuerpos. Arquitectura core + satélites con dependencias en un solo sentido.
Nuevos módulos y productos (taller, clínica, alquiler) se suman sin romper las versiones que ya están en uso.
Sumar precios, descuentos e impuestos con decimales produce centavos de diferencia que no cuadran al cerrar caja ni en la factura.
En el POS, el dinero se maneja como enteros en centavos, con la conversión centralizada en el borde con la API.
Los cierres de caja y los totales de la factura cuadran al centavo.






Conversemos sobre la posición, el equipo y cómo puedo aportar desde el día uno.