Ayuda de la API
Volver al panel
Cargando la ayuda...

Aprende a usar la API de WS Gateway

Con la API, tus propios programas (un sistema en Visual FoxPro, una página web, Excel, un script) pueden hacer lo mismo que haces con clics en el panel: consultar chats, enviar mensajes de WhatsApp y enterarse de lo que llega. Elige por dónde quieres empezar:

0

Antes de empezar: ¿qué es una API?

Dos minutos de lectura y no se te vuelve a mezclar nada

Una API es una forma de pedirle cosas a WS Gateway desde otro programa, sin abrir el panel. Piensa en un restaurante: tú (tu programa) le haces un pedido al mesero (la API), y él te trae lo que salió de la cocina (WS Gateway). Ese pedido se llama petición y lo que te traen, respuesta.

Las 4 piezas de una petición

1Dirección (URL)

A dónde vas. Por ejemplo /api/accounts (la lista de tus instancias).

2Método

Qué quieres hacer: GET leer, POST crear o enviar, PATCH cambiar, DELETE borrar.

3Encabezados

Datos de contexto. Los dos que verás siempre: quién eres (Authorization) y en qué formato hablas (Content-Type: application/json).

4Cuerpo

Los datos que mandas (a quién y qué mensaje), escritos en JSON. Solo se usa con POST y PATCH.

La respuesta también trae dos cosas: un código de tres cifras (200 significa «todo bien»; los que empiezan con 4 son «hiciste algo mal»; con 5, «falló el servidor») y un JSON con lo que pediste o con el motivo del error.

No necesitas instalar nada para seguir esta guía: cada paso tiene un botón que hace la petición por ti y, debajo, el mismo código listo para copiar en tu lenguaje (curl, JavaScript, Python, PHP o Visual FoxPro).

1

Tu llave de acceso

Cómo le demuestras a WS Gateway quién eres

Cada petición debe llevar una llave que dice quién eres. Se llama token de sesión (técnicamente, un JWT) y la consigues iniciando sesión: le mandas tu correo y tu contraseña a POST /api/auth/login y te devuelve el token. Dura 7 días; cuando venza (recibirás un 401) vuelves a iniciar sesión.

Lo que pasa ahora mismo

Ya iniciaste sesión en el panel, por eso esta página ya tiene tu llave y puede hacer peticiones en tu nombre.

Trátalo como una contraseña: quien lo tenga puede actuar como tú. No lo pegues en chats ni lo publiques.

Así se pide en tu programa (con tu correo y contraseña reales):

2

Elige tu instancia

La línea de WhatsApp con la que vas a trabajar

Una instancia es una línea de WhatsApp vinculada a WS Gateway. Casi todas las peticiones dicen con cuál trabajar, poniendo su token de instancia en la dirección: /api/accounts/TOKEN/send.

Ojo, son dos «tokens» distintos. El token de sesión (paso 1) eres tú y vence a los 7 días. El token de instancia (este paso) es la identidad de la línea de WhatsApp y no vence nunca. Se usan juntos: el primero va en el encabezado, el segundo en la dirección.

Tus instancias

La petición que acabas de ver hacer, para tu programa:

3

Lee información

Tu primera petición GET: solo mira, no cambia nada

Las peticiones GET son las más seguras: solo leen. Prueba con la lista de chats de tu instancia. Verás la respuesta tal como la recibiría tu programa: primero el código y después el JSON.

Primero elige una instancia en el paso 2.

¿Cómo leo un JSON? Son pares "nombre": valor entre llaves { }; las listas van entre corchetes [ ]. Aquí success: true dice que salió bien y chats es la lista. Cada chat trae su id: lo usarás para pedir sus mensajes.

4

Envía tu primer mensaje

Una petición POST: esta sí hace algo de verdad

Con POST mandas datos en el cuerpo. Para enviar un mensaje necesitas dos: a quién (destino) y qué (mensaje). El código de abajo se actualiza mientras escribes.

Esto envía un WhatsApp real. Para probar, mándatelo a ti mismo o a alguien que sepa que lo recibirás. Nunca envíes en ráfagas: WhatsApp puede restringir un número que manda muchos mensajes seguidos.

Primero elige una instancia en el paso 2.
¿Y si quiero mandar un archivo (PDF, imagen)?

El archivo viaja dentro del JSON, convertido a texto con un formato llamado base64. Es el mismo endpoint, con un campo más (archivo):

5

Cuando algo sale mal

Los errores son normales: aprende a leerlos

Un error no es un fallo tuyo ni de la API: es la respuesta diciéndote qué corregir. Siempre trae el mismo formato, con un message en español que puedes mostrarle a tu usuario final y un raw_message técnico para tus registros.

¿Por qué a veces message y raw_message dicen lo mismo?

401 El error lo detecta WS Gateway

Falta un dato, no existe el chat, no llevas el token… El mensaje ya nace en español y no hay otra versión técnica, así que los dos campos traen el mismo texto. Es lo más común.

"provider_code": null,
"message":     "Falta la autenticación (encabezado Authorization).",
"raw_message": "Falta la autenticación (encabezado Authorization)."

403 El error viene de WhatsApp

Cuando WhatsApp rechaza un envío, message trae una frase clara para tu usuario y raw_message lo que respondió WhatsApp, con su código en provider_code. Aquí sí son distintos.

"provider_code": "463",
"message":     "Tu cuenta de WhatsApp ha sido restringida temporalmente.",
"raw_message": "WhatsApp rechazó el envío (código 463): …"

La regla es una sola: muestra message a tu usuario y guarda raw_message y provider_code en tus registros. Que a veces coincidan es normal.

CódigoQué significaQué hacer
200Todo salió bien.Lee los datos de la respuesta.
400La petición tiene datos incorrectos o le faltan campos.Lee message: dice qué campo corregir.
401No llevas token de sesión, ya venció, o (en el inicio de sesión) el correo o la contraseña no coinciden.Vuelve a iniciar sesión (paso 1); si ya estabas en el login, revisa los datos.
403No tienes permiso, tu cuenta aún no confirmó su WhatsApp, o el plan de la instancia no incluye esa función.Revisa el plan; message lo dice.
404No existe lo que pediste: un chat, una instancia, un número sin WhatsApp…Revisa el identificador que mandaste.
429Demasiados intentos seguidos.Espera unos minutos y reintenta más despacio.
500Algo falló dentro del servidor.No es tu petición: avisa al administrador.

Provoca un error a propósito (es inofensivo)

Así ves cómo llega uno de verdad:

6

Entérate de lo nuevo sin preguntar

Webhooks: que WS Gateway te avise

Hasta aquí tú preguntas (¿hay algo nuevo?). Repetir esa pregunta cada pocos segundos es lento e ineficiente. Con un webhook pasa al revés: le das a WS Gateway una dirección tuya y él te avisa cuando llega un mensaje o cambia la conexión de la instancia.

  1. Prepara una dirección pública en tu servidor que reciba POST (una dirección local como localhost se rechaza por seguridad).
  2. Regístrala con PATCH /api/accounts/{token}/webhook. La respuesta trae un secreto: guárdalo. Puedes volver a consultarlo con GET /api/accounts/{token}/webhook, pero cada vez que guardas la dirección con PATCH se genera uno nuevo y el anterior deja de servir.
  3. Cada aviso llega firmado en la cabecera X-WSGateway-Signature: compruébala con el secreto antes de confiar en él (ejemplo en la Guía rápida).

Disponible en instancias con plan Dedicado. Eventos: mensaje.nuevo, instancia.conectado e instancia.desconectado.

¡Ya sabes lo básico!

Qué sigue, según lo que necesites

  • Guía rápida — los endpoints más usados, límites y buenas prácticas.
  • Referencia completa — cada endpoint con todos sus campos, para probarlo aquí mismo.
  • Glosario — qué significa cada palabra técnica, en llano.