Traiana Harmony NetLink API

The Traiana Harmony NetLink API provides netting, settlement orchestration, and trade compression services. NetLink enables counterparties to perform on-demand intraday netting of FX transactions, pre-settlement netting for equities, and trade compression between retail brokers and executing brokers. It reduces settlement risk and optimizes intraday liquidity through PvP settlement orchestration, including same-day settlement.

OpenAPI Specification

traiana-harmony-netlink-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Traiana Harmony NetLink API
  description: >-
    The Traiana Harmony NetLink API provides netting, settlement orchestration,
    and trade compression services. NetLink enables counterparties to perform
    on-demand intraday netting of FX transactions, pre-settlement netting for
    equities, and trade compression between retail brokers and executing
    brokers to reduce settlement risk and optimize intraday liquidity.
  version: 1.0.0
  contact:
    name: Traiana (CME Group)
    url: https://www.cmegroup.com/services/traiana.html
  license:
    name: Proprietary
servers:
  - url: https://api.traiana.com/netlink/v1
    description: Traiana NetLink Production
paths:
  /netting-sessions:
    get:
      operationId: listNettingSessions
      summary: List Netting Sessions
      description: >-
        Retrieves netting sessions including on-demand intraday netting
        runs and scheduled pre-settlement netting cycles.
      tags:
        - Netting
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - Pending
              - InProgress
              - Completed
              - Failed
        - name: counterpartyId
          in: query
          schema:
            type: string
        - name: fromDate
          in: query
          schema:
            type: string
            format: date
        - name: toDate
          in: query
          schema:
            type: string
            format: date
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  nettingSessions:
                    type: array
                    items:
                      $ref: "#/components/schemas/NettingSession"
                  total:
                    type: integer
        "401":
          description: Unauthorized
    post:
      operationId: createNettingSession
      summary: Create a Netting Session
      description: >-
        Initiates an on-demand netting session to aggregate and compress
        trades between counterparties.
      tags:
        - Netting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NettingSessionCreate"
      responses:
        "201":
          description: Netting session created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NettingSession"
        "400":
          description: Invalid request
  /netting-sessions/{sessionId}:
    get:
      operationId: getNettingSession
      summary: Get Netting Session Details
      description: Retrieves details of a specific netting session including results.
      tags:
        - Netting
      parameters:
        - name: sessionId
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NettingSession"
        "404":
          description: Netting session not found
  /netting-sessions/{sessionId}/results:
    get:
      operationId: getNettingResults
      summary: Get Netting Results
      description: >-
        Retrieves the compressed trade results from a completed
        netting session.
      tags:
        - Netting
      parameters:
        - name: sessionId
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  sessionId:
                    type: string
                  netResults:
                    type: array
                    items:
                      $ref: "#/components/schemas/NetResult"
                  originalTradeCount:
                    type: integer
                  nettedTradeCount:
                    type: integer
                  compressionRatio:
                    type: number
  /settlements:
    get:
      operationId: listSettlements
      summary: List Settlement Instructions
      description: >-
        Retrieves settlement instructions generated from netting sessions
        for PvP settlement orchestration.
      tags:
        - Settlement
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - Pending
              - Instructed
              - Settled
              - Failed
        - name: counterpartyId
          in: query
          schema:
            type: string
        - name: settlementDate
          in: query
          schema:
            type: string
            format: date
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  settlements:
                    type: array
                    items:
                      $ref: "#/components/schemas/Settlement"
                  total:
                    type: integer
  /settlements/{settlementId}:
    get:
      operationId: getSettlement
      summary: Get Settlement Details
      description: Retrieves details of a specific settlement instruction.
      tags:
        - Settlement
      parameters:
        - name: settlementId
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Settlement"
        "404":
          description: Settlement not found
  /compression-runs:
    get:
      operationId: listCompressionRuns
      summary: List Compression Runs
      description: >-
        Retrieves trade compression runs that aggregate trades for
        each currency pair at user-defined intervals.
      tags:
        - Compression
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum:
              - Scheduled
              - InProgress
              - Completed
        - name: fromDate
          in: query
          schema:
            type: string
            format: date
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  compressionRuns:
                    type: array
                    items:
                      $ref: "#/components/schemas/CompressionRun"
                  total:
                    type: integer
    post:
      operationId: createCompressionRun
      summary: Create a Compression Run
      description: >-
        Initiates a trade compression run to aggregate trades by
        currency pair.
      tags:
        - Compression
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CompressionRunCreate"
      responses:
        "201":
          description: Compression run created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompressionRun"
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    NettingSession:
      type: object
      properties:
        sessionId:
          type: string
        counterpartyIdA:
          type: string
        counterpartyIdB:
          type: string
        assetClass:
          type: string
        status:
          type: string
          enum:
            - Pending
            - InProgress
            - Completed
            - Failed
        originalTradeCount:
          type: integer
        nettedTradeCount:
          type: integer
        compressionRatio:
          type: number
        scheduledAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
    NettingSessionCreate:
      type: object
      required:
        - counterpartyIdA
        - counterpartyIdB
        - assetClass
      properties:
        counterpartyIdA:
          type: string
        counterpartyIdB:
          type: string
        assetClass:
          type: string
        currencyPairs:
          type: array
          items:
            type: string
        fromDate:
          type: string
          format: date
        toDate:
          type: string
          format: date
    NetResult:
      type: object
      properties:
        resultId:
          type: string
        currencyPair:
          type: string
        netAmount:
          type: number
        direction:
          type: string
          enum:
            - Pay
            - Receive
        originalTradeIds:
          type: array
          items:
            type: string
        settlementDate:
          type: string
          format: date
    Settlement:
      type: object
      properties:
        settlementId:
          type: string
        nettingSessionId:
          type: string
        counterpartyId:
          type: string
        currencyPair:
          type: string
        payAmount:
          type: number
        payCurrency:
          type: string
        receiveAmount:
          type: number
        receiveCurrency:
          type: string
        settlementDate:
          type: string
          format: date
        status:
          type: string
          enum:
            - Pending
            - Instructed
            - Settled
            - Failed
        settledAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
    CompressionRun:
      type: object
      properties:
        runId:
          type: string
        counterpartyIdA:
          type: string
        counterpartyIdB:
          type: string
        status:
          type: string
          enum:
            - Scheduled
            - InProgress
            - Completed
        intervalMinutes:
          type: integer
          description: User-defined compression interval in minutes
        currencyPairs:
          type: array
          items:
            type: string
        originalTradeCount:
          type: integer
        compressedTradeCount:
          type: integer
        scheduledAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
    CompressionRunCreate:
      type: object
      required:
        - counterpartyIdA
        - counterpartyIdB
        - intervalMinutes
      properties:
        counterpartyIdA:
          type: string
        counterpartyIdB:
          type: string
        intervalMinutes:
          type: integer
        currencyPairs:
          type: array
          items:
            type: string
security:
  - bearerAuth: []
  - apiKey: []
tags:
  - name: Compression
  - name: Netting
  - name: Settlement