FactSet Direct Streaming of Transaction Messages API

Connect transaction data from your OMS to be leveraged in FactSet's PMP and Portfolio Analytics applications.

OpenAPI Specification

direct-streaming-of-transaction-messages-openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: Factset DSOTM API
  description: Allow clients to send transactions data to FactSet.
  contact:
    name: FactSet Research Systems
    url: https://developer.factset.com/contact
    email: [email protected]
  license:
    name: Apache License, Version 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: 1.3.0
servers:
  - url: https://api.factset.com/analytics/dsotm/v1
paths:
  /transactions:
    post:
      tags:
        - Transactions
      summary: Push transactions data into FactSet.
      description: This endpoint takes the transactions data and pushes them into FactSet.
      operationId: sendTransactions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Transactions'
      responses:
        '202':
          description: Expected response.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '400':
          description: Invalid POST body.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientErrorResponse'
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '415':
          description: >-
            Missing/Invalid Content-Type header. Header needs to be set to
            application/json.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '429':
          description: >-
            Rate limit reached. Retry the requests after waiting the time
            specified in the retry-after header.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '500':
          description: >-
            Server error. Log the X-DataDirectRequest-Key header to assist in
            troubleshooting.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
                description: FactSet’s request key header.
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
                description: >-
                  Key to uniquely identify an Analytics API request. Only
                  available after successful authentication.
components:
  schemas:
    ExecutionParameters:
      required:
        - amount
        - currencyiso
        - description
        - gross
        - net
        - portfolio
        - settlementcurrencyiso
        - settlementdate
        - settlementvalue
        - status
        - symbol
        - tradedate
        - tradetype
        - transactionid
      type: object
      properties:
        parentid:
          maxLength: 32
          minLength: 0
          type: string
          description: Unique ID of the placement which spawned this execution
          nullable: true
        net:
          type: number
          description: Cash value of the transaction, net of brokerage costs.
          format: double
        gross:
          type: number
          description: Cash value of the transaction, including brokerage costs
          format: double
        settlementvalue:
          type: number
          description: >-
            Cash value of the transaction, a value that has been multiplied by
            an applicable FX rates to convert the a transacti
          format: double
        settlementdate:
          type: string
          description: Settlement date in YYYYMMDD format
        settlementcurrencyiso:
          maxLength: 32
          minLength: 0
          type: string
          description: Currency code for Settlement Value
        orderid:
          maxLength: 32
          minLength: 0
          type: string
          description: Unique ID of the order which originated the record
          nullable: true
        portfolio:
          type: string
          description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)'
        transactionid:
          maxLength: 252
          minLength: 0
          type: string
          description: Unique id for the transaction
        symbol:
          maxLength: 32
          minLength: 0
          type: string
          description: Symbol corresponding to the traded instrument.
        description:
          maxLength: 32
          minLength: 0
          type: string
          description: Description
        tradetype:
          maxLength: 8
          minLength: 0
          type: string
          description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively."
        status:
          maxLength: 32
          minLength: 0
          type: string
          description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively."
        tradedate:
          type: string
          description: Transaction date which is in the format YYYYMMDD
        transactionleaves:
          type: number
          description: Shares that have been ordered and not executed
          format: double
        amount:
          type: number
          description: Quantity of the instrument traded.
          format: double
        currencyiso:
          maxLength: 8
          minLength: 0
          type: string
          description: >-
            The currency code of cash valued fields, Net Amount and Gross
            Amount.
        foreignexchangerate:
          type: number
          description: >-
            FX rate that can be picked up by PA, multiplied with the cash valued
            fields, Net, Gross, to allow PA to show transactions in reporting
            currency.
          format: float
    PlacementParameters:
      required:
        - amount
        - currencyiso
        - description
        - portfolio
        - settlementcurrencyiso
        - status
        - symbol
        - tradedate
        - tradetype
        - transactionid
      type: object
      properties:
        settlementcurrencyiso:
          maxLength: 32
          minLength: 0
          type: string
          description: Currency code for Settlement Value
        parentid:
          maxLength: 32
          minLength: 0
          type: string
          description: Unique ID of the order which spawned this placement
          nullable: true
        orderid:
          maxLength: 32
          minLength: 0
          type: string
          description: Unique ID of the order which originated the record
          nullable: true
        portfolio:
          type: string
          description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)'
        transactionid:
          maxLength: 252
          minLength: 0
          type: string
          description: Unique id for the transaction
        symbol:
          maxLength: 32
          minLength: 0
          type: string
          description: Symbol corresponding to the traded instrument.
        description:
          maxLength: 32
          minLength: 0
          type: string
          description: Description
        tradetype:
          maxLength: 8
          minLength: 0
          type: string
          description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively."
        status:
          maxLength: 32
          minLength: 0
          type: string
          description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively."
        tradedate:
          type: string
          description: Transaction date which is in the format YYYYMMDD
        transactionleaves:
          type: number
          description: Shares that have been ordered and not executed
          format: double
        amount:
          type: number
          description: Quantity of the instrument traded.
          format: double
        currencyiso:
          maxLength: 8
          minLength: 0
          type: string
          description: >-
            The currency code of cash valued fields, Net Amount and Gross
            Amount.
        foreignexchangerate:
          type: number
          description: >-
            FX rate that can be picked up by PA, multiplied with the cash valued
            fields, Net, Gross, to allow PA to show transactions in reporting
            currency.
          format: float
    OrderParameters:
      required:
        - amount
        - currencyiso
        - description
        - portfolio
        - status
        - symbol
        - tradedate
        - tradetype
        - transactionid
      type: object
      properties:
        orderid:
          maxLength: 32
          minLength: 0
          type: string
          description: Unique ID of the order which originated the record
          nullable: true
        portfolio:
          type: string
          description: 'Path of the portfolio (Ex: Client:/folder1/testing.ofdb)'
        transactionid:
          maxLength: 252
          minLength: 0
          type: string
          description: Unique id for the transaction
        symbol:
          maxLength: 32
          minLength: 0
          type: string
          description: Symbol corresponding to the traded instrument.
        description:
          maxLength: 32
          minLength: 0
          type: string
          description: Description
        tradetype:
          maxLength: 8
          minLength: 0
          type: string
          description: "Trade type could be any of the following values BL, BC, SL, SS.\r\nwhich stands for Buy Long, Buy to cover, Sell Long and Sell Short respectively."
        status:
          maxLength: 32
          minLength: 0
          type: string
          description: "Status could be any of the following value: ACCT or CNCL.\r\nwhich stands for Accounted and Cancelled respectively."
        tradedate:
          type: string
          description: Transaction date which is in the format YYYYMMDD
        transactionleaves:
          type: number
          description: Shares that have been ordered and not executed
          format: double
        amount:
          type: number
          description: Quantity of the instrument traded.
          format: double
        currencyiso:
          maxLength: 8
          minLength: 0
          type: string
          description: >-
            The currency code of cash valued fields, Net Amount and Gross
            Amount.
        foreignexchangerate:
          type: number
          description: >-
            FX rate that can be picked up by PA, multiplied with the cash valued
            fields, Net, Gross, to allow PA to show transactions in reporting
            currency.
          format: float
    Transactions:
      type: object
      properties:
        executions:
          type: array
          items:
            $ref: '#/components/schemas/ExecutionParameters'
          description: List of executions
          nullable: true
        placements:
          type: array
          items:
            $ref: '#/components/schemas/PlacementParameters'
          description: List of placements
          nullable: true
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OrderParameters'
          description: List of orders
          nullable: true
    ErrorSource:
      type: object
      properties:
        pointer:
          type: string
          nullable: true
        parameter:
          type: string
          nullable: true
    Error:
      type: object
      properties:
        id:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        detail:
          type: string
          nullable: true
        source:
          $ref: '#/components/schemas/ErrorSource'
    ClientErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          nullable: true
  securitySchemes:
    FactSetApiKey:
      type: http
      scheme: basic
    FactSetOAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.factset.com/as/token.oauth2
          scopes: {}
security:
  - FactSetApiKey: []
  - FactSetOAuth2: []
externalDocs:
  description: API Documentation
  url: >-
    https://developer.factset.com/api-catalog/direct-streaming-transaction-messages-api
tags:
  - name: Transactions