---
title: "Reenvía un evento guardado a tus webhook endpoints"
method: POST
path: "/events/{id}/replay"
tags: ["Webhooks"]
---

# Reenvía un evento guardado a tus webhook endpoints

`POST /events/{id}/replay`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/events/{id}/replay`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Reenvía un evento que ya está guardado a tus endpoints salientes. Es la salida cuando tu servidor estuvo caído o con un bug: recuperas los eventos perdidos sin tener que provocarlos de nuevo. Tu endpoint tiene que ser idempotente, porque un evento reenviado llega igual que el original.

## Path parameters

- `id` string, required

## Request body

- ReplayEventDto
  - `webhook_endpoint_id` string, uuid: Reenviar a UN endpoint concreto en vez de a todos. Útil cuando solo uno estuvo caído, o cuando estás probando un endpoint nuevo contra un evento real que ya ocurrió. El endpoint tiene que estar activo y suscrito al tipo del evento; si no, la respuesta es un 400 que dice cuál de las dos cosas falta.

## Response `201`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` WebhookEventReplayResponseDto, required
    - `data` WebhookDeliveryDto[], required: Las entregas creadas, todas con `is_replay: true`.
      - `attempts` number, required: Cuántas veces se intentó, incluido el intento en curso.
      - `created_at` string, required
      - `delivered_at` string, nullable, required: Cuándo se entregó con éxito. `null` mientras no lo esté.
      - `error` string, nullable, required: Motivo del fallo del último intento. `null` si no falló.
      - `event_id` string, required: ID público del evento entregado (`evt_…`). El mismo que va en el cuerpo.
      - `event_type` string, required: Tipo del evento. Las entregas de prueba usan `ping`.
      - `id` string, required
      - `is_replay` boolean, required: `true` si esta entrega nació de un reenvío (`POST /events/{id}/replay`) y no de la emisión original del evento. El reenvío NUNCA reescribe la entrega vieja: crea una nueva con el mismo `event_id`, así que en el log vas a ver las dos y esta marca es la que las distingue.
      - `response_status` number, nullable, required: Código HTTP que respondió tu servidor. `null` si no alcanzó a responder.
      - `status` 'pending' | 'succeeded' | 'failed', required: `pending` = todavía quedan reintentos por delante.
    - `event_id` string, required: El id del evento reenviado. El mismo que llevaba la entrega original.
    - `object` 'event.replay', required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
