Message envelope
Queue messages are JSON objects with a fixed envelope:Event types
Common payload fields
Payload handling
- Parse the queue message body as JSON.
- Route by
webhook_type; usepayload.event_typeas a secondary check. - Treat date and time values as strings.
- Treat decimal, price, quantity, and PnL values as strings when present.
- Handle optional and nullable fields defensively.
- Ignore unknown fields for forward compatibility.
Position messages
Position events are most useful for closed-position workflows. Whenpositions events are delivered, consumers should expect net_quantity to indicate whether the position is flat.
Consumer reliability
- Make processing idempotent using
payload.event_id. - Acknowledge messages only after your processing succeeds.
- Retry transient failures with backoff.
- Dead-letter messages you cannot parse or process after your retry limit.
- Do not assume every API-side update has a matching queue message unless SQS delivery was explicitly enabled for that event.
SQS queue URLs and credentials are provided separately when SQS is enabled for your firm.

