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>).
Estados
Sección titulada «Estados»| 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). |
Vinculación: QR o pairing code
Sección titulada «Vinculación: QR o pairing code»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:
Reconexión automática
Sección titulada «Reconexión automática»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.
Desconexión temporal vs. eliminación
Sección titulada «Desconexión temporal vs. eliminació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.
Salud de la sesión
Sección titulada «Salud de la sesión»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.