> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve the pricing, cash flows and unit risks of a booked contract.

> Loads a saved contract and returns the parameter rows, pricing units, and supporting tables used by its legacy Details page. Developer-only rows and tables require the authenticated developer claim. Quantity is the contract's prepared display quantity, not an aggregate portfolio holding. Unit-risk output is also returned for API consumers, although the legacy Details page does not show a risk table. Setting `UseReportMarketData` uses the report's saved market data or its dates and providers. When a live risk report has no saved container and is priced today, the legacy resolver can fetch a fresh live snapshot. The response then includes its acquisition time and a refresh flag; repeat the same request to refresh it. Unlike `ValidateTrade` this needs no parse of a candidate position, so it also describes contract types whose import round trip is incomplete. This synchronous operation is read-only.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/Tradable/GetTradableDetails
openapi: 3.0.4
info:
  title: Derivitec Api 1.0
  version: '1.0'
servers:
  - url: https://api.riskportal.activeviam.com
security:
  - oauth2: []
  - apikey: []
tags:
  - name: AdminUser
  - name: AtotiReport
  - name: AtotiSession
  - name: BloombergOAuth
  - name: Bond
  - name: BondYieldCurvePage
  - name: BookAccess
  - name: Books
  - name: Commodity
  - name: Counterparties
  - name: Currencies
  - name: Equity
  - name: EquityDividend
  - name: EquityPage
  - name: FeatureFlag
  - name: Fx
  - name: FxPage
  - name: GroupAccess
  - name: Home
  - name: LegacyPosition
  - name: MarketData
  - name: MarketDataProvider
  - name: MarketDataProviderAccess
  - name: Meta
  - name: Notification
  - name: Organisation
  - name: PnLReport
  - name: PortfolioAccess
  - name: Portfolios
  - name: Position
  - name: PositionFilter
  - name: PricingEnvironment
  - name: PricingEnvironmentAccess
  - name: RateAsset
  - name: RateAssetPage
  - name: Report
  - name: ReportDefinition
  - name: ReportHistoryLauncherQuery
  - name: ReportLauncher
  - name: ReportQuery
  - name: ReportQueryViewUser
  - name: ReportRestriction
  - name: ReportView
  - name: RiskReport
  - name: Tradable
  - name: TradeBooking
  - name: User
  - name: VarReport
  - name: VarReportQuery
  - name: YieldCurvePage
paths:
  /api/Tradable/GetTradableDetails:
    post:
      tags:
        - Tradable
      summary: Retrieve the pricing, cash flows and unit risks of a booked contract.
      description: >-
        Loads a saved contract and returns the parameter rows, pricing units,
        and supporting tables used by its legacy Details page. Developer-only
        rows and tables require the authenticated developer claim. Quantity is
        the contract's prepared display quantity, not an aggregate portfolio
        holding. Unit-risk output is also returned for API consumers, although
        the legacy Details page does not show a risk table. Setting
        `UseReportMarketData` uses the report's saved market data or its dates
        and providers. When a live risk report has no saved container and is
        priced today, the legacy resolver can fetch a fresh live snapshot. The
        response then includes its acquisition time and a refresh flag; repeat
        the same request to refresh it. Unlike `ValidateTrade` this needs no
        parse of a candidate position, so it also describes contract types whose
        import round trip is incomplete. This synchronous operation is
        read-only.
      operationId: GetTradableDetails
      requestBody:
        description: >-
          JSON request with the `TradableId` of a booked contract, the
          `ReportingCurrency` its values are quoted in, and optionally
          `UseReportMarketData` with the `ReportId` supplying that data.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiGetTradableDetailsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiGetTradableDetailsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiGetTradableDetailsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiGetTradableDetailsRequest'
      responses:
        '200':
          description: >-
            Returns the contract's identity, quantity, pricing, tables and unit
            risks. A contract that could not be priced carries the reason in its
            pricing details rather than failing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiGetTradableDetailsResponse'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiGetTradableDetailsRequest:
      required:
        - $type
      type: object
      properties:
        reporting_currency:
          type: string
          description: >-
            Currency in which monetary results are expressed. When null, the
            service uses the caller's configured reporting currency or USD.
          nullable: true
          example: USD
        tradable_id:
          type: string
          description: >-
            Identifies the booked tradable to describe, as the contract
            identifier the portfolio holds

            rather than a position or trade id.
          nullable: true
        use_report_market_data:
          type: boolean
          description: >-
            Whether to resolve market data from the report's saved container or
            its dates and providers.

            Without a saved container, a live risk report priced today can fetch
            a fresh live snapshot

            through the legacy resolver. Defaults to false, which uses the
            latest close data.
        report_id:
          type: string
          description: >-
            The report whose saved market data or valuation context prices the
            contract when

            Derivitec.Web.Core.TradeBooking.ApiGetTradableDetailsRequest.UseReportMarketData
            is set. Ignored otherwise.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.TradeBooking.ApiGetTradableDetailsRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Requests the legacy Details-page presentation of a saved contract by its
        tradable identifier,

        with optional report market data. Loads the contract directly without
        parsing or validating

        a candidate trade. Details-page units and table visibility may differ
        from booking output.
    ApiGetTradableDetailsResponse:
      required:
        - $type
      type: object
      properties:
        is_success:
          type: boolean
          description: >-
            Whether the operation completed successfully. The default is `true`;
            error outcomes set it to `false`.
          example: true
        error_messages:
          type: array
          items:
            type: string
          description: >-
            Messages explaining operation-level failures. The collection is
            empty by default.
          nullable: true
        contract_type:
          type: string
          description: >-
            The contract type this tradable is, which selects the schema used to
            render its own fields

            read-only.
          nullable: true
          example: CmdtyFuture
        title:
          type: string
          description: >-
            The tradable's name as the portfolio shows it, used as the page
            heading.
          nullable: true
        description:
          type: string
          description: >-
            The longer description shown beneath the title, naming the contract
            type in the words a

            trader would use.
          nullable: true
        quantity:
          type: number
          description: >-
            Display quantity from the loaded contract after legacy Details-page
            preparation. Some contract

            types normalize this to one for unit valuation. This is not a
            portfolio holding or a sum

            across books; multiply only pricing entries marked ScalesByQty by
            this value.
          format: double
        pricing_details:
          $ref: '#/components/schemas/PricingDetailsModel'
        show_live_data_refresh:
          type: boolean
          description: >-
            Whether the legacy market-data resolver applied live data for this
            valuation and the

            caller can request a fresh snapshot by repeating the same details
            request. False for

            close data, saved report containers, or when no valid live-data
            override was applied.
          example: true
        live_data_snapshot_time:
          type: string
          description: >-
            Time the legacy market-data resolver applied the live snapshot used
            for this valuation,

            in ISO 8601 format with the server's UTC offset. This is the
            snapshot acquisition time,

            not the report run time or an individual quote's timestamp. Null
            when

            Derivitec.Web.Core.TradeBooking.ApiGetTradableDetailsResponse.ShowLiveDataRefresh
            is false.
          format: date-time
          nullable: true
          example: '2026-09-17T11:23:45+01:00'
        data_tables:
          type: array
          items:
            $ref: '#/components/schemas/DataTableWithMetadata'
          description: >-
            Legacy Details-page parameter and supporting tables, including cash
            flows and fixings when

            that page exposes them. Each table supplies ordered rows, column
            captions, and display

            formats. Developer-only rows and tables require the authenticated
            developer claim. Null

            when market data is unavailable; otherwise empty when no tables are
            available.
          nullable: true
        tradable_risk_data:
          $ref: '#/components/schemas/TradableRiskDataModel'
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.TradeBooking.ApiGetTradableDetailsResponse,
              Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Describes a saved contract using its legacy Details-page parameter rows,
        pricing units, and

        supporting tables. Unit-risk output is also returned for API consumers.
    PricingDetailsModel:
      required:
        - $type
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/KeyValuePairViewModel'
          description: >-
            Named pricing-detail values returned for display. The collection is
            empty by default.
          nullable: true
        error_message:
          type: string
          description: >-
            Message explaining why pricing details could not be produced. The
            default is an empty string.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.PricingDetailsModel, Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Collection of display-ready pricing details with an optional overall
        error message.
    DataTableWithMetadata:
      type: object
      properties:
        headers:
          type: object
          additionalProperties:
            type: string
          description: >-
            Mapping from each column identifier to its display caption; null
            when no data table was supplied.
        rows:
          description: >-
            Rows in the returned table, or null when no data table was supplied.

            Tradable detail rows may include reserved Link metadata: a string
            links the Value cell,

            while an object maps visible column identifiers to
            application-relative URLs. Link metadata

            is not a display column; missing or null entries render ordinary
            unlinked values.

            Reserved Emphasis metadata is an array of visible column identifiers
            whose cells use bold text,

            such as the cheapest deliverable bond in a physically settled
            future's basket. Missing, null,

            or empty arrays apply no emphasis; Emphasis itself is not a display
            column.
          nullable: true
        table_header:
          type: string
          description: Display heading for the returned table.
          nullable: true
          example: Example results
        column_formatters:
          type: object
          additionalProperties:
            type: string
          description: >-
            Mapping from column identifiers to client display-format patterns;
            null when none was supplied.

            Numeric patterns include n0, n4 and custom decimal patterns; date
            patterns use day, month and year tokens.

            Legacy details may prefix numeric patterns with legacy-number: for
            Kendo rounding and accounting negatives,

            or legacy-format: for server-style accounting formatting and
            near-zero suppression. A trailing numeric

            scale on legacy-format: (for example legacy-format:n4:100)
            identifies values already multiplied by that

            factor; clients test the original unscaled value against the legacy
            near-zero threshold of 1e-10.

            Columns absent from the mapping use their ordinary display
            representation.
      additionalProperties: false
      description: >-
        Tabular result data accompanied by display headings and per-column
        formatting metadata.
    TradableRiskDataModel:
      required:
        - $type
      type: object
      properties:
        error_message:
          type: string
          description: >-
            Diagnostic explaining why unit-risk data could not be produced, when
            applicable.
          nullable: true
        unit_risks:
          type: array
          items:
            $ref: '#/components/schemas/KeyValuePairViewModel'
          description: Named unit-risk values calculated for the tradable.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.Tradables.TradableRiskDataModel,
              Derivitec.Web.Core
      additionalProperties: false
      description: Unit-risk values and an optional diagnostic for one tradable.
    KeyValuePairViewModel:
      required:
        - $type
      type: object
      properties:
        error_message:
          type: string
          description: >-
            Message explaining why the named value could not be produced. The
            default is an empty string.
          nullable: true
        format_string:
          type: string
          description: >-
            Client display-format pattern for the returned value, or null when
            no pattern is supplied.
          nullable: true
        key:
          type: string
          description: Label identifying the returned value.
          nullable: true
        scales_by_qty:
          type: boolean
          description: >-
            Whether the returned value is intended to scale with position
            quantity. The default is `false`.
          example: false
        value:
          description: >-
            Returned value associated with the label. Interpret its presentation
            using the accompanying format, currency, and scaling fields when
            populated.
          oneOf:
            - type: string
              nullable: true
            - type: number
            - type: boolean
            - type: array
              items: {}
            - type: object
              additionalProperties: true
        currency:
          type: string
          description: >-
            Currency associated with the returned value, or an empty string when
            no currency is supplied.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.KeyValuePairViewModel, Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Display-ready named value with optional formatting, currency,
        quantity-scaling, and error context.
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth2 access-token requested from AWS Cognito and provided as a Auth
        Bearer header
      flows:
        implicit:
          authorizationUrl: https://auth.riskportal.derivitec.com/oauth2/authorize
          scopes: {}
    apikey:
      type: apiKey
      description: API-Key requested via the site and provided as a header
      name: x-api-key
      in: header

````