openapi: 3.0.3 info: title: Traiana Harmony Trade Processing API description: >- The Traiana Harmony Trade Processing API provides cross-asset post-trade processing capabilities through the Harmony network. It enables automated trade allocation, matching, confirmation, give-up messaging, and reporting across FX, equities, equity derivatives, and exchange-traded derivatives. Harmony connects market participants for same-day trade processing with low-latency matching and confirmation workflows. 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/harmony/v1 description: Traiana Harmony Production paths: /trades: get: operationId: listTrades summary: List Trades description: >- Retrieves a list of trades processed through the Harmony network, with filtering by asset class, status, counterparty, and date range. tags: - Trades parameters: - name: assetClass in: query schema: type: string enum: - FX - Equities - EquityDerivatives - ETD - name: status in: query schema: type: string enum: - Pending - Matched - Confirmed - Rejected - Cancelled - 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 - name: limit in: query schema: type: integer default: 50 - name: offset in: query schema: type: integer default: 0 responses: "200": description: Successful response with list of trades content: application/json: schema: type: object properties: trades: type: array items: $ref: "#/components/schemas/Trade" total: type: integer limit: type: integer offset: type: integer "401": description: Unauthorized "403": description: Forbidden post: operationId: submitTrade summary: Submit a Trade description: >- Submits a new trade into the Harmony network for processing, matching, and confirmation. tags: - Trades requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TradeSubmission" responses: "201": description: Trade submitted successfully content: application/json: schema: $ref: "#/components/schemas/Trade" "400": description: Invalid trade submission "401": description: Unauthorized /trades/{tradeId}: get: operationId: getTrade summary: Get Trade Details description: Retrieves detailed information about a specific trade. tags: - Trades parameters: - name: tradeId in: path required: true schema: type: string responses: "200": description: Successful response with trade details content: application/json: schema: $ref: "#/components/schemas/Trade" "404": description: Trade not found /trades/{tradeId}/confirm: post: operationId: confirmTrade summary: Confirm a Trade description: Confirms a matched trade in the Harmony network. tags: - Trades parameters: - name: tradeId in: path required: true schema: type: string responses: "200": description: Trade confirmed content: application/json: schema: $ref: "#/components/schemas/Trade" "404": description: Trade not found "409": description: Trade cannot be confirmed in current state /allocations: get: operationId: listAllocations summary: List Allocations description: >- Retrieves trade allocations, including block-level and allocation-level details from executing brokers and investment managers. tags: - Allocations parameters: - name: status in: query schema: type: string enum: - Pending - Affirmed - Confirmed - Rejected - name: fromDate in: query schema: type: string format: date - name: toDate in: query schema: type: string format: date responses: "200": description: Successful response with allocations content: application/json: schema: type: object properties: allocations: type: array items: $ref: "#/components/schemas/Allocation" total: type: integer post: operationId: submitAllocation summary: Submit an Allocation description: >- Submits a trade allocation for processing through the Harmony network. tags: - Allocations requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AllocationSubmission" responses: "201": description: Allocation submitted content: application/json: schema: $ref: "#/components/schemas/Allocation" "400": description: Invalid allocation /give-ups: get: operationId: listGiveUps summary: List Give-Up Messages description: >- Retrieves give-up messages between prime brokers, executing brokers, and their clients processed through Harmony. tags: - Give-Ups parameters: - name: status in: query schema: type: string enum: - Pending - Accepted - Rejected - name: primeBrokerId in: query schema: type: string - name: executingBrokerId in: query schema: type: string responses: "200": description: Successful response with give-up messages content: application/json: schema: type: object properties: giveUps: type: array items: $ref: "#/components/schemas/GiveUp" total: type: integer post: operationId: submitGiveUp summary: Submit a Give-Up description: >- Submits a give-up message from an executing broker to a prime broker through the Harmony network. tags: - Give-Ups requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GiveUpSubmission" responses: "201": description: Give-up submitted content: application/json: schema: $ref: "#/components/schemas/GiveUp" "400": description: Invalid give-up submission /matching: get: operationId: listMatchResults summary: List Match Results description: >- Retrieves trade matching results processed by the Harmony cross-asset matching engine. tags: - Matching parameters: - name: status in: query schema: type: string enum: - Matched - Unmatched - PartialMatch - Disputed - name: fromDate in: query schema: type: string format: date - name: toDate in: query schema: type: string format: date responses: "200": description: Successful response with matching results content: application/json: schema: type: object properties: matchResults: type: array items: $ref: "#/components/schemas/MatchResult" total: type: integer components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT apiKey: type: apiKey in: header name: X-API-Key schemas: Trade: type: object properties: tradeId: type: string externalTradeId: type: string assetClass: type: string enum: - FX - Equities - EquityDerivatives - ETD instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string counterpartyId: type: string executingBrokerId: type: string primeBrokerId: type: string tradeDate: type: string format: date settlementDate: type: string format: date status: type: string enum: - Pending - Matched - Confirmed - Rejected - Cancelled createdAt: type: string format: date-time updatedAt: type: string format: date-time TradeSubmission: type: object required: - assetClass - instrument - side - quantity - price - currency - counterpartyId - tradeDate properties: externalTradeId: type: string assetClass: type: string enum: - FX - Equities - EquityDerivatives - ETD instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string counterpartyId: type: string executingBrokerId: type: string primeBrokerId: type: string tradeDate: type: string format: date settlementDate: type: string format: date Allocation: type: object properties: allocationId: type: string blockTradeId: type: string accountId: type: string instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string status: type: string enum: - Pending - Affirmed - Confirmed - Rejected createdAt: type: string format: date-time AllocationSubmission: type: object required: - blockTradeId - accountId - instrument - side - quantity - price - currency properties: blockTradeId: type: string accountId: type: string instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string GiveUp: type: object properties: giveUpId: type: string tradeId: type: string executingBrokerId: type: string primeBrokerId: type: string clientId: type: string instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string status: type: string enum: - Pending - Accepted - Rejected createdAt: type: string format: date-time GiveUpSubmission: type: object required: - tradeId - executingBrokerId - primeBrokerId - clientId - instrument - side - quantity - price - currency properties: tradeId: type: string executingBrokerId: type: string primeBrokerId: type: string clientId: type: string instrument: type: string side: type: string enum: - Buy - Sell quantity: type: number price: type: number currency: type: string MatchResult: type: object properties: matchId: type: string tradeIdA: type: string tradeIdB: type: string status: type: string enum: - Matched - Unmatched - PartialMatch - Disputed matchedFields: type: array items: type: string unmatchedFields: type: array items: type: string matchedAt: type: string format: date-time security: - bearerAuth: [] - apiKey: [] tags: - name: Allocations - name: Give-Ups - name: Matching - name: Trades