Documentación de Wapi
Wapi es una API REST que te permite enviar y recibir mensajes de WhatsApp desde cualquier sistema o lenguaje de programación. La conexión se realiza vinculando un número de WhatsApp vía código QR, sin necesidad de la API oficial de Meta.
URL base
Autenticación
Todas las peticiones a la API requieren un header Authorization con tu API Key.
Puedes generar una o varias API Keys desde el panel en API Keys.
Header requerido
Ejemplo
Quick Start
Sigue estos pasos para enviar tu primer mensaje:
-
1
Crea una instancia
Desde el panel, crea una instancia con el nombre que identifique tu número (ej:
ventas,soporte). -
2
Escanea el QR
Ve a la instancia creada, espera el código QR y escanéalo con WhatsApp → Dispositivos vinculados.
-
3
Genera tu API Key
Ve a API Keys en el panel y crea una nueva key. Guárdala en un lugar seguro.
-
4
Envía tu primer mensaje
curl -X POST https://api.wapi.kore.pe/api/v1/ventas/send/text \ -H "Authorization: Bearer TU_API_KEY" \ -H "Content-Type: application/json" \ -d '{"to":"51999888777","message":"¡Hola!"}'
Listar instancias
/api/v1/instances
Devuelve todas las instancias asociadas a tu cuenta con su estado actual.
Respuesta
Estado de instancia
/api/v1/{instance_id}/status
Devuelve el estado actual de una instancia específica.
Estados posibles
| Estado | Descripción |
|---|---|
conectado | WhatsApp vinculado y listo para enviar |
escaneando | Esperando escaneo del QR |
iniciando | Instancia iniciando sesión |
desconectado | Sesión cerrada o expirada |
Enviar mensaje de texto
/api/v1/{instance_id}/send/text
Envía un mensaje de texto plano a un número de WhatsApp.
Body (JSON)
| Campo | Tipo | Descripción |
|---|---|---|
to * |
string | Número destino con código de país (ej: 51999888777) |
message * |
string | Texto del mensaje. Soporta emojis 🎉 |
Ejemplo
Respuesta exitosa
Enviar multimedia
/api/v1/{instance_id}/send/media
Envía una imagen, PDF u otro archivo junto con un caption opcional.
Body (JSON)
| Campo | Tipo | Descripción |
|---|---|---|
to * |
string | Número destino con código de país |
url * |
string | URL pública del archivo a enviar |
caption |
string | Texto que acompaña al archivo (opcional) |
filename |
string | Nombre del archivo para documentos (opcional) |
Ejemplo — enviar PDF
Webhooks — Configuración
Los webhooks permiten que Wapi notifique a tu sistema en tiempo real cuando ocurre un evento (mensaje recibido, instancia desconectada, etc.).
Configura la URL de webhook desde el panel en la vista de detalle de cada instancia, o vía la siguiente petición:
/api/v1/{instance_id}/webhook
Webhooks — Eventos
Wapi enviará un POST a tu URL con el siguiente formato:
message.received
instance.disconnected
200 en menos de 10 segundos.
Si falla, Wapi reintentará hasta 3 veces con backoff exponencial.
Ejemplo — PHP
Ejemplo — JavaScript (Node.js)
Ejemplo — Python
Códigos de error
| Código HTTP | Descripción |
|---|---|
200 | Operación exitosa |
400 | Datos inválidos o faltantes en el body |
401 | API Key inválida o faltante |
404 | Instancia no encontrada |
409 | Instancia no conectada (escanea el QR) |
429 | Límite de mensajes del plan superado |
500 | Error interno del servidor |
Límites por plan
| Plan | Instancias | Mensajes/día | Precio |
|---|---|---|---|
| Starter | 1 | 300 | S/. 49/mes |
| Pro | 5 | 2,000 | S/. 129/mes |
| Business | 20 | Ilimitado | S/. 299/mes |
¿Necesitas más capacidad? Contáctanos para un plan a medida.