Referencia de Eventos
Referencia de los eventos públicos de webhook entregados a endpoints de plugins.
Whatalo entrega actualmente 10 eventos públicos de webhook. Declara solo los eventos que tu plugin realmente maneja en tu manifiesto whatalo.app.ts.
Suscripción a Eventos
// whatalo.app.ts
webhooks: [
{ event: "order.created", description: "Rastrear nuevos pedidos para cumplimiento" },
{ event: "order.updated", description: "Sincronizar cambios de pedidos" },
{ event: "product.updated", description: "Sincronizar cambios del catálogo" },
{ event: "checkout.completed", description: "Reaccionar a checkouts completados" },
],El campo description es opcional pero recomendado porque aparece en la pantalla de permisos de instalación del comerciante.
Headers del Evento
El nombre del evento se entrega en X-Webhook-Event. El body JSON contiene datos específicos del evento y no incluye un campo event.
Eventos de Pedidos
| Evento | Disparador |
|---|---|
order.created | Se crea un pedido |
order.updated | Cambian datos, estado o estado de pago de un pedido |
order.cancelled | Se cancela un pedido |
order.completed | Se completa un pedido |
Ejemplo: order.created
{
"event_id": "evt_01hxyz",
"occurred_at": "2026-03-01T14:30:00.000Z",
"order": {
"id": "ord_abc123",
"status": "pending",
"total": 1500.5,
"currency": "DOP"
},
"customer": {
"id": "cus_abc123",
"name": "Ana Perez"
},
"store": {
"id": "sto_abc123",
"name": "Mi Tienda"
}
}Eventos de Productos
| Evento | Disparador |
|---|---|
product.created | Se crea un producto |
product.updated | Cambian datos de un producto |
product.deleted | Se elimina un producto |
Ejemplo: product.updated
{
"event_id": "evt_01hxyz",
"occurred_at": "2026-03-01T14:30:00.000Z",
"product": {
"id": "prd_abc123",
"name": "Kit Inicial",
"price": 1500.5
},
"store": {
"id": "sto_abc123"
}
}Eventos de Clientes
| Evento | Disparador |
|---|---|
customer.created | Se crea un cliente |
customer.updated | Cambia el perfil de un cliente |
Ejemplo: customer.created
{
"event_id": "evt_01hxyz",
"occurred_at": "2026-03-01T14:30:00.000Z",
"customer": {
"id": "cus_abc123",
"name": "Ana Perez",
"phone": "8090000000"
},
"store": {
"id": "sto_abc123"
}
}Eventos de Checkout
| Evento | Disparador |
|---|---|
checkout.completed | Se completa un flujo de checkout |
checkout.abandoned | Un borrador de checkout se marca como abandonado tras inactividad |
Los payloads de checkout incluyen los campos disponibles para ese evento. Trata campos desconocidos como aditivos e ignora los que tu plugin no necesita.
Para checkout.abandoned, event_id coincide con el checkout.id anidado, el objeto customer no tiene id (el borrador es pre-cliente, solo campos de contacto), y checkout.recovery_url enlaza de vuelta al carrito del comprador.
Soporte de Pruebas en el CLI
El comando whatalo webhook trigger soporta pruebas locales para estos eventos públicos:
| Constante CLI | Evento de Webhook |
|---|---|
ORDER_CREATED | order.created |
ORDER_UPDATED | order.updated |
ORDER_CANCELLED | order.cancelled |
PRODUCT_CREATED | product.created |
PRODUCT_UPDATED | product.updated |
PRODUCT_DELETED | product.deleted |
CUSTOMER_CREATED | customer.created |
CUSTOMER_UPDATED | customer.updated |
CHECKOUT_COMPLETED | checkout.completed |
whatalo webhook trigger ORDER_CREATED --store mi-tienda-dev