An admin-only page at /admin/webhooks to oversee the whole transaction-feed webhook fleet (PAR-151/153), beyond a player's own /me/webhooks:
webhook_subscription (all owners/accounts/firms), newest first, paginated.key_type mapped from the account type, owner_uuid resolved from the account's owner (so it's a legitimate, model-consistent webhook visible to both the owner and admins). SSRF-validated; secret shown once.lib/sql/webhook.ts: listAllWebhooks(filters) + countAllWebhooks (LEFT JOIN accounts/firm/firm_players for display names), adminCreateForAccount(...), adminSetActive(id, active), adminDelete(id) — non-owner-scoped.lib/actions/webhooks.ts (or admin-webhooks.ts): adminCreateWebhookAction({accountId,url}) (admin-gated, resolves the account via findAccount, maps key_type, owner = account owner, SSRF), adminSetWebhookActiveAction, adminDeleteWebhookAction.app/admin/webhooks/page.tsx (admin gate + audit, Toolbar search/filters + table + Pagination, create form), create-admin-webhook-form.tsx, admin-webhook-row-actions.tsx.key_type is enum('PERSONAL','BUSINESS','GOVERNMENT') — map account type; SYSTEM accounts fall back to a valid enum value (the dispatcher matches by account_id, not key_type)./me/webhooks — documented; a covert admin-only oversight webhook would be a separate option if wanted.Follow-up to PAR-153.