Cobrar una venta
Objetivo: Procesar el pago de una venta y generar el comprobante fiscal (FEL).
Rol: Cajero
Dónde está: POS → Botón Cobrar (/apps/pos/[channel])
Aplica a: POS General
Prerequisitos:
- Tener productos en el carrito
- Caja abierta con sesión activa
Pasos
- Verificar que el carrito tiene los productos correctos
- Hacer clic en Cobrar (o presionar F12)
- Seleccionar el cliente:
- Consumidor Final (CF)
- Cliente registrado (buscar por NIT o nombre)
- Seleccionar forma de pago:
- Efectivo
- Tarjeta
- Transferencia
- Mixto
- Si es efectivo, ingresar el monto recibido
- Verificar el cambio a entregar (si aplica)
- Hacer clic en Completar Venta
Resultado esperado
- Se genera y certifica la factura electrónica (FEL)
- Se muestra el UUID de certificación SAT
- Se imprime el ticket/factura automáticamente (si hay impresora)
- El inventario se actualiza (resta stock)
- El saldo de caja se actualiza en tiempo real
- El carrito se limpia para la siguiente venta
Notas importantes
- Consumidor Final (CF): Para ventas menores a Q2,500 no se requiere NIT
- Ventas >= Q2,500: Obligatorio solicitar NIT del cliente
- El sistema valida el NIT contra SAT antes de facturar
- Los pagos con tarjeta no afectan el saldo de efectivo en caja
- La factura queda certificada aunque falle la impresión
Errores comunes y solución
- Mensaje: "NIT requerido para montos mayores a Q2,500"
Causa probable: La venta supera el límite para CF y no se ingresó NIT
Qué hacer: Solicitar NIT al cliente o dividir la venta
- Mensaje: "Error de certificación FEL"
Causa probable: Problema de conexión con certificador o datos inválidos
Qué hacer: Verificar conexión a internet, reintentar. Si persiste, contactar soporte
- Mensaje: "NIT no válido"
Causa probable: El NIT ingresado no existe en SAT
Qué hacer: Verificar el NIT con el cliente, puede estar incorrecto
- Mensaje: "Stock insuficiente"
Causa probable: Otro punto de venta vendió el producto mientras se preparaba la venta
Qué hacer: Actualizar carrito y verificar disponibilidad
Relacionado
Código fuente: pages/apps/pos/[channel]/index.vue