Ir al contenido

Webhooks

Configure suscripciones de webhook para recibir notificaciones en tiempo real en su sistema externo cuando ocurran eventos importantes en ALTUM ERP.

  • Permiso integraciones.webhook.gestionar en ALTUM ERP.
  • Un endpoint HTTPS en su servidor capaz de recibir peticiones POST con cuerpo JSON.

Navegue a Integraciones → Webhooks para ver y gestionar las suscripciones activas.

Pantalla de Webhooks

La tabla muestra las suscripciones existentes con las columnas:

Columna Descripción
URL de destino Endpoint donde ALTUM ERP enviará las notificaciones.
Eventos suscritos Lista de tipos de evento que activarán entregas a este webhook.
Tasa de éxito Porcentaje de entregas exitosas sobre el total de intentos.
Última entrega Fecha y hora de la última entrega exitosa.
Estado Activo o inactivo.

Paso 1: Abrir el formulario de nueva suscripción

Sección titulada «Paso 1: Abrir el formulario de nueva suscripción»

Haga clic en el botón Nueva Suscripción en la pantalla de Webhooks.

Formulario de nueva suscripción de webhook

Campo Descripción
URL Dirección HTTPS de su endpoint (obligatorio). Debe comenzar con https://. Durante desarrollo local se permite http://localhost.
Descripción Texto opcional para identificar el propósito de la suscripción.
Eventos Selección múltiple de los tipos de evento a recibir. Debe elegir al menos uno.

Al guardar, el sistema genera un signing secret único (64 caracteres hexadecimales). Este secret se muestra una sola vez en un diálogo de confirmación.

Diálogo de signing secret

El signing secret se usa para verificar la autenticidad de las notificaciones recibidas en su endpoint (ver sección Seguridad y verificación de firma).

Abra el detalle de una suscripción haciendo clic en su fila para ver el historial de entregas individuales.

Historial de entregas de un webhook

Cada entrega muestra:

Campo Descripción
Estado PENDING, DELIVERED, RETRYING o FAILED.
Código HTTP Código de respuesta devuelto por su endpoint.
Fecha del intento Fecha y hora del intento de entrega.
Duración Tiempo de respuesta del endpoint en milisegundos.

Para reenviar manualmente una entrega con estado FAILED, use el botón Reintentar en el detalle de la entrega. El sistema envia una nueva petición con el mismo payload original.

Use el interruptor de estado en la tabla de suscripciones para activar o desactivar una suscripción sin eliminarla. Las suscripciones inactivas no reciben entregas.

Desde el detalle de una suscripción, use el botón Enviar Ping para enviar una notificación de prueba a su endpoint. El ping confirma que la URL está accesible y que la firma se verifica correctamente.

Si el signing secret se compromete, use el botón Regenerar Secret en el detalle de la suscripción. El nuevo secret se mostrará una sola vez, igual que al crear la suscripción.

Cada entrega incluye el header X-Altum-Signature con una firma HMAC-SHA256 del cuerpo JSON usando el signing secret. Para verificar la autenticidad:

firma = HMAC-SHA256(signing_secret, cuerpo_json_raw)
X-Altum-Signature: sha256=<firma_en_hex>

Compare el valor calculado con el valor recibido en el header. Si no coinciden, rechace la petición.

Cuando su endpoint responde con un código que no es 2xx (o no responde dentro del timeout), ALTUM ERP reintenta la entrega con el siguiente ciclo de estados:

Estado Descripción
PENDING Primer intento en cola.
RETRYING Al menos un intento falló; próximo reintento programado.
DELIVERED Respuesta HTTP 2xx recibida; entrega exitosa.
FAILED Todos los reintentos se agotaron sin respuesta exitosa.
  • Máximo 20 suscripciones activas por empresa.
  • La URL debe usar HTTPS en producción (http://localhost únicamente para desarrollo).
  • Cada suscripción puede suscribirse a uno o más de los 15 tipos de evento disponibles (ver Catálogo de Eventos).

Mi endpoint recibe las notificaciones pero la firma no coincide. Asegúrese de calcular la firma sobre el cuerpo raw (bytes exactos), no sobre el JSON parseado y re-serializado. Cualquier diferencia de espacios o saltos de línea invalidará la firma.

Las entregas quedan en estado FAILED. Verifique que su endpoint responde con HTTP 2xx dentro del tiempo de respuesta esperado. Revise que la URL sea accesible desde internet y que no requiera autenticación adicional.

Llegué al límite de 20 suscripciones. Elimine suscripciones que ya no se usen o desactive las innecesarias para liberar cupo.