Post JASC — POS con Facturación Electrónica
Full Stack / Facturación
Punto de venta y sistema de facturación electrónica para Costa Rica, construido sobre la especificación v4.4 de Hacienda. Cubre la venta en caja, la emisión de facturas, tiquetes, notas de crédito y débito, proformas, cuentas por cobrar, cierre por caja, compras, inventario, reportes y un inicio con indicadores. El XML se valida contra los XSD oficiales en las pruebas y los comprobantes se envían a Hacienda desde una cola con reintentos, sin hacer esperar la venta. Las credenciales de Hacienda se guardan cifradas con AES-256-GCM y cada consulta se aísla por empresa. Se desarrolla con un plan de brechas por fases: una rama por ítem, CI con migraciones sobre Postgres vacío y más de 50 archivos de pruebas. La firma del XML está pendiente de que el cliente entregue su certificado.
Tecnologías
- Next.js 15
- React 18
- TypeScript
- Tailwind CSS
- shadcn/ui
- Prisma 6
- PostgreSQL (Neon)
- Zod
- PDFKit
- ExcelJS
- Nodemailer
- Recharts
- Vitest
- GitHub Actions
- Vercel
Funcionalidades
- POS 60/40 con categorías, lector de código de barras, descuento por línea, exoneración, vuelto y selección de caja
- Comprobantes electrónicos de Hacienda v4.4: factura, tiquete y notas de crédito y débito (pantalla de emisión con NC parcial y otra moneda en revisión)
- Clave de 50 dígitos y consecutivo de 20 por sucursal y caja; XML validado contra los XSD oficiales
- Cola de envío a Hacienda con reintentos de 1 minuto a 1 día, consulta del estado real y bloqueo contra envíos dobles
- Credenciales de Hacienda (.p12, PIN y ATV) cifradas con AES-256-GCM y rotación de llave
- Lista de comprobantes con filtros, tarjetas de resumen, panel de detalle y anulación con nota de crédito
- Proformas que se convierten en factura sin duplicarse con dos clics
- Cuentas por cobrar: ventas a crédito, antigüedad de saldos, registro de cobros y estado de cuenta
- Cierre de caja por caja y día que cuadra el efectivo
- PDF generado en el servidor, descarga del XML y envío por correo con el SMTP de cada empresa
- Reportes de ventas y compras, importación y exportación en Excel y consulta de cédulas en el padrón de Hacienda
- Inicio con gráficos, estado en Hacienda y alertas; búsqueda global (Ctrl+K) y notificaciones
- Aislamiento por empresa, permisos por rol, protección CSRF por origen y tablas paginadas en el servidor
- Tokens de color con contraste AA en claro y oscuro; zona horaria de Costa Rica en todo el servidor