SANTA RITA
--:--:--Perú
Iniciando...
✅ Aprobados
0
pagos válidos
❌ Rechazados
0
no válidos
⏳ Pendientes
0
por revisar
🚨 Fraudes
0
💰 Hoy
S/.0
📅 Mes
S/.0
👥 Clientes
0
registrados
⚡ Activados WH
0
automáticos
🤖 Bot
WhatsApp
⚠️ Sin activar
0
revisar WH
📊 Tasa aprob.
aprobado/total
💵 Promedio mes
por pago
✂️ Próximo corte
día 7  ✏️
⚡ Actividad en vivo
📭
Sin actividad aún
💳 Últimos pagos
Sin pagos aún
📈 14 días
💳 Métodos
🕐 Por hora

💬 Conversaciones

🔍
Cargando...
💬
Selecciona una conversación para ver los mensajes

Pagos registrados

Fecha / HoraTeléfonoOperación MontoPlataformaDestinatarioVoucherValidaciónEstado / ClienteNotaTagOperador
Cargando...

Alertas y revisiones

FechaTeléfonoOperaciónMontoAlertaTagAcciones
Sin alertas

Clientes registrados

NombreTeléfonoDNIDirecciónPlanMonto
Cargando...

🧑‍💼 Staff / Operadores

NombreUsuarioRolWhatsAppTurnoNotif WA
Cargando...

⬜ Lista blanca y oficina

📨 Grupo de depósitos (validación de oficina)

El bot reenvía cada pago validado (comprobante + datos) a este grupo de WhatsApp.

Números con los que el bot NO interactúa (ej. líneas de la propia oficina). Cualquier mensaje de estos números se ignora.

NúmeroNombreAgregado
Cargando...

📈 Reportes

🔍 Filtrar pagos
ó rango:
Selecciona un período y genera el reporte

🔎 Consulta WispHub

🔄 Sincronización de clientes
Clientes en base local:
Última sincronización:
Buscar cliente
Ingresa un nombre, DNI o teléfono para buscar

Conexión WhatsApp

⏳ Esperando QR...

Abre WhatsApp en tu celular
Dispositivos vinculadosVincular dispositivo

📊 Estadísticas del bot
0
Aprobados
0
Rechazados
0
Pendientes
0
Fraudes

Logs del sistema

Cargando...

⚙️ Configuración del Bot

⏳ Cargando configuración...

🔌 API Externa

Enviados hoy
Enviados total
Fallidos
Total registros
📡 Endpoints disponibles
POST/api/cvm/messages/chat — texto
POST/api/cvm/messages/image — imagen desde URL
POST/api/cvm/messages/document — PDF / archivo
GET/api/cvm/status — estado WhatsApp
GET/api/cvm/messages/stats — conteo por estado
GET/api/cvm/messages/log — historial paginado
POST/api/cvm/messages/retry/:id — reintentar fallido
DEL/api/cvm/messages/log — limpiar por estado
🔑 Param token: body (POST/DEL) · query (GET)  ·  Param sistema: etiqueta libre (ej. ksoft)
📋 Historial de mensajes
Hora Tipo Destino Contenido Estado Acción
Cargando…

📝 Changelog — Historial de cambios

Nueva función Mejora Corrección
v3.16 10 jun 2026 Dos servicios: cada pago con su propio comprobante
Cambios
  • Cliente con dos servicios: ahora cada servicio se registra con su propio comprobante. Si el cliente indica "son 2 / otro servicio / otra cuenta", el bot pide la captura del segundo pago en vez de reutilizar el voucher anterior.
  • Elimina el riesgo de activar dos cuentas con un solo pago real. El segundo comprobante pasa por la identificación y confirmación Sí/No independiente, como cualquier pago.
Pendiente de activar
  • Cambio en server.js — requiere ./recargar.sh (en madrugada / baja actividad) para entrar en vigor.
v3.15c 09 jun 2026 Confirmación obligatoria en todas las rutas de pago
Correcciones
  • Voucher en estado esperando_voucher: ahora muestra resumen cuenta+comprobante y espera "Sí" antes de registrar (antes procesaba directo sin confirmar)
  • Regex "Sí" corregido: mensajes como "ese servicio ya no lo tengo" ya no se interpretan como confirmación — solo coincide si el mensaje completo es "Sí/sí/ese/esa/yo/ok/…"
  • Opción "0" en lista de cuentas: conserva el voucher en contexto y pide nombre de nuevo en lugar de cortar la sesión y enviar a soporte
v3.15b 09 jun 2026 Dashboard pendientes: compacto, clickeable y con motivo
Mejora
  • Fila compacta y clickeable: cada pendiente ocupa una sola fila; click en cualquier parte abre el modal con el voucher, análisis OCR y acciones
  • Motivo visible: el alerta aparece en naranja debajo del nombre en texto legible
  • Botones ✅ ❌ reducidos: solo iconos para acción rápida sin abrir modal; no ocupan espacio extra
  • ✅ Aprobar / ❌ Rechazar en el modal: disponibles cuando el pago está pendiente
  • Fix: modal desde dashboard: corregido el fetch con auth token para cargar pagos que aún no están en la lista local
v3.15 09 jun 2026 Confirmación combinada + OCR mejorado
Mejora
  • Confirmación combinada: antes de registrar cualquier pago, el bot muestra en un solo mensaje la cuenta del cliente (nombre, dirección, estado) más los datos del voucher (monto, plataforma, N° operación, fecha). El cliente confirma todo con un solo "Sí".
  • OCR prompt mejorado: nuevas reglas distinguen el destinatario real (con asterisco en Yape, o con etiqueta explícita) del campo nota/mensaje del remitente (formato "Apellido Apellido Nombre.Inicial"). Aplica a Yape, Plin, BCP y transferencias.
  • Destinatario ausente procesable: si el OCR no detecta destinatario (porque lo capturó como nota) pero el comprobante es válido en fecha, N° op y es_comprobante, se procesa con alerta "[SIN TITULAR DETECTADO]" para revisión del staff en vez de rechazar.
  • Panel — análisis OCR en modal: en pagos pendiente/rechazado con alerta, el modal muestra sección "📋 Análisis del comprobante" con el destinatario detectado, flags titular/fecha/comprobante y el motivo de revisión en texto legible.
Fix
  • Auto-confirm no procesa directo: score ≥90% ya no salta la confirmación para procesar el pago inmediatamente — ahora muestra el mensaje combinado y espera "Sí" del cliente.
v3.14a 09 jun 2026 Fix: auto-confirm bloqueado en selección múltiple
Fix crítico
  • Auto-confirm no se activa desde opciones múltiples: cuando el bot mostraba lista de cuentas numeradas y el cliente escribía texto libre (ej. "pedregal sur"), el bot buscaba ese texto y si encontraba una empresa con ≥90% de score la procesaba sin pedir "¿Es su cuenta?". Ahora siempre pide confirmación explícita en ese flujo.
v3.14 09 jun 2026 Identificación sin segunda confirmación
Mejora
  • Auto-confirma por nombre sin re-preguntar: si el cliente dijo "No" al titular auto-detectado por teléfono y escribe el nombre correcto con coincidencia ≥90%, el bot procesa el voucher directamente sin pedir un "Sí" adicional. Evita que el cliente abandone tras la segunda confirmación (caso: hogar con varios servicios bajo mismo teléfono)
v3.13 09 jun 2026 Pago según factura — sin saldo a favor
Nuevo
  • Registra siempre el total de la factura: sin importar si el cliente deposita de más o de menos, se asienta exactamente lo que dice la factura en WispHub (ej. S/.60). Nunca genera saldo a favor por sobrepago ni deja la factura a medias
  • Aviso de diferencia en el grupo de depósitos: en la observación del voucher se indica si depositó de más (excedente NO aplicado) o de menos (cuánto falta, para coordinar el cobro)
  • Filtro "Solo montos diferentes" en Reportes: marca el casillero para listar y exportar a CSV los pagos donde lo depositado no coincide con la factura, filtrable por fecha o rango de mes — útil para revisar y ajustar clientes el mes siguiente
  • Factura del mes por el precio del plan: al crear la factura cuando no hay pendiente, se usa el precio del plan del cliente y no el monto del voucher
  • Observación en WispHub: la nota del cliente indica el monto registrado y, si hubo excedente, cuánto depositó y cuánto no se aplicó
v3.12 08 jun 2026 API Externa — monitoreo completo (estilo UltraMsg)
Nuevo
  • Historial persistente API: todos los mensajes enviados por API Externa se guardan en SQLite — sobrevive reinicios, sin límite de tiempo
  • Panel API tipo UltraMsg: estadísticas por estado (hoy / enviados / fallidos / total), tabla con filtros, paginación, detalle por fila
  • Retry de mensajes fallidos: botón ↺ por fila + endpoint POST /retry/:id para reintentar envíos fallidos
  • Limpiar historial: borrar solo los fallidos o todos los registros desde el panel o vía API
  • Nuevos endpoints: GET /stats (conteo por estado), GET /log (historial paginado), DELETE /log (limpiar), POST /retry/:id
  • Param sistema: etiquetar el origen del mensaje (ej. ksoft) para filtrar por sistema en el futuro
v3.11 07 jun 2026 Portal cliente · Retry WispHub automático · Mejoras staff
Nuevo
  • Portal cliente /cliente: acceso web para clientes con OTP por WhatsApp — ven su estado de cuenta, plan, dirección y últimos pagos. Si el teléfono no está vinculado, pueden buscar su cuenta por nombre y vincularla
  • Retry automático WispHub: si la activación falló al procesar el pago, el sistema reintenta cada 5 minutos durante 24 horas; notifica al cliente y al Telegram cuando lo logra
  • Retry envío WhatsApp: si un mensaje falla (error Puppeteer), se reintenta automáticamente a los 4 segundos
  • Edición staff: botón ✏️ en panel para editar nombre, teléfono WA, rol y contraseña del operador
  • Toggle turno/notif staff: activar/desactivar turno activo y notificaciones WA por operador desde el panel
  • Operador en pagos: columna "Operador" en tabla de pagos muestra quién procesó cada pago
Correcciones
  • Datos de pago en blanco en sedes con configuración parcial (Plin sin BCP/Yape) — ahora se muestran solo los campos disponibles
  • Staff eliminado seguía apareciendo en la lista
  • Token _token incorrecto en llamadas del panel — corregido a getToken()
v3.10 07 jun 2026 Memoria de pagos · API envío comprobantes · horario inteligente en sesión
Nuevo
  • Memoria de pagos del mes: si el cliente saluda y ya tiene un pago aprobado este mes, el bot le confirma fecha y monto en lugar de volver a mostrar el menú completo
  • API CvM mensajería: endpoints POST /api/cvm/messages/image y POST /api/cvm/messages/document para que sistemas externos (cobranza) envíen comprobantes vía el número WhatsApp de CvM — reemplaza UltraMsg
Mejoras
  • Horario dentro de sesión: si el cliente pregunta el horario mientras está en medio de un trámite, el bot responde sin cancelar la sesión
  • Soporte: elimina "lamentamos": mensaje de fallas técnicas ahora inicia directo con los datos de contacto, tono profesional
v3.9b 06 jun 2026 Panel: botón "Enviar al grupo" · Fix búsqueda NOTIFICACIONES · Fix sesión cable TV
Nuevo
  • Botón "📨 Enviar al grupo" en el panel de pagos: el operador puede reenviar manualmente cualquier voucher al grupo de depósitos, con nota opcional
Correcciones
  • Fix búsqueda NOTIFICACIONES: entradas del sistema tipo "NOTIFICACIONES CABLE MORA X MESES" ya no aparecen en resultados de búsqueda por nombre
  • Fix sesión cable TV: si el cliente escribe "cable tv" cuando el bot muestra una lista de cuentas, ahora redirige al flujo de cable en vez de buscar "cable" como nombre
v3.9 06 jun 2026 Bot cobros: datos de pago en el saludo · mensajes según horario · respuestas más claras
Nuevo
  • Datos de pago en el saludo: el mensaje de bienvenida ahora incluye BCP, Yape, Plin y titular — el cliente los tiene de inmediato, evita reclamos
Correcciones
  • Fuera de horario: las derivaciones ya no prometen "a la brevedad"; informan que se atenderá al reanudarse el horario
  • Pago duplicado ya activo: mensaje tranquilizador ("su pago ya está registrado y su servicio activo") + recordatorio de horario, en vez de "no pudimos registrar su pago"
  • Pide la cuenta durante el registro: si el cliente escribe "número de cuenta?" mientras se espera su comprobante, el bot ahora envía los datos de pago en lugar de insistir con la foto
v3.8 06 jun 2026 Dashboard UI Pro · Reloj NOC · Alertas sonoras · Gráficas sin parpadeo
Nuevo
  • Reloj en tiempo real Perú en la barra superior — hora precisa zona America/Lima, siempre visible
  • Alerta sonora para fraudes: tono de advertencia al detectar voucher sospechoso; tono suave al aprobar pago
  • Modo claro/oscuro con toggle en topbar — persiste entre sesiones
Mejoras
  • Gráficas sin re-animación: se actualiza solo el dato que cambió — ya no reinician de cero cada 2 minutos
  • Contadores inteligentes: animación count-up solo cuando el valor cambia; nunca reinicia si no hubo cambio
  • Todas las stat cards (Activados WH, Sin activar, Tasa, Promedio) ahora animan correctamente en el refresco
  • Modo claro mejorado: grises calibrados, texto contrastado, bordes visibles — diseño inspirado en Grafana/Datadog
  • Animaciones diferenciadas por tipo de evento en el feed (pago aprobado, rechazado, fraude, mensaje)
  • Badge de sede con shimmer animado y siempre visible desde carga inicial
Correcciones
  • Chat panel: colores de burbujas y cabecera usaban valores fijos en oscuro — ahora usan variables CSS del tema
  • Tabla/feed: bordes invisibles en modo claro — corregido con variables --row-border
  • Corte mensual: si cae domingo → se mueve al martes (no lunes)
v3.7b 05 jun 2026 Reintentar WispHub · Error visible · Auto-expirar pendientes
Panel · WispHub
  • Botón "⚡ Activar en WispHub" en el modal de detalle del pago: permite reintentar la activación directamente desde el detalle sin volver a la lista
  • Error WispHub visible en el panel: cuando falla la activación, el motivo exacto queda guardado en el pago y se muestra en rojo en el modal de detalle
  • Al activar con éxito, el error se borra y el estado se actualiza en el mismo modal sin cerrar
  • Botón "⚡ Reintentar todos" en la stat card "Sin activar": procesa en lote todos los pagos sin activar con un clic; incluye subida de voucher
  • Auto-expirar vouchers sin identificar (pendiente_id) después de 6 horas — el panel deja de acumular pagos abandonados
v3.7a 05 jun 2026 Tono profesional · Solo pagos · Horario dinámico · Datos cuenta completos
Mensajes del bot
  • Tono ajustado a atención al cliente de empresa: elimina frases casuales ("momentito", "¡Perfecto!", "dame un instante", "con gusto", "Cuídese", etc.)
  • "Soporte técnico" renombrado a Atención al cliente en todos los mensajes
  • Canal de pagos más claro: mensaje explícito de exclusivo para registrar pagos en bienvenida, derivación, soporte y confirmación
  • Confirmación de cuenta ahora muestra nombre completo, plan, estado y dirección (evita confusión entre clientes con nombre similar)
  • Despedidas y agradecimientos actualizados: contexto ISP, sin frases de amistad
Horario dinámico en derivación
  • Si el cliente escribe fuera del horario de atención, el bot añade una nota automática indicando cuándo será atendido
  • Detecta domingo, antes de apertura, después de cierre y fin de semana por separado
v3.7 05 jun 2026 Chat paginado · Control del bot · Filtros · Vista móvil
Chat mejorado
  • Carga los 50 mensajes más recientes al abrir un chat (antes mostraba los 300 más antiguos)
  • Scroll hacia arriba carga mensajes anteriores automáticamente sin recargar la página
  • Teléfono y cantidad de mensajes visibles en cada item de la lista de chats
  • Buscador global (Ctrl+K) ahora también busca entre conversaciones y abre el chat directo
  • Hora de mensajes en tiempo real sin segundos (solo HH:MM)
  • Fix: doble burbuja al enviar desde el panel (race condition socket/HTTP resuelto)
Control del bot por chat
  • Botón 🤖 Activo / ⏸ Xmin en la cabecera del chat para pausar el bot
  • Opciones de pausa: 15 min, 30 min, 1 h, 4 h o indefinido
  • Mientras el bot está pausado: los mensajes del cliente se guardan pero el bot no responde
  • Badge ⏸ Pausado visible en la lista de chats para identificar cuáles están detenidos
Filtros y estados en la lista de chats
  • Barra de filtros: Todos · ⏸ Pausados · 💬 Sin ver
  • Badge 💬 Sin ver: aparece cuando el cliente envió un mensaje nuevo después de que el operador abrió el chat por última vez; desaparece al abrir; no se borra cuando el bot responde
Voucher visible desde el chat
  • Clic en 📷 dentro del historial abre el modal completo con imagen y datos del pago
  • Funciona aunque no se haya visitado la sección de Pagos en esa sesión
Vista móvil responsive
  • Al abrir un chat en celular, el panel ocupa toda la pantalla (estilo app nativa)
  • Botón ← para volver a la lista sin recargar
  • Topbar condensada: oculta nombre largo, muestra logo + badge de sede prominente
  • Sin desborde horizontal — ya no es necesario hacer zoom-out en el celular
v3.6 05 jun 2026 Chat estilo WhatsApp · Responder desde el portal · Formato de texto
Conversaciones rediseñadas al estilo WhatsApp
  • Burbujas con cola (▾) y colores diferenciados: azul oscuro para mensajes salientes, gris para entrantes
  • Lista de chats con avatar de inicial, vista previa del último mensaje y hora
  • Cabecera de contacto al abrir un chat: nombre, teléfono y botón de mensaje rápido
  • Pantalla de bienvenida vacía cuando no hay chat seleccionado
Barra de respuesta directa en el chat
  • Input de texto con botón enviar (►) directamente en el panel de conversación — sin abrir modal
  • Enter envía, Shift+Enter hace salto de línea
  • El mensaje aparece instantáneamente en la burbuja sin recargar
  • Solo visible para roles admin/operador
Formato WhatsApp en mensajes
  • *texto* → negrita, _texto_ → cursiva, ~texto~ → tachado, `texto` → monoespaciado
  • Aplica tanto en el historial como en mensajes en tiempo real
v3.5 junio 2026 Mejora validación BCP Yape y lookup WispHub
  • Prompt Claude mejorado para extraer N° de operación en capturas BCP Yape ("N° de operación", "Código de operación", "Referencia", etc.)
  • Búsqueda por teléfono WA ahora incluye wisphub_clientes — clientes registrados en WispHub son reconocidos automáticamente sin pedir nombre
  • Búsqueda por nombre también incluye wisphub_clientes, reduciendo casos donde el bot no encuentra al cliente
v3.4 05 jun 2026 Historial completo · Vouchers en chat · Mejoras de panel y OCR
Comprobante visible en historial de conversación
  • El chat del cliente muestra miniatura del voucher directamente en la burbuja del mensaje
  • Clic en la miniatura abre el modal completo con imagen y datos del pago
  • El comprobante queda linkeado automáticamente al registro de pago en la BD
Registro completo de conversaciones
  • Mensajes de texto: límite ampliado de 500 → 2000 caracteres (evidencia completa)
  • Audios, notas de voz, stickers y videos: ahora se registran como (audio) / (sticker) / (video) en el historial
  • Feed en vivo del panel: de 120 → 200 conversaciones
Panel de pagos ampliado
  • Vista principal muestra los últimos 30 pagos (antes 8)
  • BD local se actualiza a Activo al instante tras aprobar un pago — cliente ya no ve estado incorrecto si consulta después de pagar
OCR mejorado — vouchers BBVA/Yape
  • Reconoce el campo Contacto: del formato BBVA → Yape ("Envío a contactos")
  • Acepta números de operación alfanuméricos (ej. 1C1EB094E9C3)
Aplao — filtro de zona corregido
  • Bot Aplao usaba filtro %pedregal%; corregido a %apl% — cubre APLAO-IPoE, Quiskay y todas sus zonas
Chat en tiempo real sin recargar
  • Los mensajes entrantes y salientes aparecen al instante en la conversación abierta — sin necesidad de hacer clic de nuevo ni actualizar
  • Audios, stickers y videos se muestran como marca (audio) / (sticker) en tiempo real
Separadores de fecha + fecha sticky estilo WhatsApp
  • Separadores Hoy / Ayer / fecha exacta entre grupos de mensajes
  • Fecha flotante en la parte superior que cambia al hacer scroll — siempre sabes en qué día estás
  • Al abrir un chat, baja automáticamente al último mensaje
Layout adaptable a cualquier resolución
  • Eliminado el height:calc(100vh - 160px) hardcodeado — el chat ahora usa flexbox y se adapta a cualquier pantalla sin recortarse
v3.3 05 jun 2026 Voucher persistente · Recuperación tras reinicio · Ver comprobante en panel
Clientes cancelados excluidos de búsquedas
  • Búsqueda por DNI, teléfono y nombre excluye clientes con estado Cancelado
  • Aplica en base de datos local y en la API de WispHub
  • Evita que clientes dados de baja sean activados o atendidos por el bot
Voucher guardado antes de identificar al cliente
  • Cuando el cliente envía su comprobante y el bot pregunta "¿Es la suya?", la imagen se guarda inmediatamente en la base de datos (estado pendiente_id) — ya no se pierde si el bot se reinicia
  • Si el cliente responde "Sí" minutos u horas después (incluso tras un reinicio), el bot detecta el voucher pendiente y completa el registro automáticamente
  • Vouchers sin confirmar por más de 72 horas se marcan como expirado y el bot pide reenviar el comprobante
  • Resuelve el caso de clientes que respondían tarde y el bot les decía "De nada" sin registrar nada (956285276 y 913008131)
Ver y descargar comprobante desde el panel
  • Columna Voucher muestra botón 🖼 Ver cuando hay imagen guardada
  • Clic abre modal con la foto del comprobante a tamaño completo
  • Botón ⬇ Descargar para guardar la imagen localmente
  • Útil para revisar pagos pendiente_id, expirado o cualquier pago con imagen
OCR optimizado (analizar.js)
  • Imágenes redimensionadas a máx 768px antes de enviar a Claude → ~50% menos tokens de entrada
  • max_tokens reducido de 600 → 250
  • Prompt más compacto; numero_operacion marcado como campo más importante
  • Modelo confirmado en claude-sonnet-4-6
v3.2 05 jun 2026 Optimización de rendimiento · Alertas urgentes en grupo
Mejoras
  • Búsqueda por nombre en hilo paralelo: el algoritmo fuzzy corre en un hilo independiente; el bot sigue atendiendo mensajes sin bloqueos mientras resuelve la búsqueda
  • Motor de WhatsApp optimizado: perfil de Chrome ajustado al mínimo operativo, reduciendo consumo de CPU y RAM
  • Voucher sin completar — alerta urgente: si el cliente no finaliza la validación en 15 minutos, el comprobante se reenvía al grupo con encabezado 🔴 URGENTE — VOUCHER SIN PROCESAR y estado SIN ACTIVAR, diferenciándolo de los pagos normales
v3.1 04 jun 2026 Tag "Sin validar" en pagos pendientes
Mejora
  • Sin validar: los pagos con tag "No visto" que aún están en estado pendiente muestran el indicador ⏳ Sin validar en lugar del botón "✓ Listo". El botón solo aparece cuando el pago ya fue aprobado o rechazado, evitando que queden sin seguimiento
v3.0 04 jun 2026 Tags de staff · Flujo 2 servicios / 1 voucher
Nuevas funciones
  • Tags de staff: cada pago ahora tiene un indicador visual de seguimiento (⬜ Sin revisar → 🟠 En proceso → 🟢 Revisado). Visible en tabla de Pagos y Alertas; clic para cambiar estado
  • Segundo servicio mismo voucher: si el cliente dice "son 2 cuentas", "tengo 2 servicios" o similar tras pagar, el bot pide identificar la segunda cuenta y la activa en WispHub sin necesidad de enviar otro comprobante
v2.9 04 jun 2026 Auto-logout al recargar · Panel QR automático · Navegación con F5
Mejoras
  • Auto-logout al recargar: al hacer ./recargar.sh, el bot desvincula WhatsApp automáticamente antes de cerrar. El teléfono recibe la desvinculación sin intervención manual. El próximo arranque solo requiere escanear QR (sin desvincular a mano)
  • Alerta Telegram en QR: cuando el bot requiere escanear QR, envía notificación por Telegram
  • Panel: QR se muestra automáticamente: corregido bug donde el QR desaparecía; el panel navega solo a la sección WhatsApp y el QR permanece visible hasta ser escaneado
  • Panel: F5 mantiene la página activa: la navegación usa el hash de la URL (#pagos, #whatsapp, etc.) y se restaura al recargar
Nota
  • Cada ./recargar.sh requiere escanear QR una vez (se desvincula y re-vincula limpiamente)
  • Aplica a ambas sedes: El Pedregal y Aplao
v2.8 04 jun 2026 Guía de respuestas · Sesión más estable al recargar
Mejoras
  • msgConfirmarCuenta: ahora dice claramente "_Responda *Sí* si es su cuenta, o *No* para buscar otra_" en lugar de solo mostrar "Sí / No"
  • msgOpcionesCliente: instrucción dinámica "Responda del 0 al N" según cuántas opciones hay
  • msgNoEncontrado: indica al cliente que puede escribir su nombre de nuevo directamente en el chat
  • Shutdown más limpio: timeout SIGTERM aumentado de 6 s a 12 s y kill_timeout de 8 s a 15 s — da más margen a Chrome para guardar la sesión WhatsApp antes de cerrar
  • recargar.sh: espera 25 s (antes 5 s) para que Chrome cierre completamente antes de arrancar el nuevo proceso
Notas técnicas
  • El bot corre desde server.js (PM2); bot.js es un archivo de referencia/legacy que no está en uso
v2.7 03 jun 2026 Identidad Sede El Pedregal · Captura texto cliente
Mejoras
  • Identidad sede: bienvenida dice "Cable Visión Majes — Sede El Pedregal"
  • Captura texto cliente: el caption/texto que acompaña al voucher se guarda en la columna texto_cliente de cobros.db y se usa para identificar al cliente antes de consultar WispHub
v2.6 03 junio 2026 Reconexión automática · Detección de mensajes · Post-pago tonal · Variaciones de respuesta
Correcciones
  • QR al reiniciar PC (fix): el bot ahora limpia los lock files de Chrome (Singleton*) tanto al arrancar como dentro del ciclo de reconexión automática (reiniciarWA), evitando que el error "browser already running" forzara re-escanear el QR en cada reinicio
  • "no tengo ínternet" → soporte: el detector de soporte ahora acepta la tilde en ínternet y punto entre palabras ("no tengo. internet"), antes se identificaba al cliente en vez de derivar a soporte
  • "Pagará servicio internet" → nombre (fix): en la selección de servicio el bot extraía "Pagará" como nombre del cliente; ahora detecta la palabra internet en cualquier posición del mensaje y selecciona la opción correcta
  • "El pago se hace por adelantado" → nombre (fix): en el flujo de cable TV el bot guardaba artículos y preposiciones ("El", "La", "Por"…) como nombre del cliente; ahora los filtra y vuelve a pedir el nombre correctamente
Mejoras de detección de mensajes
  • "pago de internet", "pago del mes…": el intent pago ahora reconoce el sustantivo pago y el gerundio pagando, antes estos mensajes no activaban ningún flujo
  • "le mando" / "ya mando": reconocidos como intención de enviar comprobante
  • "los dos" / "ambos" / "cable e internet": en la selección de servicio (1=Internet/Dúo · 2=Cable TV) estas respuestas ahora seleccionan correctamente la opción 1
  • Pago de terceros detectado automáticamente: cuando un cliente ya identificado envía un comprobante con caption que menciona otra persona (ej. vecino, familiar), el bot detecta la diferencia por fuzzy match y redirige el pago a la cuenta correcta en vez de registrarlo en la cuenta equivocada
Mejoras de mensajes
  • Firma en grupo de depósitos: el mensaje enviado al grupo dice "Servicio ACTIVADO por Mateo"
  • Post-pago tonal: el bot ahora distingue el tono del cliente tras confirmar un pago — respuesta cálida si dice "Muchas gracias 🫂", concisa si dice "👍" u "Ok", despedida real si dice "Eso es todo" o "Hasta luego" (cierra la sesión), e inicia un nuevo pago si el cliente manda otro nombre o menciona "internet/cable/pago"
  • Agradecimientos ampliados: "Grasias", "👍", "👏", "Muy bien", "Eso es todo", "Ya listo", "Sii", "Todo bien" ahora se detectan correctamente como agradecimiento y reciben respuesta — antes pasaban sin respuesta o activaban flujo equivocado
  • Despedidas ampliadas: "Hasta mañana", "Cuídese" ahora detectadas como despedida
  • Variaciones de respuesta: noEntendi pasó de 3 a 6 variaciones; recibirImagen de 6 a 9; se agregaron arrays independientes para agradecimiento cálido, agradecimiento conciso y despedida
v2.5 03 junio 2026 Panel mejorado · Tono respetuoso · Portabilidad · ngrok systemd
Nuevas funciones
  • Buscador global (Ctrl+K): overlay de búsqueda en tiempo real sobre pagos y clientes WispHub desde cualquier página del panel
  • Card pendientes en dashboard: muestra los pagos pendientes de revisión directamente en el dashboard con botones Aprobar/Rechazar; se oculta automáticamente si no hay ninguno
  • Uptime del bot: la pill de estado en la barra superior muestra cuánto tiempo lleva WhatsApp conectado sin interrupciones
  • Reporte diario Telegram: cada noche a las 21:00 envía resumen de recaudación, pagos por plataforma, pendientes, rechazados y estado del bot
  • Próximo reporte (chip): indicador en la barra de acciones del dashboard mostrando el tiempo hasta el próximo reporte Telegram
  • Servicio ngrok systemd: túnel racoon-confused-slept.ngrok-free.dev arranca automáticamente con el sistema como servicio de sistema
Mejoras
  • Tono respetuoso (usted): todos los mensajes al cliente usan "usted", saludos según hora del día, variaciones naturales y números de soporte más prominentes
  • Detección de soporte ampliada: el bot ahora reconoce más frases de falla técnica ("luz roja", "me cortaron", "pésimo", "urgente", etc.) y redirige al número de atención
  • Exportar CSV mejorado: botón renombrado correctamente; teléfono sin sufijo @c.us en el archivo descargado
  • Logo actualizado: nuevo cvm-logo.png en panel, favicon y notificaciones del navegador
  • Firma KûHaKu: footer del panel con crédito al desarrollador
  • Header ngrok: middleware que añade ngrok-skip-browser-warning a todas las respuestas
Portabilidad y despliegue
  • install.sh: instala Node.js 20, Chrome, PM2 y dependencias npm desde cero en Ubuntu/Debian
  • backup.sh: empaqueta cobros.db + wa-session + .env para migración
  • README.md: guía completa de despliegue paso a paso
  • WISPHUB_TOKEN: movido de hardcoded a variable de entorno .env
  • ecosystem.config.js: usa __dirname en vez de ruta absoluta
  • .gitignore: excluye wa-session, cobros.db, .env, logs, node_modules
v2.4 03 junio 2026 Seguridad identidad · Nombre Yape · Apagado limpio
Correcciones de seguridad
  • Confirmación siempre obligatoria: el bot ahora pide Sí/No en TODOS los casos donde identifica al cliente por teléfono o BD — incluso cuando el cliente solo saluda (antes iba directo a esperando_voucher sin confirmar). Evita registrar pagos a la cuenta equivocada si el número pertenece a un familiar o fue reasignado
  • Nombre con etiqueta exige apellido: extraerDatosTexto ya no acepta "nombre: Juan" (1 palabra) como identificador — necesita mínimo nombre + apellido. Aplica al caption, texto de burst y mensaje de Yape
  • Cable TV sin WispHub: confirmado que el flujo cable nunca busca en WispHub; sí analiza el comprobante con Claude (titular, fecha, monto) y reenvía al grupo para revisión manual
Nuevas funciones
  • Nombre en mensaje Yape: Claude extrae el campo mensaje_cliente (la nota que el cliente escribe en la app Yape al pagar). Si contiene nombre + apellido, el bot lo usa para identificar automáticamente sin pedir el nombre de nuevo. El análisis se cachea para no llamar a Claude dos veces
  • Nombre en texto de WhatsApp: si el cliente responde con su nombre en lugar de "1" o "2" cuando el bot pregunta el tipo de servicio, el bot lo guarda y pregunta el tipo de servicio de nuevo en vez de ignorarlo
  • Nombre detectado en selección de servicio: cuando se identifica el nombre antes de conocer el tipo de servicio, al elegir Internet/Dúo el bot va directamente a la búsqueda sin volver a pedir el nombre
Mejoras técnicas
  • Apagado limpio (SIGTERM/SIGINT): handler que llama client.destroy() antes de salir — Chrome cierra correctamente, sin lock files, sin perder la sesión de WhatsApp. Elimina la necesidad de re-escanear el QR en cada reinicio
  • Limpieza de locks al arrancar: borra automáticamente Singleton* y .parentlock que pudo dejar un crash previo
  • recargar.sh usa pm2 restart: documentado que nunca usar pm2 reload (levanta proceso nuevo antes de matar el viejo → conflicto de sesión WA)
  • Mensajes uniformes: todos los mensajes que piden identificación dicen "nombres y apellidos completos" con ejemplo peruano
v2.3 03 junio 2026 Panel de Configuración en caliente
Nuevas funciones
  • Sección Configuración: panel ⚙️ para editar todo sin tocar código — titular, datos de pago, horario, planes y mensajes
  • Titular dinámico: el nombre del titular, cuenta BCP y número Yape se leen desde config.json en tiempo real; cambiar el titular ya no requiere reiniciar el bot
  • Planes editables: tabla de montos válidos por plan con botón de agregar/eliminar; montos fuera de rango siguen generando alerta [MONTO INUSUAL]
  • Horario restringido: opción para bloquear el bot fuera del horario configurado (días + hora inicio/fin) con mensaje personalizado
  • Selector de modelo IA: cambiar entre Haiku 4.5, Sonnet 4.6 y Opus 4.8 desde el panel
  • Umbral de confianza: slider para ajustar el mínimo de autenticidad del voucher (defecto 50%)
  • Mensajes personalizados: bienvenida, confirmación de pago, rechazo y voucher borroso con variables {nombre} {soporte} etc.
  • Hot reload: todos los cambios se aplican sin reiniciar el proceso PM2
v2.2 03 junio 2026 Post-pago sin re-flujo · Alerta identidad por nombre distinto
Correcciones
  • Estado post-pago: después de confirmar un pago el bot ya no reacciona a mensajes de texto del cliente como si fuera un nuevo pago — si el cliente escribe algo se le responde brevemente; si manda otra imagen sí inicia un nuevo pago
  • Alerta de identidad dudosa: si el bot reconoció al cliente por teléfono pero el texto que acompañó la imagen menciona un negocio o nombre distinto al registrado (ej. "pago de la cascada" cuando el tel está a nombre de otra persona), el pago queda marcado [REVISAR IDENTIDAD] en el panel para verificación manual
v2.1 03 junio 2026 Stats clicables · Navegación directa a filtros
Nuevas funciones
  • Stats del dashboard clicables: hacer clic en un stat navega directamente a la sección correspondiente con el filtro ya aplicado — sin buscar manualmente
  • ✅ Aprobados / ❌ Rechazados / ⏳ Pendientes → Pagos filtrado por estado
  • ⚠️ Sin activar WH → Pagos mostrando solo los aprobados que no se activaron en WispHub
  • 🚨 Fraudes → Alertas
  • 💰 Recaudado hoy → Reporte del día actual
  • 📅 Recaudado mes → Reporte desde el 1° hasta hoy
  • 👥 Clientes → Sección clientes | 🤖 Bot → Estado WhatsApp
  • Nuevo filtro "Sin activar WH" en la sección Pagos para poder consultarlo también manualmente
v2.0 03 junio 2026 Comprobante sube a WispHub · Observaciones limpias · Sin notas de monto
Nuevas funciones
  • Comprobante adjunto en WispHub: tras registrar el pago en la factura, el bot intenta subir la foto del voucher como archivo adjunto en WispHub (/facturas/{id}/archivos/) — queda guardado junto a la factura para trazabilidad
Mejoras
  • Observaciones de WispHub limpias: se eliminaron las notas de adelanto/falta de las observaciones del cliente — como los planes aún no están actualizados en WispHub, esas diferencias generaban ruido innecesario. Solo queda: método, monto, referencia y fecha
  • Las alertas de adelanto/falta siguen apareciendo en el panel de cobros y en el grupo de WhatsApp para que oficina las revise, pero ya no se escriben en WispHub
v1.9 03 junio 2026 Trato respetuoso · "Estimado cliente" en errores · Nombre completo en confirmación
Mejoras
  • "Estimado cliente" en todos los mensajes de error o rechazo (imagen borrosa, titular inválido, fraude, comprobante no reconocido, error técnico) — neutro, formal y adecuado para cualquier persona
  • Nombre completo en confirmación de pago: cuando el pago se aprueba, el mensaje muestra el nombre completo del cliente para que se identifique claramente
  • Combinación: trato formal en situaciones incómodas (errores), identificación personal en la confirmación (lo más importante para el cliente)
v1.8b 03 junio 2026 Fix móvil scroll · Gráficos que llenan el espacio · Feed con más historial
Correcciones
  • Scroll en móvil restaurado: el layout sin-scroll del dashboard bloqueaba el deslizamiento en teléfonos — corregido con reglas más específicas en el breakpoint 820px
  • Gráficos llenan el espacio disponible: antes tenían altura fija de 215px; ahora crecen para ocupar todo el espacio libre debajo de "Últimos pagos" — se ven más grandes y legibles
  • Feed carga hasta 120 conversaciones (antes 50) para aprovechar mejor el espacio de la columna izquierda
  • Gráficos se renderizan con un pequeño delay tras la navegación para asegurar que el contenedor tenga su altura final antes de que Chart.js dibuje
v1.8 03 junio 2026 Dashboard estable · Gráficos visibles · Layout confiable
Correcciones
  • Gráficos ahora visibles: Chart.js necesita altura fija en el contenedor — se estableció height:215px en la fila de gráficos para que rendericen correctamente en todos los navegadores
  • Layout sin scroll más confiable: reemplazado el selector :has() (experimental, fallaba en algunos casos) por clase is-dashboard aplicada directamente via JS — funciona en cualquier navegador moderno
  • Panel de pagos recientes visible: altura fija de 172px con scroll interno para no desplazar los gráficos
  • Separación clara de alturas: stats ~68px, acciones ~32px, feed llena el resto, gráficos 215px fijos
v1.7 03 junio 2026 Nombre completo en confirmaciones · Sin "Sr./Sra." · Empresas identificadas
Mejoras
  • Nombre completo en confirmación de pago: basado en los 7,632 clientes reales de WispHub, se muestra el nombre completo (hasta 4 palabras) para que el cliente se identifique claramente — antes solo aparecía el apellido, generando confusión con los muchos clientes Quispe, Mamani, Flores, etc.
  • Sin "Sr.(a.).": eliminado de todos los mensajes — se usa el nombre directamente, que es educado y apropiado para cualquier persona sin asumir género
  • Empresas y organizaciones: E.I.R.L., S.A.C., JASS, asociaciones, etc. ya no reciben tratamiento personal en las confirmaciones
  • Sufijos admin de WispHub: notas como -PRESTAMO-, -CORTE- se eliminan automáticamente del nombre antes de mostrarlo al cliente
v1.6 03 junio 2026 Cable TV pide nombre y DNI · DNI en grupo de depósitos
Correcciones
  • Cable TV ya pide nombre y DNI: antes el pago quedaba registrado como "CABLE TV" sin saber de quién era; ahora el bot solicita nombre completo y DNI antes de pedir el comprobante — en todos los puntos de entrada (opción 2 del menú, texto "solo cable", imagen con caption cable, búsqueda de nombre no encontrado en WispHub)
  • Si el cliente no quiere dar su DNI puede escribir "sin DNI" y el bot continúa igual, registrando el nombre que sí dio
  • Si manda el comprobante primero y luego dice que es cable, el bot guarda la imagen y pide los datos antes de procesarla
  • DNI en grupo de depósitos: cuando hay DNI del cliente, ahora aparece en el mensaje que se reenvía al grupo de validación de oficina
v1.5 02 junio 2026 Dashboard sin scroll · Menú colapsable · Métricas · Prompt caching
Nuevas funciones
  • Menú lateral colapsable: botón en el topbar oculta/muestra el sidebar con animación suave; el estado se recuerda entre recargas de página
  • Dashboard sin scroll: todo el contenido cabe en pantalla sin desplazarse — stats en tira horizontal, feed y gráficos en 2 columnas que llenan el alto disponible
  • 3 gráficos en una sola fila: recaudación 14 días, pagos por método (donut) y distribución por hora del día — visibles al mismo tiempo sin bajar
  • Gráfico de pagos por hora: muestra a qué horas del día llegan más pagos (últimos 30 días), apilado aprobados vs rechazados/pendientes
  • Nuevas métricas: "Sin activar en WispHub" (aprobados con fallo de activación, resaltado en naranja), "Tasa de aprobación %" y "Monto promedio del mes"
  • Acciones rápidas: barra de botones de acceso directo a pago manual, búsqueda WispHub, alertas, enviar mensaje y reporte — sin navegar por el menú
  • Notificaciones de escritorio: avisa con notificación del navegador cuando llega un pago nuevo, aunque la pestaña esté en segundo plano
Mejoras
  • Prompt caching en Claude Vision: las instrucciones del prompt (texto estático) se cachean en Anthropic y se reutilizan entre llamadas, reduciendo costo de tokens de entrada hasta un 90% en esa parte
  • max_tokens 400 → 600: margen extra para evitar truncamiento del JSON en vouchers con campos muy verbosos
  • Stats en tira horizontal con scroll lateral — ya no ocupan 2–3 filas que empujan el contenido hacia abajo
v1.4 02 junio 2026 Whitelist · Alertas Telegram · Factura automática · Historial de chats
Nuevas funciones
  • Lista blanca de oficina: el panel permite agregar números del personal para que el bot los ignore completamente — sin necesidad de reiniciar
  • Alertas Telegram extendidas: notificación cuando WhatsApp se desconecta (con motivo), cuando reconecta, cuando Claude Vision falla, cuando WispHub no activa el servicio, y cuando el pago se asienta sin factura pendiente
  • Factura automática: si el cliente activo no tiene factura pendiente, el bot crea la del mes en curso automáticamente antes de registrar el pago — elimina el caso "activado sin factura"
  • Historial de conversaciones: todos los mensajes entrantes y salientes se guardan en BD (con nombre WhatsApp del cliente); el panel los muestra aunque se recargue la página
  • Vista de chats en panel: nueva pestaña con todos los chats activos, último mensaje por número, e historial completo por cliente
  • Gráficos de recaudación: estadísticas de los últimos 14 días con desglose por Yape, Plin y otros métodos de pago
  • Referencia "BOT-MÉTODO-OP" en WispHub: los pagos registrados por el bot quedan marcados (ej. BOT-YAPE-26676310) para trazabilidad
Mejoras
  • Throttle global anti-ban: separación mínima de 1.5 s entre cualquier par de mensajes salientes (aunque haya múltiples clientes a la vez) — evita ráfagas que WhatsApp interpreta como bot
  • Zombie detection robusta: el healthcheck ya no reinicia durante la carga inicial de WhatsApp Web (puede tardar hasta 3 min); solo reinicia si lleva más de 10 minutos sin completar
  • Guardado automático de teléfono: tras procesar un pago exitoso, el bot guarda el número real del cliente en WispHub para reconocerlo automáticamente la próxima vez
  • Tratamiento formal: los mensajes usan el apellido paterno extraído del nombre ("Sr.(a). Quispe") para un trato más personal
  • Extracción de datos del caption: si el cliente envía la imagen con nombre, DNI o dirección como texto acompañante, el bot los extrae y procesa todo en un solo paso sin pedir los datos de nuevo
  • Anti-fuerza bruta en login: 6 intentos fallidos en el panel bloquean la IP por 5 minutos
  • Validación extra de titular — vía 3: si el número Yape/Plin del ISP aparece en el voucher (no solo el nombre o cuenta), el pago se acepta como válido
Correcciones
  • Número de operación NO_LEGIBLE: en vez de rechazar el pago, el bot pide reenviar la captura con instrucción clara
  • Alerta de error crítico a Telegram cuando WispHub no activa el servicio, con datos completos para activación manual desde el panel
v1.3 02 junio 2026 Flujo guiado · Métodos de pago WispHub · Zona Pedregal
Nuevas funciones
  • Menú de 2 opciones al inicio: 1) Internet/Dúo y 2) Solo cable TV — el bot guía al cliente paso a paso
  • Datos de pago (BCP / Yape / Plin / Titular) se muestran automáticamente al seleccionar el servicio
  • Clientes cable TV omiten WispHub completamente — van directo al comprobante
  • Métodos de pago en WispHub: Yape (ID 46011) y Plin (ID 47463) registran con el método correcto en lugar de "Transferencia"
  • Tunnel Cloudflare en PM2 con notificación automática por Telegram cuando cambia la URL
  • Reenvío al grupo con foto + todos los datos: nombre, teléfono, servicio, plan, zona, operación, monto, método, fecha, destinatario, observación y estado de activación
  • Etiqueta 📋 Observación: en el grupo cuando hay diferencia de monto (adelanto/falta)
Mejoras
  • Clientes reconocidos por teléfono van directo al comprobante — se eliminó el paso "¿Es su cuenta? Sí/No" innecesario
  • Filtro de zona Pedregal en todas las búsquedas — solo muestra los 4,703 clientes de esa zona (evita confusión con APLAO, CORIRE, etc.)
  • Búsqueda de nombres con fallback a API WispHub si la BD local no encuentra (para clientes nuevos no sincronizados)
  • Cuando cliente envía foto + nombre en el mismo mensaje, el bot los procesa juntos sin pedir el nombre de nuevo
  • Mensajes al cliente más cortos y directos — menos texto innecesario
  • Horario de atención en mensajes: lunes a sábado, 8:00 a.m. a 6:00 p.m.
  • Bot protegido contra detección: respuestas con delay y efecto de escritura humano
Correcciones
  • "Antonio Bar*" (asterisco de privacidad Yape) ahora se reconoce como válido — antes lo rechazaba
  • Cuando Claude confunde el encabezado Yape (nombre del dueño del celular) con el destinatario, en vez de rechazar el pago lo manda al grupo para revisión manual
  • Cable TV dejaba de funcionar si el cliente pasaba por el flujo de identificación — corregido, ahora bypasea WispHub siempre
  • Detección de "cable e internet" mejorada: ya no activa el flujo cable TV si el cliente menciona internet o dúo
  • Validación de titular simplificada sin fuzzy matching — reglas directas y predecibles
  • Prompt de Claude simplificado: solo extrae datos del voucher, sin análisis de fraude que generaba falsos positivos
v1.2 01 junio 2026 Panel web · Login y roles · Identificación inteligente
Nuevas funciones
  • Panel web completo en puerto 3500 con login obligatorio y 3 roles: admin, operador y lectura
  • Contraseñas cifradas con scrypt (migración automática desde SHA256)
  • Flujo identificar-antes-de-pagar: el bot ubica la cuenta del cliente antes de procesar el voucher
  • Reconocimiento automático por número de teléfono (incluso IDs @lid de privacidad WhatsApp)
  • Activación en WispHub: registra el pago en la factura pendiente y activa el servicio (PATCH estado=Activo)
  • Reenvío al grupo de depósitos para validación de oficina
  • Pago manual desde el panel con número de operación real
  • Exportar reportes a Excel/CSV
  • Sincronización WispHub automática cada 6 horas
  • Anti-spam: máximo una respuesta de derivación cada 15 minutos por número
  • Ráfaga de mensajes: si el cliente envía varios mensajes seguidos, el bot responde una sola vez priorizando la imagen
Mejoras
  • Conexión WhatsApp robusta: healthcheck cada 30s con auto-reconexión
  • PM2 con auto-arranque en boot del sistema
  • Validación de fecha con período de gracia: acepta comprobantes de los últimos 5 días del mes anterior durante los primeros 7 días del mes nuevo
  • Detección y neutralización de falsos positivos de fraude (Claude marcaba fechas 2026 como "futuras")
  • Búsqueda fuzzy de nombres con fuzzball (tolera orden invertido de apellidos y errores tipográficos)
Correcciones
  • Voucher sin identificar: la imagen ya no se pierde si el cliente la manda antes del nombre
  • Reintentos de pagos rechazados: ya no bloquea el mismo comprobante tras un falso rechazo
  • MIME de imagen inválido desde WhatsApp normalizado a jpeg/png/webp
v1.0 mayo 2026 Versión inicial
  • Bot WhatsApp con validación de comprobantes Yape/Plin mediante Claude Vision
  • Validación de titular (Antonio Barboza Caballero) y cuenta BCP terminada en 1002
  • Detección de pagos duplicados por número de operación
  • Integración con WispHub API para activar servicios automáticamente
  • Base de datos local SQLite para registro de pagos y clientes

💬 Mensajes de ayuda — WhatsApp

🖨️ Tarjetas para clientes
Imprima tarjetas del tamaño de un ticket con los 4 pasos y el QR de WhatsApp. Entréguelas a clientes nuevos o a quienes tengan dificultad para registrar su pago.
Ver e imprimir →

Haga clic en Copiar y pegue el mensaje directamente en WhatsApp. Los campos entre [ ] complételos antes de enviar.