Saltar al contenido
WAQR viene incluido con Emboxia, Zygore y AXEN.Ver cómo

Para desarrolladores

WhatsApp en tu software con una API que se explica sola

REST y JSON, autenticación por Bearer, idempotencia en los envíos, errores legibles y webhooks firmados. Tú escribes la integración; nosotros mantenemos la infraestructura de conexión.

https://api.waqr.app/v1

  • Claves con permisos acotados

    Cada clave de API tiene los permisos que tú eliges y accede solo a las conexiones que autorices. Se muestran una vez y se pueden rotar o revocar.

  • Idempotencia en cada envío

    Los POST que envían mensajes exigen Idempotency-Key. Si reintentas, no se duplica el mensaje.

  • Errores que se entienden

    Respuestas application/problem+json (RFC 9457) con código, detalle y X-Request-Id para rastrear cualquier petición.

  • Webhooks firmados

    Cada entrega va firmada con HMAC-SHA256 y marca de tiempo. Reintentos con backoff si tu servidor no responde.

  • Límites visibles

    Cabeceras RateLimit-* en cada respuesta y 429 con Retry-After cuando tocas el límite de tu plan.

  • Paginación por cursor

    Listados estables con cursor opaco, pensados para sincronizar sin perder ni repetir registros.

Enviar un mensaje

Una petición. Un mensaje en camino.

Indicas la conexión, el destinatario en formato E.164 y el contenido. La respuesta trae el id del mensaje y su estado inicial; el resto llega por webhook.

Petición
curl -X POST https://api.waqr.app/v1/connections/conn_01J9ZQ4V8K/messages \
  -H "Authorization: Bearer wqk_live_xxx" \
  -H "Idempotency-Key: 6c4e2a8e-1f0b-4c7a-9b2e-0f1d2c3b4a5f" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+51987654321",
    "type": "text",
    "text": "Hola, tu pedido está listo."
  }'
Respuesta
{
  "id": "msg_01J9ZQ5C2M",
  "conversationId": "conv_01J9ZQ3T7A",
  "status": "pending",
  "createdAt": "2026-10-14T15:04:05Z"
}

Webhooks

Recibe eventos en tiempo real

Registra un endpoint HTTPS desde el panel y elige qué eventos quieres: mensajes recibidos, enviados, cambios de estado, cambios en la conexión y revocaciones.

  1. 1 Recalcula HMAC-SHA256 de «{t}.{cuerpo crudo}» con tu secreto y compara en tiempo constante.
  2. 2 Rechaza entregas con una marca de tiempo de más de 5 minutos.
  3. 3 Deduplica con WAQR-Delivery o con el id del evento: la entrega es at-least-once.
Cabeceras de una entrega
POST https://tu-sistema.example/webhooks/waqr
Content-Type: application/json
WAQR-Event: message.received
WAQR-Delivery: dlv_0192a3b4c5d6
WAQR-Signature: t=1760454245,v1=5f2b9c…
Verificación en Node.js
import { createHmac, timingSafeEqual } from "node:crypto";

export function verifyWaqrSignature(rawBody: string, header: string, secret: string) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
  const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
  return fresh && timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

Recursos

Lo esencial de la API v1

  • GET /connections Conexiones a las que tiene acceso tu clave y su estado.
  • POST /connections/{id}/messages Envía texto o archivos. Requiere Idempotency-Key.
  • GET /conversations Conversaciones con filtros por conexión y estado, paginadas por cursor.
  • GET /conversations/{id}/messages Historial de una conversación.
  • GET /contacts Contactos con búsqueda por nombre o número.
  • GET /attachments/{id}/url URL firmada y temporal para descargar un archivo.
  • POST /webhook-endpoints Registra un endpoint y recibe su secreto de firma.
  • GET /webhook-endpoints/{id}/deliveries Últimas entregas, respuestas y errores de tu endpoint.

Documentación completa, en camino

La referencia generada desde OpenAPI y las guías paso a paso se publicarán junto con la beta. Mientras tanto, esta página y el panel tienen lo necesario para enviar tu primer mensaje; si te atascas, escríbenos.

Hablar con nosotros

Tu WhatsApp no debería estar aislado de tus sistemas.

Conéctalo una vez y úsalo donde lo necesites.

¿Usas Emboxia, Zygore o AXEN? Conéctalo desde tu cuenta