Wiselink Chat — API REST de mensajes

Documentación para integradores · el mensaje sale por la línea del comercial dueño de la cuenta

Resumen

API REST para enviar mensajes de WhatsApp a clientes desde Wiselink Chat. El mensaje sale desde la línea del comercial dueño de la cuenta del cliente (ruteo automático). Pensada para integraciones tipo Pipefy / iPass.

Solo texto: el enlace se incluye dentro de text. La API no envĂ­a botones ni archivos adjuntos.

1 · Endpoint

POST https://wiselinkchat.up.railway.app/api/messages

AutenticaciĂłn por header x-api-key. Sin rate-limit. Tope de body: 64 kb.

2 · Request

Headers:

Content-Type: application/json
x-api-key: wac_xxxxxxxxxxxxxxxxxxxxxxxx

Body (JSON):

{ "to": "5491150015510", "text": "Tu mensaje. El link va acá." }
  • to — telĂ©fono del cliente en formato internacional. Admite +, espacios y guiones (se conservan solo los dĂ­gitos).
  • text — cuerpo del mensaje (texto plano; los enlaces van en lĂ­nea).

3 · Respuestas

HTTPBodySignificado
200{"sent":true,"line":"…","owner":"…"}Enviado desde la línea del comercial dueño de la cuenta.
202{"queued":true,"owner":"…"}El dueño existe pero su línea está desconectada → encolado durable (reintenta solo al reconectar; no se descarta).
422{"error":"sin_propietario","detail":"…"}El número no tiene propietario de cuenta en Wiselink (o el propietario no es un usuario con línea).
400{"error":"falta_to" | "falta_text" | "to_invalido"}Falta o es inválido to / text.
401{"error":"api_key_invalida"}Key mala, inexistente o canal deshabilitado.
413{"error":"payload_too_large"}Body mayor a 64 kb.
502{"error":"send_error","detail":"…"}Error al enviar por la línea (transitorio; reintenta).

4 · Cómo se despacha el mensaje (ruteo owner-only)

  1. Se valida la x-api-key contra el canal. Inválida → 401.
  2. Se busca el propietario de la cuenta del cliente (el comercial dueño en Wiselink). Sin propietario → 422.
  3. Si el comercial tiene su línea conectada, el mensaje sale por esa línea → 200.
  4. Si el comercial existe pero su línea está caída, se encola de forma durable → 202; un proceso reintenta cada 30 s hasta que reconecta (los fallos de envío permanentes pasan a dead-letter tras 8 intentos; la línea caída nunca se descarta).
  5. Cada llamada queda registrada en la auditorĂ­a interna del canal.

5 · Ejemplos

curl (bash / macOS / Linux):

curl -X POST 'https://wiselinkchat.up.railway.app/api/messages' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wac_TU_KEY' \
  -d '{"to":"5491150015510","text":"Hola"}'

PowerShell (Windows):

$headers = @{ "x-api-key" = "wac_TU_KEY" }
$body = @{ to = "5491150015510"; text = "Hola" } | ConvertTo-Json
Invoke-RestMethod -Uri "https://wiselinkchat.up.railway.app/api/messages" -Method Post -ContentType "application/json" -Headers $headers -Body $body

6 · Seguridad

  • La API key se muestra una sola vez al crear/rotar el canal; el servidor guarda solo su hash (no se puede recuperar).
  • Si se pierde la key, se rota el canal (genera una nueva e invalida la anterior).
  • CompartĂ­ la key por un canal seguro. Una key por canal/integraciĂłn.
Wiselink Chat · Obertura PVC — documentación de integración