Receive real-time payout/settlement updates (DEPRECATED)

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://bump.sh/tie-tech/hub/b2b-api/doc/broker-asyncapi/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "broker-asyncapi MCP server": {
    "url": "https://bump.sh/tie-tech/hub/b2b-api/doc/broker-asyncapi/mcp"
  }
}

Close
/payouts

Real-time settlement payouts stream with resume capability. NOTE: This stream is deprecated. Please migrate to /accounting.

Query Parameters:

  • since=<uint64> Last applied seq for resume (optional; must be >0; absent or 0 → start from live tail)
  • market=<id> Repeatable; filter by market_id
  • account_id=<id> Repeatable; filter by account_id

Resume Semantics:

  1. Client connects with since=S (last applied seq)
  2. Server replays frames with seq >= S in order
  3. Sends backlog_end (last_seq = current max)
  4. Continues live streaming If S > current max → immediate live (no backlog) If S too old (retention gap) → error frame (code=resume_too_old) then close (4009)

Idempotency / Ordering:

  • seq strictly monotonic per broker (shared or separate sequence depending on implementation details, typically separate per stream type); no gaps
  • Client drops any frame with seq <= last_applied_seq
  • Expected next seq = last_applied_seq + 1

Heartbeats:

  • Sent when no payout within configured interval
  • Heartbeat does NOT advance seq
  • Heartbeat and backlog_end both repeat the last data seq

Close Codes: Same as /orders

Operation WebSockets-specific information

  • headers object
    Hide headers attributes Show headers attributes object
    • PRE-ACCESS-KEY string Required

      Broker access key identifier

      Format should match the following pattern: ^[A-Za-z0-9._~-]{1,64}$.

    • PRE-ACCESS-TIMESTAMP string(date-time) Required

      RFC3339 timestamp with milliseconds

    • PRE-ACCESS-SIGNATURE string Required

      Keyed BLAKE2b-256 signature hex lowercase

      Format should match the following pattern: ^[0-9a-f]{64}$.

  • query object
    Hide query attributes Show query attributes object
    • since integer(int64)

      Resume from last applied seq (inclusive). Must be >0. If omitted or 0, start from live tail.

      Minimum value is 1.

    • market array[string]

      Repeatable filter by market_id. Absent → all markets accessible to broker.

    • event_id array[string]

      Repeatable filter by event_id. Absent → all events accessible to broker.

    • account_id array[string]

      Repeatable filter by account_id. Absent → all accounts of broker.

SUBSCRIBE /payouts

Payout Notification Frame

Notification of a settlement payout

Payload

  • type string Required

    Value is payout.

  • seq integer(int64) Required

    Minimum value is 0.

  • ts_ns integer(int64) Required
  • payload object Required
    Hide payload attributes Show payload attributes object
    • market_id string Required
    • account_id string Required
    • qty_held_at_settlement object Required

      Net position at settlement. Positive (+) values indicate Long (YES) contracts held. Negative (-) values indicate Short (NO) contracts held.

      Hide qty_held_at_settlement attributes Show qty_held_at_settlement attributes object
      • units integer(int64) Required
      • nanos integer(int32) Required

        Minimum value is -999999999, maximum value is 999999999.

    • settlement_price object Required
      Hide settlement_price attributes Show settlement_price attributes object
      • units integer(int64) Required
      • nanos integer(int32) Required

        Minimum value is -999999999, maximum value is 999999999.

    • payout_amount object Required
      Hide payout_amount attributes Show payout_amount attributes object
      • units integer(int64) Required
      • nanos integer(int32) Required

        Minimum value is -999999999, maximum value is 999999999.

    • settled_at_wall_time_ns integer(int64) Required
Payload examples
{
  "type": "payout",
  "seq": 42,
  "ts_ns": 42,
  "payload": {
    "market_id": "string",
    "account_id": "string",
    "qty_held_at_settlement": {
      "units": 42,
      "nanos": 42
    },
    "settlement_price": {
      "units": 42,
      "nanos": 42
    },
    "payout_amount": {
      "units": 42,
      "nanos": 42
    },
    "settled_at_wall_time_ns": 42
  }
}

Heartbeat Frame

Keep-alive heartbeat (does not advance seq)

Payload

  • type string Required

    Value is heartbeat.

  • seq integer(int64)

    Repeats last delivered data seq; heartbeat does not advance global seq

    Minimum value is 0.

  • ts_ns integer(int64) Required
  • payload object Required
    Hide payload attribute Show payload attribute object
    • interval_sec integer Required

      Minimum value is 1.

Payload examples
{
  "type": "heartbeat",
  "seq": 42,
  "ts_ns": 42,
  "payload": {
    "interval_sec": 42
  }
}

Backlog End Marker

Signals end of historical replay; live streaming begins

Payload

  • type string Required

    Value is backlog_end.

  • seq integer(int64) Required

    Minimum value is 0.

  • ts_ns integer(int64) Required
  • payload object Required
    Hide payload attribute Show payload attribute object
    • last_seq integer(int64) Required

      Minimum value is 0.

Payload examples
{
  "type": "backlog_end",
  "seq": 42,
  "ts_ns": 42,
  "payload": {
    "last_seq": 42
  }
}

Error Frame

Error notification before close

Payload

  • type string Required

    Value is error.

  • seq integer(int64) Required

    Minimum value is 0.

  • ts_ns integer(int64) Required
  • payload object Required
    Hide payload attributes Show payload attributes object
    • code string Required
    • message string Required
    • details object

      Additional properties are allowed.

Payload examples
{
  "type": "error",
  "seq": 42,
  "ts_ns": 42,
  "payload": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}