Serve a webhook endpoint on a hostname you own. Instead of giving Stripe hook-a1b2c3d4.otterkit.app, give it hooks.your-company.com: a URL that lives in your DNS, has a certificate issued automatically, and never has to change. The .otterkit.app URL keeps working alongside it.
Attach a domain in two steps#
1. Attach. Open the endpoint in the console and add your hostname under Custom domain, or use the CLI:
npx otterkit domain stripe-dev hooks.your-company.com2. Point DNS at it. Add one CNAME record wherever the domain is hosted:
CNAME hooks.your-company.com → customers.otterkit.appThat is all. Once the record resolves, the certificate is issued and renewed automatically, usually within a few minutes. The console polls and flips the domain to live. Requests to your domain behave exactly like the native URL: answered around the clock, verified, stored, forwarded, and replayable.
Manage from the CLI#
npx otterkit domain stripe-dev # show the domain and certificate status
npx otterkit domain stripe-dev hooks.your-company.com # attach (prints the CNAME to add)
npx otterkit domain stripe-dev --remove # detach
npx otterkit domain stripe-dev --json # machine-readable statusAgents use the MCP webhook_domain tool, with the actions status, attach, and remove.
Details#
Each endpoint can have one domain. Subdomains such as hooks.acme.com are the supported shape. An apex domain such as acme.com only works if your DNS provider supports CNAME flattening. Removing the domain releases the hostname and its certificate immediately.