Actualizar un endpoint de webhook
PATCH /v1/webhook-endpoints/{endpoint_id} · permiso webhook-endpoints:write · todos los planes
Modifica un endpoint con un parche de fusión JSON (RFC 7396, Content-Type: application/merge-patch+json). If-Match es obligatorio; el valor actual es el encabezado ETag de Obtener un endpoint de webhook. Un parche que no cambia nada no escribe nada y conserva la versión.
statussolo aceptaenabledydisabled_by_user. Establecerenabledcuenta para el límite de endpoints habilitados del plan y borrafailing_since; así se vuelve a habilitar un endpoint deshabilitado tras fallos o por su receptor.nullborradescriptionyevent_schema_versions(o una sola entrada:{"event_schema_versions": {"user.created": null}}); en cualquier otro campo da422 invalid.event_typesse reemplaza por completo.
Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
endpoint_id |
ruta | sí | ID del endpoint de webhook (whe_…). |
If-Match |
encabezado | sí | ETag actual del endpoint (* coincide con cualquier versión). |
key, url, description, event_types, event_schema_versions, payload_mode, rate_limit_per_second |
no | Igual que en Añadir un endpoint de webhook. | |
status |
cadena | no | enabled o disabled_by_user. |
{
"status": "enabled",
"event_types": ["user.created", "user.updated", "user.deleted"]
}
Respuesta
200 OK con el endpoint (como en Obtener un endpoint de webhook) y su nuevo ETag.
Errores
| HTTP | código | Cuándo |
|---|---|---|
| 400 | malformed_request |
El cuerpo no es un objeto JSON. |
| 400 | unknown_field |
El parche tiene un campo que no aparece en la lista anterior. |
| 403 | quota_exceeded |
status: enabled superaría el número de endpoints habilitados del plan. |
| 404 | not_found |
No existe ese endpoint en este entorno. |
| 409 | conflict |
Otro endpoint del entorno tiene este key. |
| 412 | precondition_failed |
If-Match no coincide con la versión actual (el endpoint cambió desde que lo leyó). |
| 422 | validation_failed |
Un campo no es válido (los punteros como en Añadir un endpoint de webhook); /status invalid para un estado distinto de enabled o disabled_by_user. |
| 428 | precondition_required |
Falta If-Match. |
| 401 | unauthenticated |
La credencial falta, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La credencial no tiene el permiso webhook-endpoints:write. |
| 503 | service_unavailable |
La administración de webhooks no está disponible temporalmente; reintente después del período indicado en Retry-After. |
Ejemplo
curl -X PATCH https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4 \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3"' \
-d '{"status":"enabled"}'
CLI: keenauth webhook-endpoints update whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --status enabled --if-match '"3"'