---
title: "QuoteRequest"
url: "https://apipartners.mosaicinsurance.com/apis/trident-ap-is-beta/versions/018fd555-bac2-494f-872b-ac47b74f1e75/schemas/QuoteRequest"
---

> Full API specification: https://apipartners.mosaicinsurance.com/apis/trident-ap-is-beta/versions/018fd555-bac2-494f-872b-ac47b74f1e75.md

# QuoteRequest

Request body for POST /policies/quote — Step 3 of the submission lifecycle.

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Trident APIs
  version: uat
servers:
  - url: https://apinonprod.mosaicinsurance.com
    description: Generated server url
components:
  schemas:
    CodeReference:
      type: object
      description: Reference to a lookup-backed entity identified by `code` (the
        environment-stable business code).
      required:
        - code
      additionalProperties: false
      properties:
        code:
          type: string
    IdReference:
      type: object
      description: Reference to a lookup-backed entity identified by `id` (the XFI
        lookup id, environment-specific).
      required:
        - id
      additionalProperties: false
      properties:
        id:
          type: string
          description: XFI lookup id — the canonical identifier (environment-specific).
          example: "260"
    Section:
      type: object
      description: "A single section within a quote submission. The front end sends
        **at most two** section objects: one for the main Agency policy
        (MSSL/MAIS etc.), and one for the Mosaic Asta Europe (MAE) policy when
        the risk has an EEA component. Each section carries a `division.id` that
        identifies which agency line it belongs to. Trident uses this to
        determine which syndicate lines (1609/2610 for the agency section;
        5399/5431 for the MAE section)."
      required:
        - division
        - agreement
        - typeOfLimitBasis
        - solvencyIIClass
        - excess
        - 100%Limit
        - coverage
        - typeOfLayer
        - regulatoryCoding
        - paymentDays
        - gELR
      properties:
        division:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Agency division this section belongs to — `id` only.
            Must match the `division.id` supplied in the corresponding `lines[]`
            entry. Trident uses this to identify: (a) which XFI agency line to
            associate the section with, and (b) which syndicate lines to include
            (agency div → 1609+2610; MAE div 7 → 5399+5431)."
        description:
          type: string
          example: Cyber Liability - Primary Layer
          description: Section label (e.g. 'Cyber Liability - Primary Layer'). Use a
            descriptive name that identifies the layer type and coverage for
            internal reference.
        gELR:
          type: number
          format: double
          description: "**Required.** gELR (gross expected loss ratio) at section level
            (numeric, e.g. 50). Source: quote/bind documentation."
          example: 50
        typeOfLayer:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Type of layer — `id` only. Select 'Primary' if
            Mosaic takes the first layer in the tower; select '1st Excess' or
            higher for layers further up the tower. Default to 'Primary' if not
            specified by the underwriter. Source: quote email or documentation."
        solvencyIIClass:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Solvency II class — `id` only. For CY LOB, select
            'EP - Direct-General Liability'. Enter the risk code applicable for
            the class of business."
        typeOfLimitBasis:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Type of limit basis — `id` only. Source: quote email
            or documentation. Default to 'In the Aggregate' if not specified.
            Determines the basis and frequency at which the limit can be
            applied."
        excess:
          type: number
          format: double
          description: "**Required.** Excess / attachment point for this section
            (numeric). Set to 0 for the Primary layer. Set to the attachment
            point value for Excess layers."
          example: 0
        100%Limit:
          type: number
          format: double
          description: "**Required.** 100% limit for this section (numeric, gross
            pre-line). Source: quote documentation."
          example: 1000000
        aggregateLimit:
          type: number
          format: double
          description: Optional. Aggregate limit for this section (numeric, gross pre-line).
          example: 1000000
        agreement:
          $ref: "#/components/schemas/SectionAgreement"
          description: "**Required.** Agreement reference for this section. Identifies the
            binding authority agreement under which this section is written."
        coverage:
          type: array
          description: "**Required.** Coverage lines for this section. One entry per
            coverage type (e.g. SPL for Cyber Liability, BRC for Breach
            Response). Each coverage carries limits, premium, currencies, and
            bind-time attributes (premiumBasis, typeofClaimBasis)."
          items:
            $ref: "#/components/schemas/SectionCoverage"
        deduction:
          type: array
          description: "**Required for tax deductions.** Deduction lines for this section.
            For standard deductions (brokerage, commission), supply deduction +
            deductionRate. For tax deductions (TAXIDIR / TAXIRID / TAXIRIR),
            also populate amountOfPremium, typeOfTax, country, and
            contactCreation. One entry per deduction type (or per country for
            tax deductions)."
          items:
            $ref: "#/components/schemas/SectionDeduction"
        deductible:
          $ref: "#/components/schemas/Deductible"
          description: Deductible details for this section.
        conditions:
          type: array
          description: Clauses / conditions.
          items:
            $ref: "#/components/schemas/Condition"
        reinstatements:
          $ref: "#/components/schemas/Reinstatements"
          description: Reinstatement config.
        regulatoryCoding:
          type: array
          description: "**Required.** Regulatory coding / code split lines for this
            section. Add the Risk Classification Code set applicable for the
            agreement. All `codeSplitPc` values across all entries must sum to
            100. Server defaults to the agreement’s risk classification code if
            not provided."
          items:
            $ref: "#/components/schemas/RegulatoryCoding"
        marketSplit:
          type: array
          description: Section-level market split — the carrier syndicates participating
            on this section and their percentage shares. All `careerPercent`
            values across all entries must sum to 100.
          items:
            $ref: "#/components/schemas/SectionMarketSplit"
        class:
          $ref: "#/components/schemas/CodeReference"
          description: "Bind-time. Section class — `code` only. Excess Casualty: XSC when
            policy reference suffix is AA; XCP (Punitive Damages) when suffix is
            AU."
        riskAdjustedRateChange:
          type: number
          format: double
          description: "Bind-time. **Required for renewal policies.** Risk Adjusted Rate
            Change percentage. Must not be 0% for renewals — query the
            underwriter if not provided. Source: quote/bind documentation."
          example: 5
        instalmentbasis:
          $ref: "#/components/schemas/IdReference"
          description: "Optional. Instalment basis — `id` only (e.g. Annual, Quarterly,
            Monthly, Custom). Source: Premium Payment Terms section of the
            declaration slip. When set to Custom, also supply
            `customInstalments`, `instalmentCount`, and `instalmentPlan`."
        customInstalments:
          type: boolean
          description: "Optional. Set true for a custom (non-standard) instalment
            schedule. Depends on `instalmentbasis` — set true when
            `instalmentbasis` is Custom. When true: populate `instalmentCount`
            and `instalmentPlan`; set `overrideToSingle` to false."
          x-conditional-required: Required when instalmentbasis is set to Custom.
          example: false
        overrideToSingle:
          type: boolean
          description: Bind-time. Override to a single instalment. Mutually exclusive with
            `customInstalments` — must be false when customInstalments is true.
          example: false
        instalmentCount:
          type: integer
          format: int32
          description: Optional. Number of custom instalments. Depends on
            `instalmentbasis` — required when `customInstalments` is true (i.e.
            when `instalmentbasis` is Custom).
          x-conditional-required: Required when customInstalments is true.
          example: 4
        paymentDays:
          type: integer
          format: int32
          description: "**Required.** Payment days from inception (typically 30 or 60 for
            MSSL)."
          example: 30
        instalmentPlan:
          type: array
          description: Bind-time. Custom instalment schedule — required when
            customInstalments is true. All sharePercent values must sum to 100.
          items:
            $ref: "#/components/schemas/InstalmentEntry"
    Line:
      type: object
      description: >-
        A single **agency** policy line within a quote submission. Supply one
        element per underwriting **agency** line (one for the main Agency line;
        an additional one for the Mosaic Asta Europe agency line when the risk
        has an EEA component).


        **Front end supplies agency-line data only.** Trident retrieves all
        XFI-created lines (agency + syndicate) via *Get All Lines*, identifies
        each by Division ID (Agency = front-end `division.id`; MAE = 7; 1609 =
        3; 2610 = 12; 5399 = 6; 5431 = 13), and propagates most agency-line
        values to the syndicate lines ("Same as Agency Line"). Derived-only
        fields (`originatingDivision`, `originatingOffice`, global-risk
        cross-reference, inclusive-line) are computed by Trident and are **not**
        part of this payload.


        Fields are grouped by stage: Submission → Quote → FON → Bind.
      properties:
        underWriter:
          $ref: "#/components/schemas/IdReference"
          description: "Submission. **Required.** Underwriter with authority to write the
            risk — `id` only. Provided per agency line. Trident copies this to
            the syndicate lines. Source: underwriter's email/document."
        typeOfBilling:
          $ref: "#/components/schemas/IdReference"
          description: Submission. **Required.** Type of billing — `id` only (default
            'Producer billed'). Trident copies to syndicate lines.
        division:
          $ref: "#/components/schemas/IdReference"
          description: Submission. **Required.** Agency division — `id` only. Identifies
            the Mosaic entity binding this agency line (e.g. MSSL, MAIS; MAE =
            7). Trident matches this against XFI *Get All Lines* to locate the
            agency line. Do NOT confuse with the top-level shell `division`.
        writtenLine:
          type: number
          format: double
          description: Submission. **Required.** Written line percentage for this agency
            line (a.k.a. Agency Share %). Default 100 if not supplied. XFI
            auto-generates `actualWrittenLine%` from this. Trident copies to
            syndicate lines.
          example: 100
        producingCompany:
          $ref: "#/components/schemas/IdReference"
          description: Submission. **Conditional.** Producing company — `id` only.
            **Required when `division` = Mosaic Asta Europe (7)**; set to the
            relevant Non-EEA agency division (e.g. MSSL, MAIS).
          x-conditional-required: Required when division is Mosaic Asta Europe (7).
        sBFClass:
          $ref: "#/components/schemas/IdReference"
          description: Submission. SBF (Syndicate Business Forecast) class — `id` only
            (default Cyber). Provided per agency line; Trident copies to
            syndicate lines.
        producingUnderwriter:
          $ref: "#/components/schemas/IdReference"
          description: Quote. Producing underwriter for this line — `id` only. The
            underwriter who produced this line. Confirmed at bind by the stamp
            on the slip.
        ourRole:
          $ref: "#/components/schemas/IdReference"
          description: Quote. **Required.** Our role in the placement — `id` only. MAIS
            and Canada entities default to 'Sole Lead'.
        signedLinePercentage:
          type: number
          format: double
          description: "Quote. **Required.** Signed line percentage for this line. At
            quote, signed line equals written line; at bind it may be reduced
            (never exceeds written line). Note: for PV MAIS, Excess Casualty and
            Energy Liability, Syndicate 2610/5431 written & signed line are
            always 0%."
          example: 100
        lloydsPlatform:
          $ref: "#/components/schemas/IdReference"
          description: Quote. Lloyd's platform — `id` only. Set for MAE (Lloyd's Brussels)
            and Singapore (Lloyd's Asia) divisions; otherwise leave blank.
            Provided per agency line.
        bureauLead:
          $ref: "#/components/schemas/IdReference"
          description: Quote. Bureau lead — `id` only. E.g. 'PV Portal' for PV MAIS;
            otherwise usually blank. Provided per agency line (moved from UW
            Defaults).
        isThirdPartyCapacityDeployed:
          type: boolean
          description: "Quote. Third-party capacity deployed — default `true` (most Mosaic
            risks are routed through SCM). **Agency/MAE lines: always checked.**
            Trident leaves this BLANK on syndicate lines (1609/2610/5399/5431)."
          example: true
        syndicateCapitalManagement:
          $ref: "#/components/schemas/IdReference"
          description: Quote. Conditional. SCM broker partner — `id` only. **Required when
            `isThirdPartyCapacityDeployed` = true.** Default 'Acrisure' at
            quote; updated at bind per the SCM tracker. Trident leaves this
            BLANK on syndicate lines.
          x-conditional-required: Required when isThirdPartyCapacityDeployed = true.
        leadingInsurer:
          $ref: "#/components/schemas/IdReference"
          description: "Quote/Bind. Conditional. Leading insurer — `id` only. Required
            when the slip leader is non-Lloyd's. Source: Subscription Agreement
            section of the slip."
        brokerOrderPercent:
          type: number
          format: double
          description: FON. Broker order percentage. Auto-calculated when written line and
            order are entered; updated on bind.
          example: 50
        signedOrderPercent:
          type: number
          format: double
          description: "FON. Signed order percentage (SOP: always 100%). Kept in the API
            for simplicity."
          example: 100
        claimsAgreementParty:
          type: boolean
          description: "Bind. **Required.** Whether Mosaic is the claims agreement party.
            Set `true` when Mosaic is sole/bureau lead or a claims agreement
            party. Set `false` otherwise. 2610/5431 lines are always `false`.
            Source: Claims Agreement Party section of the slip."
          example: true
        defenseCostsCovered:
          $ref: "#/components/schemas/IdReference"
          description: Bind. Defense costs covered — id only. **Required for PL LOB**
            (processed per the Defense Cost section). Provided per agency line.
          x-conditional-required: Required for PL LOB.
        leaderPercent:
          type: number
          format: double
          description: "Bind. **Required when the slip leader is non-Lloyd's.** Leader
            percentage. Source: Subscription Agreement section of the slip."
          example: 25
          x-conditional-required: Required when the slip leader is non-Lloyds.
        leaderReference:
          type: string
          description: "Bind. Leader reference. Populated when the slip leader is
            non-Lloyd's. Source: Subscription Agreement section of the slip."
          example: LDR-2026-001
        actualDateWritten:
          type: string
          format: date
          description: Bind. **Required.** Date the underwriter agreed/stamped the slip.
            Found with the stamp on the slip.
          example: 2026-07-01
        dateSigned:
          type: string
          format: date
          description: Bind. **Required.** Signed date as stamped on the slip. Trident
            copies to syndicate lines.
          example: 2026-07-01
        policyLineReferenceOverride:
          type: string
          description: "Bind. **Required.** Base syndicate policy line reference (a.k.a.
            Reference Override) supplied by the front end. Trident derives the
            agency and parallel-syndicate references from this: agency lines
            increment the trailing alphabetic character (…AA → AB); parallel
            syndicate lines (2610/5431) replace the trailing character with an
            incrementing numeral (…AA → A1)."
          example: PWT3876925AA
    SectionAgreement:
      type: object
      description: Agreement reference for a quote section.
      required:
        - agreement
        - agreementActivity
        - agreementSection
      properties:
        agreement:
          type: string
          description: "**Required.** Agreement code (e.g. 'AGR0000159'). The Mosaic
            binding authority agreement under which this section is written."
          example: AGR0000159
        agreementActivity:
          type: string
          description: "**Required.** Agreement activity code (e.g. 'AGR0000159-22-01').
            The specific year/version of the agreement activity."
          example: AGR0000159-22-01
        agreementSection:
          type: string
          description: "**Required.** Agreement section identifier (e.g. '1'). Identifies
            the section within the agreement activity."
          example: "1"
    SectionCoverage:
      type: object
      description: Coverage line within a quote section.
      required:
        - limitCurrency
        - limitOccurrence
        - limitAggregate
        - premium
        - premiumCurrency
        - settlementCcy
        - premiumBasis
        - typeofClaimBasis
      properties:
        code:
          type: string
          description: Coverage type code (e.g. SPL = Cyber Liability, BRC = Breach
            Response Cost). Identifies which coverage this line represents
            within the section.
          example: SPL
        limitCurrency:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Limit currency — `code` only. The currency in which
            the coverage limits are denominated, as stated in the quote
            documentation."
        limitOccurrence:
          type: number
          format: double
          description: "**Required.** Per-occurrence limit for this coverage (numeric,
            100% basis). Source: quote documentation."
          example: 500000
        limitAggregate:
          type: number
          format: double
          description: "**Required.** Aggregate limit for this coverage (numeric, 100%
            basis). Source: quote documentation."
          example: 500000
        premium:
          type: number
          format: double
          description: "**Required.** 100% gross premium for this coverage (numeric). If
            the underwriter provides a total premium without per-coverage
            splits, divide it equally across coverages or use the percentages
            supplied by the underwriter."
          example: 15000
        premiumSplit%:
          type: number
          format: double
          description: Premium split percentage for this coverage line (numeric).
            Represents this coverage’s share of the total section premium.
          example: 50
        premiumCurrency:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Premium currency — `code` only. The currency in
            which the premium is denominated, as stated in the quote
            documentation."
        settlementCcy:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Settlement currency — `code` only. Options are
            restricted to the currencies available for the selected agreement.
            Default to match the premium/limit currency when not specified.
            Exception: Dubai division always settles in USD regardless of limit
            or premium currency."
        premiumBasis:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Premium basis — `id` only (e.g. Flat, M&D). Source:
            Premium Payment Terms section of the declaration slip."
        typeofClaimBasis:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Claims basis — `id` only. LOB rules: PV = LOD; CY/PL
            = CMD; FI PI/D&O/EPLI = CM; FI BB/7T = LD; Excess Casualty = LOD
            (occurrence risk codes) or CM (claims-made risk codes)."
        waitingPeriodAmount:
          type: number
          format: double
          description: Optional. Waiting period amount for this coverage (numeric).
          example: 25000
        waitingPeriodMeasurement:
          $ref: "#/components/schemas/IdReference"
          description: Optional. Waiting period measurement unit — `id` only.
        waitingPeriodTime:
          type: number
          description: Optional. Waiting period duration expressed in the selected
            measurement unit (numeric).
          example: 12
    SectionDeduction:
      type: object
      description: >-
        Deduction (brokerage / commission) or tax deduction line within a quote
        section.


        For tax deductions (deduction code TAXIDIR, TAXIRID, or TAXIRIR),
        populate the additional tax fields: amountOfPremium, typeOfTax, country,
        contactCreation. Record one entry per country in the tax schedule,
        including countries with 0% tax (use a Non-taxable entry).
      required:
        - deduction
        - deductionRate
        - amountOfPremium
      properties:
        deduction:
          $ref: "#/components/schemas/IdReference"
          description: Deduction type reference — id only.
        deductionRate:
          type: number
          format: double
          example: 20
        typeOfDeductionPayable:
          $ref: "#/components/schemas/IdReference"
          description: Optional. Type of deduction payable — id only.
        manualOverride:
          type: boolean
          description: Optional. Set `true` to enable manual override of the deduction
            rate in XFI. Must be enabled before editing any deduction value.
          example: true
        amountOfPremium:
          type: number
          format: double
          description: "**Required.** Premium allocation amount for this country entry
            (numeric, 100% basis). Represents the portion of the total premium
            attributable to this country."
          example: 15000
        typeOfTax:
          $ref: "#/components/schemas/IdReference"
          description: Type of tax — `id` only (e.g. Insurance Premium Tax). From the tax
            schedule on the slip.
        country:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Country for this tax entry — `code` only. Spain,
            Portugal, Italy and Canada require mandatory entries per Lloyd’s
            coverholder reporting standards."
        contactCreation:
          $ref: "#/components/schemas/TaxContactCreation"
          description: Optional. Supply when the insured contact for this country is not
            found in XFI. Required for Spain, Portugal, Italy and Canada per
            Lloyd's coverholder reporting standard.
    Deductible:
      type: object
      description: Deductible details for a quote section (single object, not an array).
      required:
        - typeOfDeductible
        - deductibleBasis
      properties:
        typeOfDeductible:
          $ref: "#/components/schemas/IdReference"
          description: Type of deductible — id only.
        deductibleBasis:
          $ref: "#/components/schemas/IdReference"
          description: Deductible basis — id only.
        allRiskDeductible:
          type: integer
          description: Optional. All-risk deductible indicator for this section — `1` when
            an all-risk deductible applies.
          example: 1
    Condition:
      type: object
      description: Clause / condition attached to a quote section.
      properties:
        typeOfClause:
          $ref: "#/components/schemas/IdReference"
          description: Type of clause — id only.
        clauseCode:
          type: string
          description: Clause code.
          example: LMA5400
        clauseCondition:
          type: string
          description: Clause description.
          example: Cyber affirmation clause
    Reinstatements:
      type: object
      description: Reinstatement configuration for a quote section.
      properties:
        reinstatementsApplicable:
          type: boolean
          example: true
        unlimitedReinstatements:
          type: boolean
          example: false
        noOfReinstatements:
          type: integer
          format: int32
          example: 1
        availableReinstatements:
          type: integer
          format: int32
          example: 1
        proRata:
          type: boolean
          example: true
        reinstatementPercent:
          type: number
          format: double
          example: 100
    RegulatoryCoding:
      type: object
      description: Regulatory coding (code split) line within a quote section.
      required:
        - code
        - codeSplitPc
      properties:
        code:
          type: string
          description: "**Required.** Regulatory / risk classification code (e.g. 'E2',
            '7T'). Source: the agreement’s risk classification code set."
          example: E2
        codeSplitPc:
          type: number
          format: double
          description: "**Required.** Code split percentage for this regulatory coding
            entry (numeric). All entries across the section must sum to 100."
          example: 50
        overrideAgreementRiskCode:
          type: boolean
          description: Set `true` to override the agreement’s default risk code with this
            entry. Default is `false`.
          example: false
        gELR:
          type: number
          format: double
          description: Optional. gELR (gross expected loss ratio) for this regulatory
            coding entry, when it differs from the section-level `gELR`.
          example: 50
    SectionMarketSplit:
      type: object
      description: A single carrier entry in a section-level market split.
      properties:
        careerPercent:
          type: number
          format: double
          description: Carrier percentage share for this section. All entries across the
            section's marketSplit must sum to 100.
          example: 60
        carrier:
          $ref: "#/components/schemas/CodeReference"
          description: 'Carrier syndicate — `code` only (e.g. `{ "code": "1609" }`).'
        carrierReference:
          type: string
          description: Carrier's own policy reference.
          example: MR-CYB-2026-001
    InstalmentEntry:
      type: object
      description: A single entry in a custom instalment plan.
      required:
        - dueDate
        - sharePercent
      properties:
        dueDate:
          type: string
          format: date
          description: Due date for this instalment.
          example: 2026-08-01
        sharePercent:
          type: number
          format: double
          description: Percentage of total premium due on this date. All entries across
            the instalmentPlan must sum to 100.
          example: 25
    TaxContactCreation:
      type: object
      description: Insured contact details to create in XFI for a specific tax-country
        entry. Required for Spain, Portugal, Italy and Canada when the insured
        record is not already present in XFI.
      properties:
        contactType:
          type: string
          description: XFI contact type.
          example: Company
        companyName:
          type: string
          description: Insured company name for this country.
          example: Veritas Capital Spain S.L.
        mailingAddressCountry:
          $ref: "#/components/schemas/CodeReference"
          description: Mailing address country — `code` only.
        mailingAddress1:
          type: string
          description: Mailing address line 1.
          example: Calle Gran Via 28
        mailingAddress2:
          type: string
          description: Mailing address line 2.
          example: Planta 3
        city:
          type: string
          description: City.
          example: Madrid
        state:
          $ref: "#/components/schemas/CodeReference"
          description: State — `code` only.
        postCode:
          type: string
          description: Post code.
          example: "28013"
    QuoteRequest:
      type: object
      description: Request body for POST /policies/quote — Step 3 of the submission
        lifecycle.
      required:
        - sections
        - summaryCurrency
        - typeOfCyberClauseStatus
        - uSClassification
      properties:
        summaryCurrency:
          $ref: "#/components/schemas/CodeReference"
          description: '**Required.** Summary (reporting) currency — `code` only (e.g. `{
            "code": "USD" }`).'
        typeOfCyberClauseStatus:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Type of Cyber clause status — `id` only. Enter Cyber
            clause details per the quote document. Leave blank if not available
            at quote stage."
        uSClassification:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** US classification — `id` only. Source: fiscal and
            regulatory section of the slip. Select 'Regulated' or
            'Non-Regulated' when risk originates from the United States. Select
            'Non-Regulated' when the risk does not originate from the United
            States. Leave blank if details are not yet available at quote stage
            (do not query)."
        uMR:
          type: string
          description: "Unique Market Reference. Required. Source: risk details section of
            the UK slip. Leave blank if not yet available."
          example: B1234CYB2026001
        noOfEmployees:
          type: integer
          format: int32
          example: 250
          description: "Number of employees. **Required for CY, FI and PL LOBs.** Source:
            submission documentation or rater."
        noOfPIIRecords:
          type: integer
          format: int64
          example: 100000
          description: "Number of Personally Identifiable Information (PII) records held
            by the insured. **Required for CY LOB.** Source: submission
            documentation."
        productTemplateSectionToAdd:
          type: string
          description: This is section description as configured in XFI. Required to
            create section in XFI. Non-business field managed by orchestration
            layer.
          example: Directors and Officers
        bindProbability:
          type: string
          description: Bind probability expressed as a percentage string (e.g. '100%').
            Indicates the likelihood the risk will proceed to bind. Supplied by
            the underwriter or front-end.
          example: 100%
        majorPeril:
          type: string
          description: Major peril description (e.g. 'Cyber Property'). Server-derived
            from the risk’s class; supply if known, otherwise leave blank for
            automatic derivation.
          example: Cyber Property
        sections:
          type: array
          description: "**Required.** One or two section objects. Each section represents
            one complete policy (all its layers/coverages grouped under the
            section for one agency entity). Supply **one section** for non-EEA
            risks (main Agency); supply **two sections** when the risk has an
            EEA component (main Agency + Mosaic Asta Europe). Each section must
            carry a `division.id` matching its corresponding `lines[]` entry.
            Trident uses the `division.id` per section to determine which XFI
            syndicate lines to associate via `sectionIncluded`: agency division
            → 1609+2610 lines; MAE division (7) → 5399+5431 lines. Bind-time
            attributes (instalmentbasis, paymentDays, premiumBasis,
            typeofClaimBasis) are included here."
          items:
            $ref: "#/components/schemas/Section"
        lines:
          type: array
          description: One entry per **agency** underwriting line (main Agency line; plus
            a Mosaic Asta Europe agency line when the risk has an EEA
            component). Each line carries submission fields (underWriter,
            typeOfBilling, division, writtenLine, producingCompany, sBFClass),
            quote fields (ourRole, signedLinePercentage, producingUnderwriter,
            lloydsPlatform, bureauLead, isThirdPartyCapacityDeployed,
            syndicateCapitalManagement, leadingInsurer), FON fields
            (brokerOrderPercent, signedOrderPercent), and bind fields
            (claimsAgreementParty, defenseCostsCovered, leaderPercent,
            leaderReference, actualDateWritten, dateSigned,
            policyLineReferenceOverride). Trident creates and populates the
            syndicate lines (1609/2610/5399/5431) internally; the front end does
            NOT send them. Derived fields (originating division/office,
            global-risk cross-reference, inclusive line) are computed by
            Trident.
          items:
            $ref: "#/components/schemas/Line"
```
