Event-driven by design
Meaningful platform activity, a trade booked, a valuation updated, a settlement completed, emits an event. Subscribers react in real time instead of polling or waiting for a nightly file. This is the external face of the platform’s internal event backbone.
The event payload
Events are JSON, versioned, and carry enough to act on without a follow-up call for common cases. Each has a stable type, an id for idempotency, and a data body.
json{ "id": "evt_01J9Z8...", "type": "trade.booked", "version": "1", "occurredAt": "2026-07-08T09:14:22Z", "data": { "tradeId": "TR-000184213", "book": "GAS-EU", "instrument": "TTF-MONTH", "quantity": 50000, "price": 32.15 } }
Webhooks
Register a webhook endpoint to receive events over HTTPS. Payloads are JSON and signed, so you can verify authenticity, and delivery is retried on failure so transient outages do not lose events. Verify the signature before trusting a payload:
pythonimport hmac, hashlib def verify(request_body: bytes, signature: str, secret: str) -> bool: """Verify the HMAC signature on an incoming webhook.""" expected = hmac.new(secret.encode(), request_body, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, signature) # constant-time compare # In your handler: def on_webhook(request): if not verify(request.body, request.headers["X-Gravitas-Signature"], SECRET): return 401 event = json.loads(request.body) if event["type"] == "trade.booked": rerun_risk(event["data"]["book"]) # react in real time return 200
id to ignore a duplicate rather than acting on it twice.Common uses
- Trigger a downstream risk re-run when a trade is booked.
- Refresh a BI mart incrementally as data changes, instead of a nightly full reload.
- Notify an external system, treasury, ERP, a data warehouse, on settlement.
- Drive straight-through processing where one event kicks off the next automated step.
Related
See this on your own trades
A live walkthrough is the fastest way to connect this to your desk.
Request a demo Back to API Reference