Menu
Platform
AI
App store purchases
Credits
Database
Flags
Generated Assets
Monitoring
Notifications
Organizations
Payments
- Payments
- Payments quickstart
- Checkout policies
- Checkout sessions
- Customer subscriptions
- Entitlement grants
- Exchange rates
- Licence keys
- Licence tokens
- Merchant accounts
- Portal sessions
- Price catalogs
- Revenue
- Revenue facts
- Revenue sources
- Tax threshold statuses
- Usage events
- Usage invoices
- Usage meter prices
- Usage meters
- Usage reservations
- Usage settings
- Usage tiers
Queues
Realtime
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
Webhooks
What a webhook endpoint is, what you receive, and where to go next.
A Webhook Endpoint is an HTTPS address of yours that Sylphx Events delivers an environment's events to. Every delivery is signed, retried on a fixed schedule, recorded in a delivery log, and can be replayed after an outage.
#What a delivery is
- A CloudEvents document. The body is one event,
specversion1.0, as JSON, at most 1 MiB. See event types. - Signed with Standard Webhooks. Each attempt carries
webhook-id,webhook-timestampandwebhook-signature, so any Standard Webhooks library verifies it. Receiving webhooks has the verification steps and a complete receiver. - At least once. A timeout cannot tell Events whether your receiver
finished, so a delivery can arrive twice with the same
webhook-id. Make the effect idempotent on it. - Retried, then dead-lettered. Eight attempts over about 27.6 hours; what is left is dead-lettered, kept, and replayable.
#Create an endpoint
The URL must be https and public. spec.event_types chooses what the
endpoint receives: an exact type, a prefix ending in .*, or * for every type
(the default).
sylphx events webhook-endpoints create \
--parent orgs/acme/projects/shop/envs/production \
--spec.uri https://example.com/webhooksThe answer carries status.signing_secret (it starts with whsec_) once.
Store it where your receiver reads it; rotating it
is the only way to get another.
The endpoint needs the events:write scope to create and the events:read
scope to read.
#Read what happened
A delivery records every attempt and what your endpoint answered. Read one to see why a delivery failed, and replay the dead-lettered ones when your receiver is back.