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
- 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.
- 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. - Autenticar cada solicitud con la clave API (ver abajo). Estas rutas no usan cookies de sesión del navegador.
- Enviar mensajes con POST
…/messages/texto…/messages/template, siempre conContent-Type: application/json. - Manejar errores y reintentos: trata 401, 403, 422 y 503 de forma explícita; usa backoff exponencial para fallos transitorios.
- 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):
https://transuptech.online/api/wazaj/businessSustituye 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.
Content-Type: application/json
X-API-Key: wzj_xxx1. Enviar mensaje de texto
POST/messages/text
Ruta completa: https://transuptech.online/api/wazaj/business/messages/text
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| to | string | Sí | Destino en formato E.164 (p. ej. +50912345678) |
| body | string | Sí | Texto del mensaje |
| preview_url | boolean | No | Comportamiento de vista previa de URL |
| reply_to_meta_message_id | string | null | No | Id de mensaje Meta al que responder |
JSON de ejemplo
{
"to": "+50912345678",
"body": "Hello from Wazaj API",
"preview_url": false,
"reply_to_meta_message_id": null
}Éxito (200)
{
"success": true,
"message_id": 12345
}cURL
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
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| to | string | Sí | Destino en formato E.164 |
| template_name | string | Sí | Nombre de plantilla aprobado por Meta |
| template_language | string | Sí | Código de idioma de la plantilla (p. ej. en) |
| template_components | array | No | Componentes / parámetros de plantilla Meta |
JSON de ejemplo
{
"to": "+50912345678",
"template_name": "order_update",
"template_language": "en",
"template_components": [
{
"type": "body",
"parameters": [{ "type": "text", "text": "John" }]
}
]
}Éxito (200)
{
"success": true,
"message_id": 12346
}cURL
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.
{
"success": false,
"message": "Unauthorized"
}403 Prohibido— cuenta desconectada o bloqueada para enviar.
{
"success": false,
"message": "Wazaj account disconnected"
}422 Entidad no procesable — validación o reglas de negocio (ejemplos: billing_send_denied, templates_not_entitled).
{
"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
- Crear una clave API desde la consola de desarrollador.
- Guardar el secreto en un almacén o variable de entorno solo del servidor.
- Llamar a los endpoints de negocio solo desde código servidor a servidor.
- Registrar respuestas distintas de 2xx e implementar reintento/backoff cuando corresponda.
- Rotar claves según calendario; revocar de inmediato si hay compromiso.