Webhooks

Envía los eventos de Netzo a tu servicio, firmados: tipos de evento, configuración, contenido, firma y entrega.

Un webhook envía una solicitud HTTP firmada a tu URL cuando ocurre un evento en Netzo.

salesorders.approvePOST a tu URL (firmado)2xxsin 2xx, o sin respuesta en 10 s: Netzo reintenta hasta 3 vecesNetzoTu servicioNetzoTu servicio

Tipos de evento

El tipo de evento es <tabla>.<evento>:

EventoSe envía cuandoEjemplo
Una acciónse ejecuta la acciónsalesorders.approve, salesquotes.send
Un evento declaradoel registro llega solo a un estadofinancesinvoices.overdue

Cada tabla en Dominios lista sus acciones y eventos. Un agente lee el catálogo de eventos de las tablas que puede ver en el recurso MCP netzo://events/catalog; un programa, en la sección webhooks de OpenAPI.

Crea un webhook

En Administración → Integraciones → Webhooks, elige la tabla, el evento, una condición opcional y tu URL. Copia el secreto de firma (whsec_…). Los webhooks también son registros, así que la API, la CLI y MCP pueden crearlos.

Contenido

El cuerpo es:

{
  "type": "salesorders.approve",
  "timestamp": "2026-11-10T14:03:12.000Z",
  "data": {
    "id": "evt_…",
    "tableUid": "salesorders",
    "event": "approve",
    "recordId": "so_…",
    "dataBefore": { },
    "dataAfter": { },
    "diff": { },
    "userId": "usr_…"
  }
}

Firma

Cada solicitud lleva tres encabezados:

EncabezadoContiene
webhook-idEl id del evento, el mismo en cada reintento
webhook-timestampCuándo Netzo envió la solicitud, en segundos Unix
webhook-signatureUn HMAC-SHA256 de la solicitud con tu secreto de firma (whsec_…)

Rechaza una solicitud cuya hora esté a más de 5 minutos de tu reloj. Netzo sigue Standard Webhooks. Usa cualquier biblioteca de Standard Webhooks con tu secreto de firma; revisa la firma y la hora por ti:

import { Webhook } from 'standardwebhooks'

const wh = new Webhook(process.env.NETZO_WEBHOOK_SECRET)
const event = wh.verify(rawBody, headers) // falla si la firma o la hora no son válidas

Entrega

ReglaValor
ÉxitoCualquier respuesta 2xx
Tiempo límite10 segundos
ReintentosHasta 3, cuando no hay 2xx o no hay respuesta

data.id es el mismo en cada reintento: guárdalo y omite un evento que ya procesaste.