# Eventos (https://docs.pulsarml.com/es/webhooks/events)

Todos los tipos de evento de webhook, cuándo se envían y los campos que incluyen.



El `eventType` de cada notificación indica qué pasó, y su objeto `event` lleva los datos. El [sobre](/es/webhooks#body) que lo envuelve es el mismo para todos los eventos.

| Tipo de evento                                 | Se envía cuando                         |
| ---------------------------------------------- | --------------------------------------- |
| [`MachineStopClassificationCreated`](#created) | Se clasifica un paro de máquina.        |
| [`MachineStopClassificationUpdated`](#updated) | Cambia la clasificación de un paro.     |
| [`MachineStopClassificationDeleted`](#deleted) | Se elimina la clasificación de un paro. |
| [`Ping`](/es/webhooks#ping-events)             | Pulsar prueba tu endpoint.              |

## Clasificaciones de paros de máquina [#machine-stop-classifications]

Cuando una máquina se detiene, Pulsar registra el paro. **Clasificarlo** significa registrar por qué ocurrió: una causa general, opcionalmente una causa más específica y el componente involucrado, y una descripción en texto libre. Una clasificación la captura una persona o la aplica automáticamente una regla.

Los tres eventos de clasificación llevan el mismo objeto `event`:

| Campo                 | Tipo           | Descripción                                                                                                                |
| --------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `machine`             | string         | El nombre de la máquina en Pulsar.                                                                                         |
| `machineExternalName` | string \| null | El nombre externo de la máquina, por ejemplo su ID en tu ERP. `null` si no tiene.                                          |
| `start`               | string         | Cuándo empezó el paro, como marca de tiempo UTC ISO 8601.                                                                  |
| `end`                 | string \| null | Cuándo terminó el paro, como marca de tiempo UTC ISO 8601. Puede ser `null`.                                               |
| `operator`            | string \| null | Nombre completo del operador que estaba en la máquina cuando empezó el paro. `null` si no había nadie con sesión iniciada. |
| `generalCause`        | string \| null | Nombre de la causa general.                                                                                                |
| `specificCause`       | string \| null | Nombre de la causa específica.                                                                                             |
| `component`           | string \| null | Nombre del componente involucrado.                                                                                         |
| `description`         | string \| null | Descripción del paro en texto libre.                                                                                       |
| `isAutomated`         | boolean        | `true` si la clasificación la aplicó automáticamente una regla, `false` si la capturó una persona.                         |

Un paro se identifica por su máquina y su `start`. Usa ese par para relacionar una actualización o eliminación con un paro que ya conoces.

<Callout title="Nombres, no IDs">
  Las máquinas, causas, componentes y operadores se envían por nombre. Si alguno cambia de nombre en Pulsar, los eventos posteriores llevan el nombre nuevo.
</Callout>

### Creada [#created]

`MachineStopClassificationCreated` se envía cuando un paro se clasifica por primera vez.

```json
{
  "eventId": "8d2f6c1e-4b7a-4f0e-9a3c-5e1d7b9f2a64",
  "eventTimestamp": "2026-09-25T14:03:12.482Z",
  "eventType": "MachineStopClassificationCreated",
  "event": {
    "machine": "Inyectora 4",
    "machineExternalName": "INJ-004",
    "start": "2026-09-25T13:41:07.000Z",
    "end": "2026-09-25T13:58:30.000Z",
    "operator": "Ana Torres",
    "generalCause": "Falla mecánica",
    "specificCause": "Atasco en el molde",
    "component": "Perno expulsor",
    "description": "Pieza atorada en la cavidad 2, se liberó manualmente",
    "isAutomated": false
  }
}
```

### Actualizada [#updated]

`MachineStopClassificationUpdated` se envía cuando cambia una clasificación existente, por ejemplo cuando alguien corrige la causa. El objeto `event` lleva los valores actuales de la clasificación.

```json
{
  "eventId": "c41a7e09-2d6b-4f38-9e15-7b0c3a9d4f22",
  "eventTimestamp": "2026-09-25T14:20:45.117Z",
  "eventType": "MachineStopClassificationUpdated",
  "event": {
    "machine": "Inyectora 4",
    "machineExternalName": "INJ-004",
    "start": "2026-09-25T13:41:07.000Z",
    "end": "2026-09-25T13:58:30.000Z",
    "operator": "Ana Torres",
    "generalCause": "Falla mecánica",
    "specificCause": "Falla del expulsor",
    "component": "Perno expulsor",
    "description": "Perno expulsor doblado, se reemplazó",
    "isAutomated": false
  }
}
```

### Eliminada [#deleted]

`MachineStopClassificationDeleted` se envía cuando se elimina una clasificación y el paro queda sin clasificar. Las causas, el componente, la descripción e `isAutomated` describen la clasificación **tal como estaba antes de eliminarse**. La máquina, los horarios del paro y el operador vienen de los registros actuales de Pulsar.

```json
{
  "eventId": "5e93b0d7-8a14-4c6f-b2e8-1d7f0a3c9b56",
  "eventTimestamp": "2026-09-25T15:02:09.804Z",
  "eventType": "MachineStopClassificationDeleted",
  "event": {
    "machine": "Inyectora 4",
    "machineExternalName": "INJ-004",
    "start": "2026-09-25T13:41:07.000Z",
    "end": "2026-09-25T13:58:30.000Z",
    "operator": "Ana Torres",
    "generalCause": "Falla mecánica",
    "specificCause": "Falla del expulsor",
    "component": "Perno expulsor",
    "description": "Perno expulsor doblado, se reemplazó",
    "isAutomated": false
  }
}
```

## Los datos del evento se leen al momento de la entrega [#event-data-is-read-at-delivery-time]

En los eventos de creación y actualización, Pulsar lee la clasificación cuando prepara la notificación por primera vez, no en el instante del cambio. Si una clasificación cambia dos veces seguidas, ambos eventos pueden llevar los valores más recientes. Trata cada evento como "así se ve ahora la clasificación de este paro", no como el registro de una edición en particular.

Un reintento o reenvío vuelve a enviar exactamente el mismo cuerpo que el primer intento, así que nunca incluye cambios posteriores.
