API REST de WhatsApp

Envia mensajes, administra celulares, configura webhooks y consulta saldo. 30 endpoints REST, ejemplos en 8 lenguajes, listo para produccion.

¿Necesitas administrar la cuenta desde tu sistema? Revisa la seccion Info y Saldo, Gestion de Celulares (incluye generacion de QR) y Webhooks. Todo via API, sin entrar al panel.
¿Tu sistema es antiguo? Si vienes del proyecto previo (multi_clientes / multi_lineas) o tienes integraciones legacy que envian mensajes via form-encoded, revisa la documentacion del endpoint legacy /panel/api_wa.php (mismo contrato, ejemplos en PHP, cURL, Python y Node.js).

Pruebalo rapido

REST simple

Endpoints HTTP estandar. POST/GET con form-data. JSON de respuesta. Sin SDK requerido.

Webhooks en tiempo real

Recibe eventos cuando un mensaje se entrega, se lee, o llega una respuesta. Configurable por cliente.

Rate limit manejable

Hasta 256 msg/min por celular. Errores 429 con retry_after explicito. Backoff automatico recomendado.

Auth por API key

Una key por celular. HMAC-SHA256 firmada. Rotable desde el panel. Logs de auditoria.

Proteccion anti-baneo incluida

WhatsApp suspende cuentas que envian mensajes identicos en bucle. Por eso la API incluye 3 capas automaticas para mantener tu numero seguro:

Cola humanizada

Por default los mensajes se encolan y se envian ~1 cada 5s. 1000 mensajes no llegan de golpe, se distribuyen en el tiempo. Asi WhatsApp no detecta patron de spam.

Anti-duplicado inteligente

El mismo mensaje (mismo texto + mismo destinatario + mismo celular) 3 veces en 2 minutos = bloqueo 5 min. Proteccion por cliente, no global. Evita loops accidentales.

Modo directo opcional

Para tiempo real (2FA, chatbots, alertas), envia directo=1. La API llama a WhatsApp al instante y registra como enviado. Ideal para codigos OTP.

30+ paises auto-detectados

El campo destinatario acepta cualquier formato. Mexico, USA, Espana, Argentina, Brasil, UK, China, Japon y mas. Normalizacion automatica a E.164.

Regla de oro: personaliza cada mensaje. Usa el nombre del destinatario, una clave de pedido, la fecha, o un contador. Cada mensaje que envies debe ser UNICO. Asi te proteges del baneo automatico de WhatsApp y de nuestra proteccion anti-duplicado.

Ver detalles tecnicos de proteccion →

Endpoints

Administracion 9

GET /api/info.php

Info del cliente

Devuelve la ficha del cliente asociado a la API key: nombre, email, plan, max_celulares, saldo_global, num_celulares, mensajes ultimos 30 dias.

GET /api/saldo.php

Consultar saldo

Devuelve el saldo global del cliente y el saldo del celular asociado a la API key.

GET /api/celulares.php

Listar celulares

Lista todos los celulares del cliente con su estado, saldo, configuracion de rate limit y horario.

GET /api/celular.php

Detalle de un celular

Devuelve el detalle completo de un celular por su id.

POST /api/celular_crear.php

Crear celular

Crea un celular nuevo en estado desconectado. Para vincularlo con WhatsApp via QR, llamar despues a /api/celular_qr.php?id=N

POST /api/celular_editar.php

Editar celular

Edita uno o varios campos de un celular. Solo se actualizan los campos enviados.

POST /api/celular_eliminar.php

Eliminar celular (hard delete)

Elimina el celular junto con todos sus mensajes, entrenamientos y movimientos de saldo. Genera un snapshot JSON forense en la auditoria antes de borrar. Tambien desconecta la session de WhatsApp (best effort).

POST /api/celular_qr.php

Generar QR de vinculacion

Genera o recupera el QR para vincular el WhatsApp. Si el celular no tiene session, crea una automaticamente. Devuelve el string del QR que debes convertir a imagen con una libreria qrcode (cliente JS o Python) y mostrar al usuario para que lo escanee desde WhatsApp.

GET /api/celular_status.php

Status de la sesion WhatsApp

Consulta el status actual de la sesion de WhatsApp del celular segun el proveedor. Actualiza la BD local.

Mensajes 13

POST /api/mensaje_enviar_texto.php

Enviar mensaje de texto

Envia un mensaje de texto plano via WhatsApp. Default encola (modo humanizado). Con directo=1 envia al instante.

POST /api/mensaje_enviar_imagen.php

Enviar imagen

Envia una imagen (JPG/PNG) con caption opcional. Default encola. directo=1 envia al instante.

POST /api/mensaje_enviar_documento.php

Enviar documento (PDF, DOC, XLS...)

Envia un archivo PDF, Word, Excel, etc. (max 100MB). Default encola. directo=1 envia al instante.

POST /api/mensaje_enviar_audio.php

Enviar audio (nota de voz)

Envia un audio (mp3, ogg, m4a). Para notas de voz usa formato opus + ptt=true. Default encola. directo=1 envia al instante.

POST /api/mensaje_enviar_video.php

Enviar video

Envia un video (mp4) con caption opcional. Default encola. directo=1 envia al instante.

POST /api/mensaje_enviar_sticker.php

Enviar sticker

Envia un sticker (WebP, max 100KB). Default encola. directo=1 envia al instante.

GET /api/mensaje_estado.php

Consultar estado de mensaje

Consulta el estado actual de un mensaje enviado (pendiente, enviado, entregado, leido, error).

GET /api/historial_listar.php

Listar historial

Lista el historial de mensajes enviados en los ultimos 3 meses. Soporta filtros por fecha, estado y destinatario.

POST /api/mensaje_enviar_imagen_base64.php

Enviar imagen (base64)

Variante que acepta la imagen como base64 (data URI o base64 puro) en vez de una URL publica. Util cuando no tienes donde hospedar la imagen. Default encola; con directo=1 envia al instante y elimina el archivo temporal antes de la respuesta.

POST /api/mensaje_enviar_documento_base64.php

Enviar documento (base64)

Variante de enviar documento que acepta el archivo (PDF, DOC, XLS, etc.) como base64. Default encola; directo=1 envia al instante y elimina el temporal.

POST /api/mensaje_enviar_audio_base64.php

Enviar audio (base64)

Variante de enviar audio que acepta el archivo (mp3, ogg, opus, m4a) como base64. Para notas de voz usa formato opus con ptt=true. Default encola; directo=1 envia al instante.

POST /api/mensaje_enviar_video_base64.php

Enviar video (base64)

Variante de enviar video que acepta el archivo (mp4, mov, 3gp) como base64 con caption opcional. Default encola; directo=1 envia al instante.

POST /api/mensaje_enviar_sticker_base64.php

Enviar sticker (base64)

Variante de enviar sticker que acepta el WebP/PNG como base64. Default encola; directo=1 envia al instante.

¿Listo para empezar?

Crea tu cuenta, vincula tu WhatsApp con QR y envia tu primer mensaje en menos de 5 minutos.

Ir al portal del cliente Contactar soporte