Use Wazaj for free — limited-time launch offer

Get started

Shared inbox, templates, teams, and campaigns in one workspace. Start without a credit card.

Referencia API

Guía de integración API Business

Sigue estos pasos solo servidor-a-servidor. No expongas claves API ni la URL base de tu despliegue en código de cliente.

Seguridad primero

Mantén las claves API solo en tu backend. No envíes nunca claves ni la URL base de tu despliegue en el navegador o en apps móviles.

Orden de integración

  1. Crear una clave API en la consola de desarrollador del workspace (gestionada por el propietario). El secreto en texto plano solo se muestra una vez — guárdalo en tu gestor de secretos o variables de entorno del servidor.
  2. Configurar la URL base en tu servidor: usa tu host HTTPS más /api/wazaj/business. Ejemplo de host de producción: https://transuptech.online. Prefiere leer el valor desde variables de entorno en lugar de hardcodearlo en bundles del cliente.
  3. Autenticar cada solicitud con la clave API (ver abajo). Estas rutas no usan cookies de sesión del navegador.
  4. Enviar mensajes con POST…/messages/text o …/messages/template, siempre con Content-Type: application/json.
  5. Manejar errores y reintentos: trata 401, 403, 422 y 503 de forma explícita; usa backoff exponencial para fallos transitorios.
  6. Operar las claves con seguridad: rótalas según un calendario y revoca de inmediato si hay una filtración.

URL base

Prefijo API completo para mensajería de negocio (ejemplo de despliegue): https://transuptech.online/api/wazaj/business

Ejemplo concreto (copia desde el bloque de abajo):

URL
https://transuptech.online/api/wazaj/business

Sustituye por tu propio origen en el código; los fragmentos siguientes usan $BASE_URL que al copiar se expande a este ejemplo.

Autenticación

Los endpoints de negocio aceptan tu clave API en cualquiera de estas formas:

  • X-API-Key: wzj_…
  • Authorization: Bearer wzj_…
  • Authorization: ApiKey wzj_…

Las claves ausentes, inválidas, caducadas o revocadas devuelven 401.

HTTP
Content-Type: application/json
X-API-Key: wzj_xxx

1. Enviar mensaje de texto

POST/messages/text

Ruta completa: https://transuptech.online/api/wazaj/business/messages/text

Cuerpo de la solicitud

CampoTipoObligatorioDescripción
tostringDestino en formato E.164 (p. ej. +50912345678)
bodystringTexto del mensaje
preview_urlbooleanNoComportamiento de vista previa de URL
reply_to_meta_message_idstring | nullNoId de mensaje Meta al que responder

JSON de ejemplo

JSON
{
  "to": "+50912345678",
  "body": "Hello from Wazaj API",
  "preview_url": false,
  "reply_to_meta_message_id": null
}

Éxito (200)

JSON
{
  "success": true,
  "message_id": 12345
}

cURL

Shell
curl -X POST "https://transuptech.online/api/wazaj/business/messages/text" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $WAZAJ_API_KEY" \
  -d '{
    "to": "+50912345678",
    "body": "Hello from Wazaj API",
    "preview_url": false
  }'

2. Enviar mensaje plantilla

POST/messages/template

Mismos encabezados que el texto: Content-Type: application/json y tu clave API.

Cuerpo de la solicitud

CampoTipoObligatorioDescripción
tostringDestino en formato E.164
template_namestringNombre de plantilla aprobado por Meta
template_languagestringCódigo de idioma de la plantilla (p. ej. en)
template_componentsarrayNoComponentes / parámetros de plantilla Meta

JSON de ejemplo

JSON
{
  "to": "+50912345678",
  "template_name": "order_update",
  "template_language": "en",
  "template_components": [
    {
      "type": "body",
      "parameters": [{ "type": "text", "text": "John" }]
    }
  ]
}

Éxito (200)

JSON
{
  "success": true,
  "message_id": 12346
}

cURL

Shell
curl -X POST "https://transuptech.online/api/wazaj/business/messages/template" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $WAZAJ_API_KEY" \
  -d '{
    "to": "+50912345678",
    "template_name": "order_update",
    "template_language": "en",
    "template_components": [
      {
        "type": "body",
        "parameters": [{ "type": "text", "text": "John" }]
      }
    ]
  }'

Respuestas de error

401 No autorizado— clave API ausente o inválida.

JSON
{
  "success": false,
  "message": "Unauthorized"
}

403 Prohibido— cuenta desconectada o bloqueada para enviar.

JSON
{
  "success": false,
  "message": "Wazaj account disconnected"
}

422 Entidad no procesable — validación o reglas de negocio (ejemplos: billing_send_denied, templates_not_entitled).

JSON
{
  "success": false,
  "message": "Validation failed",
  "errors": {
    "to": ["The to field is required."]
  }
}

503 Servicio no disponible— módulo de mensajería o aguas abajo no listo. Reintenta con backoff.

Lista de comprobación

  1. Crear una clave API desde la consola de desarrollador.
  2. Guardar el secreto en un almacén o variable de entorno solo del servidor.
  3. Llamar a los endpoints de negocio solo desde código servidor a servidor.
  4. Registrar respuestas distintas de 2xx e implementar reintento/backoff cuando corresponda.
  5. Rotar claves según calendario; revocar de inmediato si hay compromiso.