API General
createClient(options)
Retorna una instancia de WhatsmeowClient.
| Opción | Tipo | Predeterminado | Descripción |
|---|---|---|---|
store | string | requerido | Ruta SQLite o URL de Postgres |
binaryPath | string | auto | Ruta al binario de Go |
commandTimeout | number | 30000 | Timeout de comandos IPC en ms |
Conexión
init()— Abre el store y crea el cliente whatsmeow. Retorna{ jid }si ya está emparejado.getQRChannel()— Configura el canal de emparejamiento QR. Llámalo antes deconnect().pairCode(phone)— Empareja vía número de teléfono (alternativa al QR). Llámalo después deconnect().connect()— Conectar a WhatsAppdisconnect()— Desconectar de WhatsApplogout()— Cerrar sesión y eliminar el dispositivoisConnected()— Verificar estado de conexiónisLoggedIn()— Verificar estado de sesiónwaitForConnection(timeoutMs?)— Esperar hasta estar conectado e iniciado sesión, o timeoutresetConnection()— Reiniciar la conexión WebSocketclose()— Terminar el subproceso de Go
Mensajería
sendMessage(jid, message)— Enviar un mensaje tipado (conversación, texto extendido con respuestas)sendRawMessage(jid, message)— Enviar cualquier JSON con forma dewaE2E.MessagesendReaction(chat, sender, id, reaction)— Reaccionar a un mensaje (string vacío para eliminar)editMessage(chat, id, message)— Editar un mensaje enviado previamenterevokeMessage(chat, sender, id)— Revocar/eliminar un mensajemarkRead(ids, chat, sender?)— Marcar mensajes como leídos
Encuestas
sendPollCreation(jid, name, options, selectableCount)— Crear y enviar una encuestasendPollVote(pollChat, pollSender, pollId, pollTimestamp, options)— Votar en una encuesta
Medios
downloadMedia(msg)— Descargar medios de un mensaje recibidodownloadAny(message)— Descargar medios de cualquier tipo de mensaje (auto-detecta)downloadMediaWithPath(opts)— Descargar medios usando ruta directa y clavesuploadMedia(path, mediaType)— Subir medios para enviar ("image"|"video"|"audio"|"document")
Los medios usan rutas de archivos temporales en lugar de base64 para evitar sobrecargar el pipe IPC. Upload retorna { URL, directPath, mediaKey, fileEncSHA256, fileSHA256, fileLength }.
Contactos y Usuarios
isOnWhatsApp(phones)— Verificar si números de teléfono están en WhatsAppgetUserInfo(jids)— Obtener info de usuario (estado, ID de foto, nombre verificado)getProfilePicture(jid)— Obtener URL de foto de perfilgetUserDevices(jids)— Obtener todos los dispositivos de usuarios dadosgetBusinessProfile(jid)— Obtener info de perfil de negociosetStatusMessage(message)— Establecer tu mensaje de estado
Grupos
createGroup(name, participants)— Crear un grupogetGroupInfo(jid)— Obtener metadatos del grupogetGroupInfoFromLink(code)— Obtener info del grupo desde un enlace de invitacióngetGroupInfoFromInvite(jid, inviter, code, expiration)— Obtener info del grupo desde una invitación directagetJoinedGroups()— Listar todos los grupos a los que pertenecesgetGroupInviteLink(jid, reset?)— Obtener/reiniciar enlace de invitaciónjoinGroupWithLink(code)— Unirse vía enlace de invitaciónjoinGroupWithInvite(jid, inviter, code, expiration)— Unirse vía invitación directaleaveGroup(jid)— Salir de un gruposetGroupName(jid, name)— Actualizar nombre del gruposetGroupTopic(jid, topic, previousId?, newId?)— Actualizar tema del grupo (texto de anuncio)setGroupDescription(jid, description)— Actualizar descripción del gruposetGroupPhoto(jid, path)— Actualizar foto del gruposetGroupAnnounce(jid, announce)— Alternar modo de anunciosetGroupLocked(jid, locked)— Alternar bloqueo del grupoupdateGroupParticipants(jid, participants, action)— Agregar/eliminar/promover/degradargetGroupRequestParticipants(jid)— Obtener solicitudes de ingreso pendientesupdateGroupRequestParticipants(jid, participants, action)— Aprobar/rechazar solicitudes de ingresosetGroupMemberAddMode(jid, mode)—"admin_add"|"all_member_add"setGroupJoinApprovalMode(jid, enabled)— Habilitar/deshabilitar aprobación de ingreso
Comunidades
linkGroup(parent, child)— Vincular un grupo hijo a una comunidad padreunlinkGroup(parent, child)— Desvincular un grupo hijogetSubGroups(jid)— Obtener subgrupos de una comunidadgetLinkedGroupsParticipants(jid)— Obtener participantes de todos los grupos vinculados
Presencia
sendPresence(presence)— Establecer estado en línea/fuera de líneasendChatPresence(jid, presence, media?)— Establecer indicador de escritura/grabaciónsubscribePresence(jid)— Suscribirse a la presencia de un contacto
Newsletters
getSubscribedNewsletters()— Listar newsletters suscritosnewsletterSubscribeLiveUpdates(jid)— Suscribirse a actualizaciones en vivocreateNewsletter(name, description, picture?)— Crear un newsletter/canalgetNewsletterInfo(jid)— Obtener metadatos del newslettergetNewsletterInfoWithInvite(key)— Obtener info del newsletter desde enlace de invitaciónfollowNewsletter(jid)— Seguir un newsletterunfollowNewsletter(jid)— Dejar de seguir un newslettergetNewsletterMessages(jid, count, before?)— Obtener mensajes del newslettergetNewsletterMessageUpdates(jid, count, opts?)— Obtener actualizaciones de mensajesnewsletterMarkViewed(jid, serverIds)— Marcar mensajes como vistosnewsletterSendReaction(jid, serverId, reaction, messageId)— Reaccionar a un mensaje del newsletternewsletterToggleMute(jid, mute)— Silenciar/activar un newsletteracceptTOSNotice(noticeId, stage)— Aceptar un aviso de Términos de ServiciouploadNewsletter(path, mediaType)— Subir medios para mensajes del newsletter
Privacidad y Configuración
getPrivacySettings()— Obtener todas las configuraciones de privacidadtryFetchPrivacySettings(ignoreCache?)— Obtener desde caché o servidorsetPrivacySetting(name, value)— Actualizar una configuración de privacidadgetStatusPrivacy()— Obtener reglas de audiencia predeterminadas para el estadosetDefaultDisappearingTimer(seconds)— Establecer temporizador predeterminado de mensajes que desaparecensetDisappearingTimer(jid, seconds)— Establecer para un chat específico
Lista de Bloqueo
getBlocklist()— Obtener contactos bloqueadosupdateBlocklist(jid, action)— Bloquear/desbloquear ("block"|"unblock")
QR y Resolución de Enlaces
getContactQRLink(revoke?)— Generar o revocar tu enlace QR de contactoresolveContactQRLink(code)— Resolver un código QR de contacto a info de usuarioresolveBusinessMessageLink(code)— Resolver un enlace de mensaje de negocio
Llamadas
rejectCall(from, callId)— Rechazar una llamada entrante
Configuración
setPassive(passive)— Establecer modo pasivo (no recibir mensajes)setForceActiveDeliveryReceipts(active)— Forzar envío de confirmaciones de entrega
Utilidades de Mensajes
generateMessageID()— Generar un ID de mensaje únicobuildMessageKey(chat, sender, id)— Construir una clave de mensaje protobufbuildUnavailableMessageRequest(chat, sender, id)— Construir una solicitud para mensajes no disponiblesbuildHistorySyncRequest(info, count)— Construir un mensaje de solicitud de sincronización de historialsendPeerMessage(message)— Enviar un mensaje a tus propios dispositivossendMediaRetryReceipt(info, mediaKey)— Solicitar re-subida de medios al remitente
Bots
getBotListV2()— Obtener la lista de bots disponiblesgetBotProfiles(bots)— Obtener perfiles de bots específicos
Estado de Aplicación
fetchAppState(name, fullSync?, onlyIfNotSynced?)— Obtener estado de aplicación del servidormarkNotDirty(cleanType, timestamp)— Marcar un parche de estado de aplicación como no modificado
Descifrar / Cifrar
decryptComment(info, message)— Descifrar un mensaje de comentariodecryptPollVote(info, message)— Descifrar un voto de encuestadecryptReaction(info, message)— Descifrar una reaccióndecryptSecretEncryptedMessage(info, message)— Descifrar un mensaje secreto cifradoencryptComment(info, message)— Cifrar un comentarioencryptPollVote(info, vote)— Cifrar un voto de encuestaencryptReaction(info, reaction)— Cifrar una reacción
Análisis de Mensajes Web
parseWebMessage(chatJid, webMsg)— Analizar un WebMessageInfo (de sincronización de historial) en un evento de mensaje
Genérico
call(method, args)— Enviar cualquier comando al binario de Go (escape hatch)