Loading documentation…
Loading documentation…
Receive Inventory terminal outcomes using signed webhooks or authenticated Project streams.
Availability: Events is not generally available. Use these interfaces only in an environment where Events has explicitly been enabled. These guides describe the current implementation; they do not announce production availability.
An Event tells you that an accepted Inventory refresh reached a terminal outcome. It carries a Refresh ID and a safe outcome, rather than inventory contents. Fetch the inventory separately through the Inventory API.
| Method | Best fit | Your responsibility |
|---|---|---|
| Outgoing webhook | Backend automation with an HTTPS receiver | Verify raw bytes, persist acceptance and deduplicate before side effects |
| Authenticated SSE | Live application views and long-lived backend consumers | Authenticate every connection, apply before advancing the cursor, recover gaps |
| Recovery reads | Reconnection, expired cursors and current refresh status | Reconcile bounded retained history and disclose incomplete coverage |
Webhooks and streams carry the same immutable event identity. Receiving one through both channels must not cause two business actions. A Project stream has a durable append order. Webhook arrival order can differ, and either transport can deliver duplicates.
Events do not charge for a refresh, settle a reservation, or change funding. Inventory and Billing own the original request and its financial result. Projection, retries, replay and redrive never create a second financial effect. completed describes terminal processing; it does not mean every inventory is public or that billing settlement has finished.
These outgoing Customer webhooks are separate from incoming Paddle billing webhooks. A Paddle signature verifier cannot verify SteamCall Events.