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