Autenticación
Toda llamada a la API requiere un código de seguridad (token Bearer) y un identificador
tid en la URL. Ambos se generan en tu panel y están vinculados a una línea WhatsApp específica.
Headers requeridos
Cada request debe incluir estos dos headers HTTP. Sin ellos, el gateway responde 401 Unauthorized.
Authorization: Bearer TU_CODIGO_SEGURIDAD Content-Type: application/json
Nunca expongas tu código de seguridad en el frontend. Llama siempre desde tu backend.
Si se filtra, vuelve a generarlo desde wis.chat/wischat → Líneas → tu número → Código de seguridad.
El parámetro {tid}
El tid (Token ID) es el identificador único de tu línea WhatsApp dentro de Wis.Chat. Lo encuentras en el panel asociado a cada número certificado y forma parte de la URL del endpoint.
Ejemplo: si tu tid es 15, tu URL final es:
https://api.wis.chat/v22.0/TU_ID_LINEA/messagesMulti-tenant: el gateway combina tid + código de seguridad
para validar pertenencia. Un token de un tid no funciona contra otro tid.
Esto te permite manejar múltiples líneas WhatsApp con credenciales aisladas.
Dónde obtener tus credenciales
1. Inicia sesión en el panel
Ingresa a wis.chat/wischat con tu usuario y contraseña de NOUXSOFT.
2. Ve a "Líneas"
En el menú lateral, haz clic en Líneas WhatsApp y selecciona tu número certificado.
3. Copia el tid
Es el ID numérico que aparece en la columna Token ID de tu línea.
4. Copia el código de seguridad
Haz clic en Mostrar código dentro del detalle de la línea. Si nunca lo viste, generalo desde "Regenerar".
Verifica tu autenticación
Para confirmar que tus credenciales funcionan, haz esta llamada de prueba que envía un mensaje
de texto simple. El número 593999999999 del ejemplo es ficticio —
reemplázalo por tu propio número de WhatsApp (formato E.164 sin +) para que el
mensaje te llegue a ti y puedas verificar visualmente que funciona.
Antes de probar: envía cualquier mensaje desde tu WhatsApp personal al número
de Wis.Chat (el número certificado de tu línea). Esto abre la ventana de 24 horas
que permite enviarte mensajes de texto libre. Sin este paso recibirás el error
outside_24h_window.
curl -X POST "https://api.wis.chat/v22.0/TU_ID_LINEA/messages" \ -H "Authorization: Bearer TU_CODIGO_SEGURIDAD" \ -H "Content-Type: application/json" \ -d '{ "messaging_product": "whatsapp", "to": "593999999999", "type": "text", "text": { "body": "Hola 👋 estoy probando WhatsApp con la API de Wis.Chat" } }'
// Reemplaza 15 por tu ID de línea (visible en wis.chat/wischat → Líneas) $tid = 15; $token = 'TU_CODIGO_SEGURIDAD'; $ch = curl_init("https://api.wis.chat/v22.0/{$tid}/messages"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => json_encode([ 'messaging_product' => 'whatsapp', 'to' => '593999999999', 'type' => 'text', 'text' => [ 'body' => 'Hola 👋 estoy probando WhatsApp con la API de Wis.Chat', ], ]), CURLOPT_HTTPHEADER => [ "Authorization: Bearer {$token}", 'Content-Type: application/json', ], ]); $res = json_decode(curl_exec($ch), true); curl_close($ch); echo $res['success'] ? 'OK' : 'ERROR';
// Reemplaza 15 por tu ID de línea (visible en wis.chat/wischat → Líneas) const tid = 15; const token = 'TU_CODIGO_SEGURIDAD'; const res = await fetch(`https://api.wis.chat/v22.0/${tid}/messages`, { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ messaging_product: 'whatsapp', to: '593999999999', type: 'text', text: { body: 'Hola 👋 estoy probando WhatsApp con la API de Wis.Chat', }, }), }); const data = await res.json(); console.log(data);
import requests tid = 15 token = 'TU_CODIGO_SEGURIDAD' res = requests.post( f'https://api.wis.chat/v22.0/{tid}/messages', headers={ 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json', }, json={ 'messaging_product': 'whatsapp', 'to': '593999999999', 'type': 'text', 'text': { 'body': 'Hola 👋 estoy probando WhatsApp con la API de Wis.Chat', }, } ).json()
Si recibes "success": true
Tu autenticación funciona perfectamente. Pasa a explorar los tipos de mensaje.
Si recibes "error": "outside_24h_window"
El número destino no te ha escrito en las últimas 24 horas. Envía cualquier mensaje desde
tu WhatsApp al número de Wis.Chat para reabrir la ventana, o usa una
plantilla aprobada en lugar del tipo text.
Si recibes 401 o 403
- Verifica que el
tiden la URL coincida con la línea de tu token. - Confirma que el código de seguridad esté completo (no copiaste sólo una parte).
- Si regeneraste el código recientemente, asegurate de estar usando el nuevo.