Outbound webhooks
Subscribe an HTTPS endpoint to a filtered set of events.Delivery & verification
Each delivery is a signed JSON envelope — not the raw stream event. The envelope is{ id, type, created_at, data }, where data is the event-specific body (for session.idle, the session_id, stop_reason, structured_output, and so on). The id is stable across redeliveries, so your handler can dedupe on it.
{timestamp}.{raw_body}, hex-encoded, carried as the versioned header Vetta-Signature: v1=<hex> beside Vetta-Timestamp: <unix seconds>. During a secret rotation the header carries more than one signature (comma-separated, v1=<old>,v1=<new>), so a verifier accepts the delivery if any listed signature matches. Reject a delivery whose timestamp is more than 300 seconds old, or a replayed capture verifies.
The SDK does not ship a verifier — verification happens on your server, against the raw bytes, so it is a dozen lines of standard crypto rather than a dependency:
TypeScript
enabled: false) after repeated consecutive failures, so a dead URL doesn’t retry forever — re-enable it once it’s healthy.
Rotating the secret
Roll a webhook secret without a delivery gap. Rotation returns a new secret (shown once) and keeps the old one valid for an overlap window, during which Vetta signs each delivery with both secrets. Update your endpoint to the new secret any time inside the window; once it expires, only the new secret signs.CLI
v1= signatures during the overlap, a verifier that accepts any matching signature keeps working across the switch with no downtime.
Delivery log & redelivery
Every attempt is recorded, so you can see what was sent, whether it landed, and replay it if your endpoint was down.CLI
event_id, event_type, status (pending, succeeded, or failed), the attempt count, the response status your endpoint returned, and the next retry time — enough to reconcile exactly which events reached you.
Inbound webhooks
When you provision an identity, Vetta gives you receive endpoints that turn real-world messages into stored, agent-readable events:Inbound mail to a provisioned inbox is verified (SPF/DKIM/DMARC), matched, and stored.
SMS
Inbound texts to a provisioned number are verified and stored.
Connections
Connection lifecycle events (e.g. token expiry) are handled and reconciled.
Next: organizations & billing
How accounts, teams, and money work.