
# ウェブフックエンドポイントにテストイベントを送信

`POST /v1/webhook-endpoints/{endpoint_id}:test` · 権限 `webhook-endpoints:write` · すべてのプラン

選択したタイプ(既定値は `user.created`)の署名済みの合成イベントを 1 件エンドポイントに送信し、その結果を返します。イベントには `data.test = true` が含まれ、実際の配信と同様にエンドポイントの現在のシークレットで署名されるため、署名検証を確認できます。配信記録は作成されず、受信側のレスポンス本文も返されません。各エンドポイントは 1 分あたり 10 回までテストできます。

## リクエスト

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `endpoint_id` | path | はい | ウェブフックエンドポイント ID(`whe_…`)。 |
| `event_type` | string | いいえ | 送信するイベントカタログのタイプ。既定値は `user.created`。リクエストボディは任意です。 |
| `Idempotency-Key` | header | いいえ | 同じキーによる繰り返しのリクエストに対して、結果を再生します。 |

```json
{
  "event_type": "user.updated"
}
```

## レスポンス

`200 OK` と結果を返します。配信に失敗した場合も `200` が返されます。その場合は `succeeded` が `false` になり、`error_class` に理由(`timeout`、`tls`、`dns`、`egress_blocked`、`http_status`、`connection`)が示されます。

```json
{
  "succeeded": true,
  "http_status": 204,
  "error_class": null,
  "latency_ms": 87,
  "event_id": "evt_01k8a3m7s9v1w3x5y7z9b2c4d6"
}
```

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 400 | `unknown_field` | リクエストボディに、上に記載されていないフィールドが含まれています。 |
| 404 | `not_found` | この環境に該当するエンドポイントがありません。 |
| 409 | `conflict` | エンドポイントが `enabled` ではありません。 |
| 422 | `validation_failed` | `/event_type unknown_event_type`: カタログのタイプではありません。 |
| 429 | `rate_limited` | このエンドポイントへのテストが 1 分あたり 10 回を超えています。`Retry-After` の期間を待ってから再試行してください。 |
| 401 | `unauthenticated` | 認証情報が見つからないか、無効または取り消されています。 |
| 403 | `insufficient_permissions` | 認証情報に `webhook-endpoints:write` の権限がありません。 |
| 503 | `service_unavailable` | ウェブフックの管理機能が一時的に利用できません。`Retry-After` の期間を待ってから再試行してください。 |

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4:test \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event_type":"user.updated"}'
```

CLI: `keenauth webhook-endpoints test whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --event-type user.updated`
