---
title: "Section"
url: "https://apipartners.mosaicinsurance.com/apis/trident-sandbox-1/versions/063565b3-7d5d-4ebb-9e4e-ea5966a41579/schemas/Section"
---

> Full API specification: https://apipartners.mosaicinsurance.com/apis/trident-sandbox-1/versions/063565b3-7d5d-4ebb-9e4e-ea5966a41579.md

# Section

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).

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Trident APIs
  version: dev
servers:
  - url: https://apinonprod.mosaicinsurance.com
    description: Generated server url
components:
  schemas:
    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"
    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
    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
    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"
    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"
```
