Crear mi primera campaña
Menú de la documentación
API

Eventos de webhooks

Los 13 eventos, todos emitidos hoy: cuándo salen, qué trae el campo data y un ejemplo de cada uno.

BannerMotion avisa a tu servidor con una petición POST firmada cada vez que pasa algo importante: un concepto listo, una revisión aprobada, una exportación terminada. Los 13 eventos se emiten hoy: puedes suscribirte a los que quieras.

El sobre de cada evento

El cuerpo siempre es JSON con id (el del evento), event, createdAt y data. Los encabezados y la firma están en la página de Webhooks.

{
  "id": "evt_p0q8w2e6r4t1",
  "event": "banner.generated",
  "createdAt": "2026-01-01T12:00:00.000Z",
  "data": {
    "jobId": "job_x4k2m9q1a7bz",
    "campaignId": "cmp_8f2a1c3d4e5f",
    "creativeId": "crt_3a9c0d1e2f4b",
    "versionNo": 1,
    "source": "api"
  }
}

Generación

EventoCuándoCampos de data
banner.generated
Un concepto terminó de generarse, con todos sus tamaños e idiomas. Lo emiten las generaciones desde la API y desde la app.
jobId, campaignId, creativeId, versionNo?, source
banner.updated
Una corrección o la adición de tamaños (hechas por la API) terminó y guardó una versión nueva. change es edit o sizes.
jobId, creativeId, change, versionNo, source
generation.failed
Falló una generación, una corrección o una adición de tamaños. Los créditos se devuelven.
jobId, campaignId?, creativeId?, change?, error
translation.completed
Terminó la traducción de un banner al agregar un idioma a una campaña por la API. Llega un evento por banner.
jobId, campaignId, creativeId, locale, translated, pending, source

Revisión y aprobación

EventoCuándoCampos de data
review.requested
Alguien envió una campaña a revisión. pieces es cuántas piezas quedaron en revisión.
campaignId, pieces, toRoles
review.commented
Alguien comentó sobre una pieza en una revisión.
campaignId, pieceId, commentId
review.approved
Se aprobaron piezas. by es member (alguien del equipo) o link (el cliente, desde su enlace).
campaignId, pieceIds, by, author
review.changes_requested
Se pidieron cambios en piezas. by es member o link.
campaignId, pieceIds, by, author

Exportación

EventoCuándoCampos de data
export.ready
Una exportación está lista para descargar. status es ready o warnings; artifactSha256 es el sha-256 del .zip.
exportId, creativeId, status, bytes, artifactSha256
export.failed
Una exportación falló y no se pudo armar ninguna pieza.
exportId, creativeId, message

Equipo y uso

EventoCuándoCampos de data
member.invited
Se invitó a una persona al workspace.
email, role
member.joined
Una persona entró al workspace al aceptar una invitación (via: invite). El valor via: sso está reservado para el inicio de sesión único, que todavía no está disponible.
userId, email, role, via
usage.threshold_reached
El saldo de créditos bajó del 20 % del cupo del plan. Se avisa una sola vez al mes por workspace.
balance, planCredits, percentUsed
Nota. Los campos con ? no siempre llegan: banner.generated no trae versionNo cuando el concepto se generó desde la app, y generation.failed trae campaignId al crear y creativeId y change al corregir o agregar tamaños.

El evento de prueba

webhook.test es el que envía Enviar evento de prueba. Evento de prueba que envía «Enviar evento de prueba» en la app. No cuenta para la pausa automática. Su data es { "message", "workspace" }.

¿Te sirvió esta página?