Webhook debugging is a solo activity by default. One developer creates an endpoint, points Stripe at it, and watches the requests come in. Everyone else on the team asks "can you forward me that payload?" over Slack.
Today we're launching Teams on webhooks.cc. Create a team, invite your teammates, and share endpoints. Everyone sees the same incoming requests in real time.
How it works
Teams adds three things to your webhooks.cc account: shared visibility, shared editing, and an invite system.
Create a team
Go to the Teams page and create a team. Give it a name — your project, your squad, your company. You can create up to 10 teams.
Invite members
Invite teammates by email. They'll see the invite on their dashboard and can accept or decline. Each team supports up to 25 members.
Share endpoints
Open any endpoint you own, go to Settings, and share it with one or more of your teams. Shared endpoints appear in your teammates' endpoint switcher under "Shared with me."
Once an endpoint is shared, every team member sees incoming webhook requests in real time — the same live-updating dashboard, the same request details, the same headers and bodies. No more copying payloads into Slack.
What team members can do
Team members with access to a shared endpoint can:
- View all incoming requests in real time via the dashboard
- Stream requests via the CLI with
whk listen - Edit endpoint settings — rename the endpoint or change the mock response
- Inspect request details — headers, body, IP, timing
Endpoint ownership stays with the creator. Team members can't delete shared endpoints or change the sharing settings.
Quota and billing
Every webhook that hits a shared endpoint counts against the endpoint owner's quota — not the team members viewing it. If you share your endpoint with 10 teammates and it receives 500 requests, that's 500 requests on your plan. Your teammates' quotas are unaffected.
This means team members can view and debug shared endpoints without worrying about burning through their own request limits. Data retention follows the owner's plan too: 7 days on Free, 30 days on Pro.
Two roles, simple permissions
Teams have two roles:
| Owner | Member | |
|---|---|---|
| View shared requests | Yes | Yes |
| Edit endpoint settings | Yes | Yes |
| Stream via CLI | Yes | Yes |
| Invite / remove members | Yes | No |
| Share / unshare endpoints | Yes | No |
| Rename or delete the team | Yes | No |
The person who creates the team is the owner. Everyone else is a member. Simple enough that you don't need a permissions matrix on the wall.
Why this matters for webhook development
Webhook integrations touch multiple parts of a codebase. The backend developer building the handler needs to see the payload structure. The frontend developer triggering the checkout needs to confirm the webhook fired. The DevOps engineer debugging a production issue needs to see what Stripe actually sent.
Without shared access, each of these people creates their own endpoint, configures their own webhook URL in the provider dashboard, and debugs in isolation. With Teams, one endpoint serves the whole group.
A few concrete scenarios:
- Stripe integration sprint — The team shares a single endpoint pointed at the staging environment. Everyone sees
checkout.session.completed,invoice.paid, andcustomer.subscription.deletedevents as they arrive. No duplicate webhook URLs in the Stripe dashboard. - Debugging a production issue — An on-call engineer shares the production endpoint with the team channel. Three people inspect the same failing payload simultaneously instead of one person relaying screenshots.
- Onboarding a new developer — Share your test endpoints with the new hire. They can see real webhook traffic from day one without any provider configuration.
SDK and CLI support
Shared endpoints work everywhere. The SDK returns team information on endpoints:
import { WebhooksCC } from "@webhooks-cc/sdk";
const client = new WebhooksCC({ apiKey: process.env.WHK_API_KEY! });
const endpoints = await client.endpoints.list();
for (const ep of endpoints) {
if (ep.fromTeam) {
console.log(`${ep.slug} — shared by ${ep.fromTeam.teamName}`);
}
if (ep.sharedWith?.length) {
console.log(`${ep.slug} — shared with ${ep.sharedWith.map(t => t.teamName).join(", ")}`);
}
}The CLI shows shared endpoints in whk list and streams them with whk listen:
$ whk list
SLUG NAME SHARED
abc123 stripe-staging → backend-team
def456 github-hooks ← frontend-team
$ whk listen def456
Listening on def456 (shared by frontend-team)...
POST /webhook 200 — 2msAvailable now on Pro
Teams is available today for all Pro plan users. Create your first team at webhooks.cc/teams.
Free users can see team invites but need to upgrade to accept them. If a team owner downgrades from Pro, the team's shared endpoints become inaccessible to members until the owner re-subscribes.
Teams is included in the Pro plan at no extra cost — $8/month covers your personal quota, the CLI tunnel, and now team collaboration.
Teams Documentation
Create teams, manage members, and share endpoints — full setup guide.