Ir al contenido

Sesiones

Una sesión representa una cuenta de WhatsApp vinculada. Un usuario puede tener varias, cada una con su propia carpeta de credenciales en disco (auth/sessions/<userId>/<sessionId>).

Estado Significado
disconnected No hay socket activo. Requiere POST /sessions/:id/connect.
connecting Handshake en curso; puede haber un QR o pairing code disponibles.
connected Sesión operativa, puede enviar mensajes.
error Falló la reconexión automática o hubo una desconexión no recuperable (ver circuit breaker).

Cada sesión tiene un pairingMethod (qr o pairing_code), persistido en base para poder re-vincularse igual tras un reinicio del servidor. Ver las guías específicas:

Al reiniciar el proceso, reconnectAllSessions() intenta reconectar automáticamente toda sesión con shouldAutoReconnect: true (se marca así al crearla o al llamar /connect, y se desmarca al llamar /disconnect explícitamente). El reintento usa backoff exponencial, hasta 3 intentos por sesión.

  • POST /sessions/:id/disconnect — cierra el socket preservando credenciales (socket.end()), para poder reconectar después sin volver a escanear QR.
  • DELETE /sessions/:id — desvincula del lado del servidor de WhatsApp (socket.logout()) y borra la carpeta de credenciales. Es permanente.

GET /sessions/:id/health expone el estado de la capa anti-baneo: cuotas consumidas, ventana de warmup, quiet hours configuradas y si la sesión está pausada (y por qué). Ver Límites y cuotas.