Catálogo de eventos

Cada evento de webhook con el momento en que se envía, los campos de data y un ejemplo de carga.

En esta página

Eventos que Chainlink envía a las suscripciones. Todos llegan en el mismo sobre (event, version, data, timestamp) y firmados con X-Chainlink-Signature. La suscripción y la verificación de la firma se describen en Recepción y verificación.

Recepciones

receipt.created Recepción creada #

Se creó una recepción para un documento de entrada.

Campos de data
  • id integer obligatorio
  • concept string | null
  • status string obligatorio
  • document objeto | null
    2 campos de document
    • type string | null
    • doc_num string | integer | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • started_at string (date-time) | null
  • finalized_at string (date-time) | null
  • lines array de objetos obligatorio
    4 campos de lines
    • item_code string | null
    • qty number
    • batch string | null
    • serials array de textos
Carga de receipt.created
{
    "event": "receipt.created",
    "version": 1,
    "data": {
        "id": 5531,
        "concept": "purchase_order",
        "status": "pending",
        "document": {
            "type": "App\\Models\\DeliveryGood",
            "doc_num": "OC-000318"
        },
        "operator": {
            "id": 12,
            "name": "Juan Pérez"
        },
        "started_at": null,
        "finalized_at": null,
        "lines": []
    },
    "timestamp": 1791302400
}
receipt.completed Recepción finalizada #

El operador finalizó la recepción; lines trae lo recibido.

Campos de data
  • id integer obligatorio
  • concept string | null
  • status string obligatorio
  • document objeto | null
    2 campos de document
    • type string | null
    • doc_num string | integer | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • started_at string (date-time) | null
  • finalized_at string (date-time) | null
  • lines array de objetos obligatorio
    4 campos de lines
    • item_code string | null
    • qty number
    • batch string | null
    • serials array de textos
Carga de receipt.completed
{
    "event": "receipt.completed",
    "version": 1,
    "data": {
        "id": 5531,
        "concept": "purchase_order",
        "status": "finalized",
        "document": {
            "type": "App\\Models\\DeliveryGood",
            "doc_num": "OC-000318"
        },
        "operator": {
            "id": 12,
            "name": "Juan Pérez"
        },
        "started_at": "2026-10-06T11:01:00-06:00",
        "finalized_at": "2026-10-06T11:12:44-06:00",
        "lines": [
            {
                "item_code": "P-1001",
                "qty": 48,
                "batch": "L2610",
                "serials": []
            }
        ]
    },
    "timestamp": 1791302400
}

Surtidos

picking.created Surtido creado #

Se creó un surtido para un documento de salida.

Campos de data
  • id integer obligatorio
  • concept string | null
  • status string obligatorio
  • document objeto | null
    2 campos de document
    • type string | null
    • doc_num string | integer | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • started_at string (date-time) | null
  • finalized_at string (date-time) | null
  • lines array de objetos obligatorio
    4 campos de lines
    • item_code string | null
    • qty number
    • batch string | null
    • serials array de textos
  • code string obligatorio
Carga de picking.created
{
    "event": "picking.created",
    "version": 1,
    "data": {
        "id": 6120,
        "code": "PKG-6120",
        "concept": "sale_order",
        "status": "pending",
        "document": {
            "type": "App\\Models\\DispatchGood",
            "doc_num": "OV-000977"
        },
        "operator": null,
        "started_at": null,
        "finalized_at": null,
        "lines": []
    },
    "timestamp": 1791302400
}
picking.completed Surtido finalizado #

El surtido terminó; lines trae lo surtido con lotes y series.

Campos de data
  • id integer obligatorio
  • concept string | null
  • status string obligatorio
  • document objeto | null
    2 campos de document
    • type string | null
    • doc_num string | integer | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • started_at string (date-time) | null
  • finalized_at string (date-time) | null
  • lines array de objetos obligatorio
    4 campos de lines
    • item_code string | null
    • qty number
    • batch string | null
    • serials array de textos
  • code string obligatorio
Carga de picking.completed
{
    "event": "picking.completed",
    "version": 1,
    "data": {
        "id": 6120,
        "code": "PKG-6120",
        "concept": "sale_order",
        "status": "finalized",
        "document": {
            "type": "App\\Models\\DispatchGood",
            "doc_num": "OV-000977"
        },
        "operator": {
            "id": 14,
            "name": "Ana Ruiz"
        },
        "started_at": "2026-10-06T12:00:00-06:00",
        "finalized_at": "2026-10-06T12:09:30-06:00",
        "lines": [
            {
                "item_code": "P-1001",
                "qty": 6,
                "batch": "L2610",
                "serials": []
            }
        ]
    },
    "timestamp": 1791302400
}

Traspasos

transfer.created Traspaso creado #

Se registró un movimiento entre ubicaciones o almacenes.

Campos de data
  • id integer obligatorio
  • status string obligatorio
  • from_whs_code string | null
  • to_whs_code string | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • lines array de objetos obligatorio
    6 campos de lines
    • item_code string | null
    • qty number
    • from_position string | null
    • to_position string | null
    • batch string | null
    • serial string | null
Carga de transfer.created
{
    "event": "transfer.created",
    "version": 1,
    "data": {
        "id": 880,
        "status": "pending",
        "from_whs_code": "CEDIS-GDL",
        "to_whs_code": "CEDIS-GDL",
        "operator": {
            "id": 12,
            "name": "Juan Pérez"
        },
        "lines": [
            {
                "item_code": "P-1001",
                "qty": 12,
                "from_position": "RECEPCION",
                "to_position": "A-01-01-1",
                "batch": "L2610",
                "serial": null
            }
        ]
    },
    "timestamp": 1791302400
}
transfer.completed Traspaso aplicado #

El movimiento se aplicó a las existencias.

Campos de data
  • id integer obligatorio
  • status string obligatorio
  • from_whs_code string | null
  • to_whs_code string | null
  • operator objeto | null

    La persona que hizo el trabajo.

    2 campos de operator
    • id integer obligatorio
    • name string | null obligatorio
  • lines array de objetos obligatorio
    6 campos de lines
    • item_code string | null
    • qty number
    • from_position string | null
    • to_position string | null
    • batch string | null
    • serial string | null
Carga de transfer.completed
{
    "event": "transfer.completed",
    "version": 1,
    "data": {
        "id": 880,
        "status": "transferred",
        "from_whs_code": "CEDIS-GDL",
        "to_whs_code": "CEDIS-GDL",
        "operator": {
            "id": 12,
            "name": "Juan Pérez"
        },
        "lines": [
            {
                "item_code": "P-1001",
                "qty": 12,
                "from_position": "RECEPCION",
                "to_position": "A-01-01-1",
                "batch": "L2610",
                "serial": null
            }
        ]
    },
    "timestamp": 1791302400
}

Órdenes de transferencia

transfer.dispatched Orden de transferencia despachada #

La mercancía salió del almacén de origen.

Campos de data
  • object string «transfer_order» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • status string obligatorio
    Valores: draft, released, picking, picked, in_transit, receiving, received, closed, cancelled
  • status_label string
  • headline string | null
  • has_discrepancy boolean

    Lo recibido no coincide con lo despachado.

  • from objeto obligatorio
    3 campos de from
    • id integer | null
    • code string | null
    • name string | null
  • to objeto obligatorio
    3 campos de to
    • id integer | null
    • code string | null
    • name string | null
  • priority integer
  • reason string | null
  • due_at string (date-time) | null
  • lines_count integer
  • units objeto obligatorio
    4 campos de units
    • requested number
    • picked number
    • dispatched number
    • received number
  • dispatched_at string (date-time) | null
  • received_at string (date-time) | null
  • closed_at string (date-time) | null
  • seal_number string | null
  • vehicle_plate string | null
  • carrier_id integer | null
  • external_ref string | null
  • source string
    Valores: web, api, import, sap
  • picking_id integer | null
  • receipt_id integer | null
  • sap objeto | null

    Estado del envío al ERP cuando aplica.

  • lines array de objetos | null

    null en el listado; en el detalle, las líneas.

    11 campos de lines
    • id integer
    • line_num integer
    • product_id integer | null
    • item_code string | null
    • qty number
    • picked_qty number
    • dispatched_qty number
    • received_qty number
    • batch_num string | null
    • serial_numbers array de textos
    • status string
Carga de transfer.dispatched
{
    "event": "transfer.dispatched",
    "version": 1,
    "data": {
        "object": "transfer_order",
        "id": 41,
        "code": "TR-000041",
        "status": "in_transit",
        "status_label": "En tránsito",
        "headline": "CEDIS-GDL → TDA-MTY",
        "has_discrepancy": false,
        "from": {
            "id": 1,
            "code": "CEDIS-GDL",
            "name": "CEDIS Guadalajara"
        },
        "to": {
            "id": 2,
            "code": "TDA-MTY",
            "name": "Tienda Monterrey"
        },
        "priority": 50,
        "reason": "Reabasto semanal",
        "due_at": "2026-10-08T18:00:00-06:00",
        "lines_count": 1,
        "units": {
            "requested": 24,
            "picked": 24,
            "dispatched": 24,
            "received": 0
        },
        "dispatched_at": "2026-10-07T09:30:00-06:00",
        "received_at": null,
        "closed_at": null,
        "seal_number": "S-99812",
        "vehicle_plate": "JAL-123-A",
        "carrier_id": 3,
        "external_ref": "TR-2026-0107",
        "source": "api",
        "picking_id": 6120,
        "receipt_id": null,
        "sap": null,
        "lines": [
            {
                "id": 77,
                "line_num": 0,
                "product_id": 101,
                "item_code": "P-1001",
                "qty": 24,
                "picked_qty": 24,
                "dispatched_qty": 24,
                "received_qty": 0,
                "batch_num": null,
                "serial_numbers": [],
                "status": "dispatched"
            }
        ]
    },
    "timestamp": 1791302400
}
transfer.received Orden de transferencia recibida #

El almacén de destino recibió la mercancía; has_discrepancy indica diferencias.

Campos de data
  • object string «transfer_order» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • status string obligatorio
    Valores: draft, released, picking, picked, in_transit, receiving, received, closed, cancelled
  • status_label string
  • headline string | null
  • has_discrepancy boolean

    Lo recibido no coincide con lo despachado.

  • from objeto obligatorio
    3 campos de from
    • id integer | null
    • code string | null
    • name string | null
  • to objeto obligatorio
    3 campos de to
    • id integer | null
    • code string | null
    • name string | null
  • priority integer
  • reason string | null
  • due_at string (date-time) | null
  • lines_count integer
  • units objeto obligatorio
    4 campos de units
    • requested number
    • picked number
    • dispatched number
    • received number
  • dispatched_at string (date-time) | null
  • received_at string (date-time) | null
  • closed_at string (date-time) | null
  • seal_number string | null
  • vehicle_plate string | null
  • carrier_id integer | null
  • external_ref string | null
  • source string
    Valores: web, api, import, sap
  • picking_id integer | null
  • receipt_id integer | null
  • sap objeto | null

    Estado del envío al ERP cuando aplica.

  • lines array de objetos | null

    null en el listado; en el detalle, las líneas.

    11 campos de lines
    • id integer
    • line_num integer
    • product_id integer | null
    • item_code string | null
    • qty number
    • picked_qty number
    • dispatched_qty number
    • received_qty number
    • batch_num string | null
    • serial_numbers array de textos
    • status string
Carga de transfer.received
{
    "event": "transfer.received",
    "version": 1,
    "data": {
        "object": "transfer_order",
        "id": 41,
        "code": "TR-000041",
        "status": "received",
        "status_label": "En tránsito",
        "headline": "CEDIS-GDL → TDA-MTY",
        "has_discrepancy": false,
        "from": {
            "id": 1,
            "code": "CEDIS-GDL",
            "name": "CEDIS Guadalajara"
        },
        "to": {
            "id": 2,
            "code": "TDA-MTY",
            "name": "Tienda Monterrey"
        },
        "priority": 50,
        "reason": "Reabasto semanal",
        "due_at": "2026-10-08T18:00:00-06:00",
        "lines_count": 1,
        "units": {
            "requested": 24,
            "picked": 24,
            "dispatched": 24,
            "received": 0
        },
        "dispatched_at": "2026-10-07T09:30:00-06:00",
        "received_at": null,
        "closed_at": null,
        "seal_number": "S-99812",
        "vehicle_plate": "JAL-123-A",
        "carrier_id": 3,
        "external_ref": "TR-2026-0107",
        "source": "api",
        "picking_id": 6120,
        "receipt_id": null,
        "sap": null,
        "lines": [
            {
                "id": 77,
                "line_num": 0,
                "product_id": 101,
                "item_code": "P-1001",
                "qty": 24,
                "picked_qty": 24,
                "dispatched_qty": 24,
                "received_qty": 0,
                "batch_num": null,
                "serial_numbers": [],
                "status": "dispatched"
            }
        ]
    },
    "timestamp": 1791302400
}

Embarques

shipment.dispatched Embarque despachado #

Un embarque salió del andén con su transportista, sello y paquetes.

Campos de data
  • object string «shipment» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • status string obligatorio
  • status_label string
  • warehouse objeto
    3 campos de warehouse
    • id integer | null
    • code string | null
    • name string | null
  • carrier objeto | null
  • vehicle_plate string | null
  • seal_numbers array de textos | null
  • dispatched_at string (date-time) | null
Carga de shipment.dispatched
{
    "event": "shipment.dispatched",
    "version": 1,
    "data": {
        "object": "shipment",
        "id": 31,
        "code": "EMB-000031",
        "status": "dispatched",
        "status_label": "Despachado",
        "warehouse": {
            "id": 1,
            "code": "CEDIS-GDL",
            "name": "CEDIS Guadalajara"
        },
        "carrier": {
            "id": 3,
            "code": "DHL",
            "name": "DHL Express"
        },
        "vehicle_plate": "JAL-123-A",
        "seal_numbers": [
            "S-99812"
        ],
        "dispatched_at": "2026-10-06T18:00:00-06:00"
    },
    "timestamp": 1791302400
}

Devoluciones

return.received Devolución recibida #

Llegó mercancía devuelta por un cliente.

Campos de data
  • object string «return_order» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • type string
  • status string obligatorio
  • status_label string
  • card_code string | null
  • card_name string | null
  • rma_number string | null
  • units objeto
Carga de return.received
{
    "event": "return.received",
    "version": 1,
    "data": {
        "object": "return_order",
        "id": 12,
        "code": "DEV-000012",
        "type": "customer",
        "status": "received",
        "status_label": "Recibida",
        "card_code": "CLI-001",
        "card_name": "Abarrotes del Norte",
        "rma_number": "RMA-5521",
        "units": {
            "expected": 6,
            "received": 6,
            "inspected": 0
        }
    },
    "timestamp": 1791302400
}
return.dispositioned Devolución con destino #

Se decidió el destino de la mercancía devuelta (reacomodo, merma, proveedor).

Campos de data
  • object string «return_order» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • type string
  • status string obligatorio
  • status_label string
  • card_code string | null
  • card_name string | null
  • rma_number string | null
  • units objeto
Carga de return.dispositioned
{
    "event": "return.dispositioned",
    "version": 1,
    "data": {
        "object": "return_order",
        "id": 12,
        "code": "DEV-000012",
        "type": "customer",
        "status": "dispositioned",
        "status_label": "Con destino",
        "card_code": "CLI-001",
        "card_name": "Abarrotes del Norte",
        "rma_number": "RMA-5521",
        "units": {
            "expected": 6,
            "received": 6,
            "inspected": 6
        }
    },
    "timestamp": 1791302400
}

Empaque

packing_order.transitioned Orden de empaque cambió de estado #

Una orden de empaque pasó de un estado a otro (from, to).

Campos de data
  • object string «packing_order» obligatorio
  • id integer obligatorio
  • code string obligatorio
  • status string obligatorio
  • step string | null
  • doc_num string | null
  • card_code string | null
  • units_count integer | null
  • weight_kg number | null
  • from string | null obligatorio
  • to string obligatorio
Carga de packing_order.transitioned
{
    "event": "packing_order.transitioned",
    "version": 1,
    "data": {
        "object": "packing_order",
        "id": 55,
        "code": "EMP-000055",
        "status": "packed",
        "step": "label",
        "doc_num": "OV-000977",
        "card_code": "CLI-001",
        "units_count": 6,
        "weight_kg": 7.2,
        "from": "packing",
        "to": "packed"
    },
    "timestamp": 1791302400
}

RFID

rfid_validation.completed Validación RFID terminada #

Terminó una lectura RFID contra un documento, con sus conteos.

Campos de data
  • object string «rfid_session» obligatorio
  • code string obligatorio
  • mode string obligatorio
  • context objeto
    2 campos de context
    • type string | null
    • code string | null
  • result string | null
  • counts objeto obligatorio
  • closed_at string (date-time) | null
Carga de rfid_validation.completed
{
    "event": "rfid_validation.completed",
    "version": 1,
    "data": {
        "object": "rfid_session",
        "code": "RFID-000201",
        "mode": "validation",
        "context": {
            "type": "picking",
            "code": "PKG-6120"
        },
        "result": "matched",
        "counts": {
            "expected": 6,
            "matched": 6,
            "missing": 0,
            "unexpected": 0,
            "foreign": 0,
            "unknown": 0
        },
        "closed_at": "2026-10-06T12:10:02-06:00"
    },
    "timestamp": 1791302400
}
product.created Producto creado #

Se dio de alta un producto (por la web, la API o una carga).

Campos de data
  • id integer obligatorio
  • item_code string obligatorio
  • name string obligatorio
  • barcode string | null
  • tracks_serials boolean
  • tracks_lots boolean
  • updated_at string (date-time) | null
Carga de product.created
{
    "event": "product.created",
    "version": 1,
    "data": {
        "id": 101,
        "item_code": "P-1001",
        "name": "Aceite comestible 1 L",
        "barcode": "7501234567890",
        "tracks_serials": false,
        "tracks_lots": true,
        "updated_at": "2026-10-06T10:20:11-06:00"
    },
    "timestamp": 1791302400
}
product.updated Producto actualizado #

Cambió un dato del producto.

Campos de data
  • id integer obligatorio
  • item_code string obligatorio
  • name string obligatorio
  • barcode string | null
  • tracks_serials boolean
  • tracks_lots boolean
  • updated_at string (date-time) | null
Carga de product.updated
{
    "event": "product.updated",
    "version": 1,
    "data": {
        "id": 101,
        "item_code": "P-1001",
        "name": "Aceite comestible 1 L (caja 12)",
        "barcode": "7501234567891",
        "tracks_serials": false,
        "tracks_lots": true,
        "updated_at": "2026-10-06T10:31:40-06:00"
    },
    "timestamp": 1791302400
}

Existencias

stock.updated Existencias actualizadas #

Una transacción movió existencias. Llega un evento por transacción con los productos que tocó, con lo disponible y lo que hay a la mano en ese momento.

Campos de data
  • products array de objetos obligatorio
    4 campos de products
    • id integer obligatorio
    • item_code string obligatorio
    • available number obligatorio
    • on_hand number obligatorio
Carga de stock.updated
{
    "event": "stock.updated",
    "version": 1,
    "data": {
        "products": [
            {
                "id": 101,
                "item_code": "P-1001",
                "available": 46,
                "on_hand": 48
            }
        ]
    },
    "timestamp": 1791302400
}

Mapas

layout.published Mapa publicado #

Se publicó una versión nueva del mapa de un almacén.

Campos de data
  • warehouse_code string | null obligatorio
  • layout_version integer obligatorio
  • published_at string (date-time) | null
  • summary objeto
    3 campos de summary
    • added integer
    • relocated integer
    • removed integer
Carga de layout.published
{
    "event": "layout.published",
    "version": 1,
    "data": {
        "warehouse_code": "CEDIS-GDL",
        "layout_version": 4,
        "published_at": "2026-10-06T09:00:00-06:00",
        "summary": {
            "added": 12,
            "relocated": 3,
            "removed": 0
        }
    },
    "timestamp": 1791302400
}

Olas

wave.planned Ola planeada #

Se planeó una ola.

Campos de data
  • id integer obligatorio
  • code string obligatorio
  • warehouse_code string | null
  • strategy string obligatorio
    Valores: discrete, by_customer, batch, cluster, zone, pick_and_pass
  • status string obligatorio
    Valores: draft, planned, released, in_progress, picked, completed, closed, cancelled
  • carrier_code string | null
  • cutoff_at string (date-time) | null
  • released_at string (date-time) | null
  • metrics objeto

    Pedidos, líneas, unidades y avance de la ola.

  • created_at string (date-time) | null
  • updated_at string (date-time) | null
  • orders array de objetos

    Solo en el detalle.

    2 campos de orders
    • picking_id integer obligatorio
    • status string obligatorio
Carga de wave.planned
{
    "event": "wave.planned",
    "version": 1,
    "data": {
        "id": 9,
        "code": "OLA-000009",
        "warehouse_code": "CEDIS-GDL",
        "strategy": "batch",
        "status": "planned",
        "carrier_code": null,
        "cutoff_at": null,
        "released_at": null,
        "metrics": {
            "orders": 2,
            "lines": 3,
            "units": 18
        },
        "created_at": "2026-10-06T10:20:11-06:00",
        "updated_at": "2026-10-06T11:00:00-06:00"
    },
    "timestamp": 1791302400
}
wave.released Ola liberada #

Un supervisor liberó la ola al piso.

Campos de data
  • id integer obligatorio
  • code string obligatorio
  • warehouse_code string | null
  • strategy string obligatorio
    Valores: discrete, by_customer, batch, cluster, zone, pick_and_pass
  • status string obligatorio
    Valores: draft, planned, released, in_progress, picked, completed, closed, cancelled
  • carrier_code string | null
  • cutoff_at string (date-time) | null
  • released_at string (date-time) | null
  • metrics objeto

    Pedidos, líneas, unidades y avance de la ola.

  • created_at string (date-time) | null
  • updated_at string (date-time) | null
  • orders array de objetos

    Solo en el detalle.

    2 campos de orders
    • picking_id integer obligatorio
    • status string obligatorio
Carga de wave.released
{
    "event": "wave.released",
    "version": 1,
    "data": {
        "id": 9,
        "code": "OLA-000009",
        "warehouse_code": "CEDIS-GDL",
        "strategy": "batch",
        "status": "released",
        "carrier_code": null,
        "cutoff_at": null,
        "released_at": "2026-10-06T11:00:00-06:00",
        "metrics": {
            "orders": 2,
            "lines": 3,
            "units": 18
        },
        "created_at": "2026-10-06T10:20:11-06:00",
        "updated_at": "2026-10-06T11:00:00-06:00"
    },
    "timestamp": 1791302400
}
wave.completed Ola completada #

Todos los pedidos de la ola se surtieron.

Campos de data
  • id integer obligatorio
  • code string obligatorio
  • warehouse_code string | null
  • strategy string obligatorio
    Valores: discrete, by_customer, batch, cluster, zone, pick_and_pass
  • status string obligatorio
    Valores: draft, planned, released, in_progress, picked, completed, closed, cancelled
  • carrier_code string | null
  • cutoff_at string (date-time) | null
  • released_at string (date-time) | null
  • metrics objeto

    Pedidos, líneas, unidades y avance de la ola.

  • created_at string (date-time) | null
  • updated_at string (date-time) | null
  • orders array de objetos

    Solo en el detalle.

    2 campos de orders
    • picking_id integer obligatorio
    • status string obligatorio
Carga de wave.completed
{
    "event": "wave.completed",
    "version": 1,
    "data": {
        "id": 9,
        "code": "OLA-000009",
        "warehouse_code": "CEDIS-GDL",
        "strategy": "batch",
        "status": "completed",
        "carrier_code": null,
        "cutoff_at": null,
        "released_at": "2026-10-06T11:00:00-06:00",
        "metrics": {
            "orders": 2,
            "lines": 3,
            "units": 18
        },
        "created_at": "2026-10-06T10:20:11-06:00",
        "updated_at": "2026-10-06T11:00:00-06:00"
    },
    "timestamp": 1791302400
}
wave.cancelled Ola cancelada #

La ola se canceló.

Campos de data
  • id integer obligatorio
  • code string obligatorio
  • warehouse_code string | null
  • strategy string obligatorio
    Valores: discrete, by_customer, batch, cluster, zone, pick_and_pass
  • status string obligatorio
    Valores: draft, planned, released, in_progress, picked, completed, closed, cancelled
  • carrier_code string | null
  • cutoff_at string (date-time) | null
  • released_at string (date-time) | null
  • metrics objeto

    Pedidos, líneas, unidades y avance de la ola.

  • created_at string (date-time) | null
  • updated_at string (date-time) | null
  • orders array de objetos

    Solo en el detalle.

    2 campos de orders
    • picking_id integer obligatorio
    • status string obligatorio
Carga de wave.cancelled
{
    "event": "wave.cancelled",
    "version": 1,
    "data": {
        "id": 9,
        "code": "OLA-000009",
        "warehouse_code": "CEDIS-GDL",
        "strategy": "batch",
        "status": "cancelled",
        "carrier_code": null,
        "cutoff_at": null,
        "released_at": null,
        "metrics": {
            "orders": 2,
            "lines": 3,
            "units": 18
        },
        "created_at": "2026-10-06T10:20:11-06:00",
        "updated_at": "2026-10-06T11:00:00-06:00"
    },
    "timestamp": 1791302400
}