API/Webhooks
v1.0.0-beta.mdGet API keys
Core rules

Webhooks

Five mandate events, written to an outbox in the same transaction as the consumption and delivered every minute, signed over the exact bytes sent.

Events

EventFires whenWhat to do
mandate.grantedA mandate is issuedShow the person what her agent may now do
mandate.consumedA consumption is committedReconcile against your own action reference
mandate.at_limitA consumption used the last of the periodWarn, or offer a step-up
mandate.revokedA mandate is revokedStop the agent immediately
mandate.expiredexpires_at passesAsk for a new mandate before acting again

Hosted sessions emit no webhooks. There is no session.completed and no session.expired.

Delivery

The event is written to an outbox in the same transaction as the consumption, and mandate-outbox-worker delivers it every minute.

The design answers the obvious question: a webhook sent inside the transaction would hold the ceiling lock hostage to a slow client, and a send before commit would announce something that never happened. Delivery is at-least-once — deduplicate on the event id.

Signature

signature = "sha256=" + HMAC_SHA256(webhook_secret, `${unix_seconds}.${raw_body}`)
HeaderValue
x-sidaxis-signaturesha256=…
x-sidaxis-timestampUnix seconds; reject outside ±300 s
x-sidaxis-event-idDeduplicate on this
x-sieve-signature, x-sieve-timestamp, x-sieve-event-idThe legacy triple, with identical values

Retries

30 s → 2 m → 10 m → 1 h → 6 h, then parked.

A webhook with no configured secret is not delivered unsigned — it fails explicitly.

Sidaxis is the human authorisation layer. It never moves money, holds funds or settles. The machine-readable contract is openapi.yaml.
Sidaxis API documentationQuickstartAuthenticationHosted or headlessSandbox and productionIdempotencyRate limitsErrors and refusalsField namesWebhooksAssuranceThe document ruleAlias availabilityMerchant themeMCP serverCompatibilityStatusRoadmapChangelogIdentityEnroll an identityRecognise a personDisclose an attributeMandatesThe eight scopesIssue a mandateCheck an actionConsume a mandateRead a mandateRevoke a mandateReceiptsRead a merchant's receiptsVerify a receiptHosted sessionsCreate a hosted sessionConsume a hosted sessionOne Face for agents