Webhooks

Every event Sautikit POSTs to your endpoint, with its payload shape, signature envelope, and delivery guarantees.

call.answeredEmitted when the callee picks up and the call transitions from ringing to connected. Carries call ID, answer timestamp, and number metadata.call.completedEmitted after a call hangs up cleanly. Carries call ID, duration in seconds, and the hangup initiator. Used to trigger billing rollups and CDR writes.call.failedEmitted when a call ends without a clean hangup. Carries a failure reason and the last known status, useful for alerting and retry logic.call.recording.readyEmitted after the recording pipeline finalises a call recording. Carries the call ID and a presigned download URL valid for a limited window.call.startedEmitted the moment a call leg is created in the platform. Carries the call ID, direction, and originating number for early-stage tracking.number.provisionedEmitted when a DID is successfully provisioned for the workspace. Carries the number details, series metadata, and the rental start timestamp.number.releasedEmitted when a DID assignment is terminated. Carries the number ID, E.164 representation, and the release timestamp for audit and cleanup flows.storage.tier_changedEmitted when a storage tier change is confirmed. Carries the previous and new tier sizes in GB and the effective timestamp for the change.wallet.low_balanceEmitted when a debit causes the wallet balance to cross below the low-balance threshold. Use this to trigger top-up flows or alert on-call teams.wallet.top_upEmitted after a successful top-up is confirmed by the payment provider. Carries the amount credited, currency, and new wallet balance.