1. Guarda tus credenciales
La consola muestra el secreto API una sola vez. Guárdalo en el gestor de secretos de tu aplicación y nunca lo expongas en frontend, logs o repositorios.
NUNTIA_BASE_URL=https://nuntia.ecsecorp.com
NUNTIA_PROJECT_KEY=<workspace-key>
NUNTIA_API_SECRET=<api-secret>
2. Comprueba la salud del workspace
Este endpoint está disponible con autenticación incluso si el entitlement de mensajería todavía no está listo. Úsalo para mostrar bloqueos reales en tu automatización.
curl -sS "$NUNTIA_BASE_URL/api/v1/operations/health" \
-H "X-Nuntia-Project: $NUNTIA_PROJECT_KEY" \
-H "Authorization: Bearer $NUNTIA_API_SECRET"
3. Registra el webhook de tu aplicación
La URL debe ser HTTPS y cumplir la política de dominios del workspace. El secreto debe tener al menos 16 caracteres.
curl -sS -X POST "$NUNTIA_BASE_URL/api/v1/webhooks/client-subscriptions" \
-H "X-Nuntia-Project: $NUNTIA_PROJECT_KEY" \
-H "Authorization: Bearer $NUNTIA_API_SECRET" \
-H 'Content-Type: application/json' \
-d '{
"url": "https://<tu-dominio-publico>/webhooks/nuntia",
"secret": "<callback-secret-min-16-chars>",
"events": ["message.inbound.received", "message.status.updated"]
}'
4. Registra el consentimiento
Antes de enviar, conserva evidencia del opt-in del destinatario mediante POST /api/v1/contacts/consent. La fuente debe ser auditable desde tu aplicación.
5. Envía un mensaje
Usa una referencia propia estable para reconciliar el mensaje. Fuera de la ventana de atención de WhatsApp corresponde usar una plantilla aprobada.
curl -sS -X POST "$NUNTIA_BASE_URL/api/v1/messages/text" \
-H "X-Nuntia-Project: $NUNTIA_PROJECT_KEY" \
-H "Authorization: Bearer $NUNTIA_API_SECRET" \
-H 'Content-Type: application/json' \
-d '{
"phone_number_id": "<connected-phone-number-id>",
"to": "<destinatario-e164>",
"text": "<mensaje-autorizado>",
"client_reference": "<referencia-cliente>"
}'
6. Correlaciona el resultado
La aceptación devuelve HTTP 202 con un ID público y estado. Después recibirás message.status.updated en el webhook. También puedes consultar GET /api/v1/messages/{public_id}.