# Disparar un evento de prueba

POST `https://api.bydomu.com/v1/test/events`

Encola la entrega de un evento del catálogo (`GET /v1/events`) a los webhooks de la organización de prueba suscritos a ese tipo, por la misma cola con reintentos y con la misma firma `X-Domu-Signature` que un evento real. Los datos salen del registro más reciente de ese objeto en la organización de prueba; si no hay ninguno, van con la forma del catálogo y valores nulos (`synthetic: true`). El sobre lleva `livemode: false` y `test: true`. Solo con una clave de prueba: con una de producción responde `403 TEST_MODE_ONLY`.

Permiso que pide

`webhooks:write`

Encabezado obligatorio

`X-API-Key` · clave secreta

Nivel de acceso

Nivel 3 · con revisión de soporte

## Encabezados

1 · todos opcionales

`Idempotency-Key` string · opcional

Clave única de la operación (8-128 caracteres de `[a-zA-Z0-9._:-]`). Un reintento con la misma clave y el mismo cuerpo devuelve la respuesta original sin repetir la operación. Vive 24 horas. 8–128 chars

## Cuerpo (JSON)

1 · obligatorios

`type` string · **obligatorio**

1–100 chars

## Respuesta 201

`TestEvent` · 5 campos

**`data` id · type · livemode · webhooks · synthetic**

`id` string Id del evento de prueba (`evt_test_…`)

`type` string

`livemode` boolean false

`webhooks` integer Webhooks suscritos a ese tipo a los que se encoló la entrega

`synthetic` boolean `true` si no había registros de ese objeto y los datos van con valores nulos

## Errores posibles

con la forma `{ "error": { "code", "message" } }`

- **400** Datos inválidos: el cuerpo o la query no cumplen el esquema, o `Idempotency-Key` está mal formada.
- **401** UNAUTHORIZED
- **402** PAYMENT_REQUIRED
- **403** FORBIDDEN
- **404** NOT_FOUND
- **409** DUPLICATE
- **429** RATE_LIMITED
- **500** INTERNAL_ERROR

cURL:

```bash
curl -X POST "https://api.bydomu.com/v1/test/events" \
  -H "X-API-Key: $BYDOMU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "deal.won"
}'
```

JavaScript:

```js
import { ByDomu } from "@bydomu/sdk";

const bydomu = new ByDomu({
  apiKey: process.env.BYDOMU_API_KEY,
});

const { data } = await bydomu.test.triggerEvent({
  "type": "deal.won"
});
```

Python:

```python
import os, requests

r = requests.post(
    "https://api.bydomu.com/v1/test/events",
    headers={"X-API-Key": os.environ["BYDOMU_API_KEY"]},
    json={
        "type": "deal.won"
    }
)
data = r.json()
```

**Respuesta · 201 · ejemplo**

```json
{
  "data": {
    "id": "evt_test_5f3a0c1e7d2b4f7e9a510b6c1d2e3f40",
    "type": "deal.won",
    "livemode": false,
    "webhooks": 1,
    "synthetic": false
  }
}
```
