Saltar al contenido principal
Cada webhook envía un cuerpo JSON con un sobre común y un campo payload específico del evento. El contrato concreto depende de eventName, majorVersion y minorVersion.

Campos que debes esperar

CampoUso
attemptIdIdentifica el intento de entrega.
workspaceIdentifica el espacio de trabajo que emitió el evento.
eventIdPermite deduplicar el evento de negocio entre reintentos.
eventNameIndica qué ocurrió.
entityEntidad principal afectada por el evento.
entityIdIdentificador de la entidad principal.
occurredOnFecha y hora en que ocurrió el evento.
majorVersionVersión mayor del contrato.
minorVersionVersión menor del contrato.
payloadDatos concretos del evento.
attemptNumberNúmero de intento de entrega.
isLastAttemptIndica si Bold considera que es el último intento automático.
No todos los eventos incluyen una copia completa de la entidad. Diseña tu consumidor para llamar a la API cuando necesite el estado actual.

Ejemplo orientativo

{
  "attemptId": "whatt_01J1D4Y7KTX8N8Y3H7A0",
  "workspace": "acme-industrial",
  "eventId": "7db3a285-87f0-4b78-a312-493a2e280f2d",
  "eventName": "Planning.SalesOrder.LineConfirmed",
  "entity": "Planning.SalesOrder",
  "entityId": "sales-order-123",
  "occurredOn": "2026-06-25T10:30:00Z",
  "majorVersion": 1,
  "minorVersion": 0,
  "payload": {
    "orderId": "sales-order-123",
    "lineId": "sales-order-line-456",
    "skuId": "sku-789",
    "quantity": 24,
    "pendingQuantity": 24
  },
  "attemptNumber": 1,
  "isLastAttempt": false
}

Buenas prácticas

Mantén validadores separados si consumes más de una versión mayor del mismo evento. No asumas que dos versiones tienen los mismos campos.
Los nombres visibles pueden cambiar. Usa id o reference para reconciliar datos entre sistemas.
Conserva el JSON recibido durante el tiempo necesario para auditoría. Facilita depuración si un sistema externo falla.
Trata los datos enviados como información sensible. Pueden contener referencias operativas, clientes, proveedores o cantidades de producción.

Deduplicación

Usa eventId para evitar procesar dos veces el mismo evento de negocio. Usa attemptId solo para auditar una entrega concreta. Un reintento conserva el mismo eventId, pero genera un nuevo attemptId.
Si recibes el mismo eventId con otro attemptNumber, devuelve 2xx después de confirmar que ya lo procesaste.