Skip to main content
SQS delivery is optional and enabled by request. It is not part of the standard API setup for every firm. If your firm needs SQS delivery, your onboarding contact will provide the queue details and confirm which events are enabled.

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; use payload.event_type as 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. When positions 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.