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

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

# FullRequest

Combines Shell (Step 1) and Full (Step 2) submission data. **Required:** `underWriter` (id), `revTurnover`. Shell fields (`insured`, `producer`, `policy`, `directAssumed`, `typeOfBilling`, `division`, `writtenLine`, `sectionIdentifier`, `referenceType`, `typeOfPlacementBespoke`, `class`) are required on first submission and optional on subsequent re-submissions (already on the draft). Optional fields: `producingUnderwriter` (id), `producingCompany` (id), `lloydsIndustrialSector` (id), `marketSource` (id). Per-line fields (`ourRole`, `signedLinePercentage`) are set via `lines[]` in `quoteRequest`.

## 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"
    SubmissionInsured:
      type: object
      description: >-
        Insured details for the shell submission.


        **Option A — Existing contact:** Set `insureContacts.id` to the XFI
        contact identifier. All other insured fields are ignored.


        **Option B — New insured:** Provide `companyName`, `domicileCountry`,
        `domicileState`, and any available mailing-address fields.
        `insureContacts` must be omitted.
      properties:
        companyName:
          type: string
          description: "**Required when creating a new insured** (i.e. `insureContacts` is
            not provided). Legal company name as stated in the submission
            documentation."
          x-conditional-required: Required when creating a new insured (insureContacts not provided).
          example: Veritas Capital
        domicileCountry:
          description: '**Required when creating a new insured.** Domicile country —
            **always send as `code`**, e.g. `{ "code": "USA" }`. Represents the
            country where the insured is legally domiciled.'
          example:
            code: USA
          properties:
            code:
              description: ISO country code or XFI country code.
              example: USA
              type: string
          required:
            - code
          type: object
          x-conditional-required: Required when creating a new insured (insureContacts not provided).
        domicileState:
          description: '**Required when creating a new insured** and the domicile country
            has state-level data. Domicile state — **always send as `code`**,
            e.g. `{ "code": "NY" }`.'
          example:
            code: NJ
          properties:
            code:
              description: State/province code.
              example: NY
              type: string
          required:
            - code
          type: object
          x-conditional-required: Required when creating a new insured (insureContacts not provided).
        mailingAddress1:
          type: string
          example: 123 Cedar Street
        mailingAddressCity:
          type: string
          example: Green Bay
        email:
          type: string
          format: email
          description: Optional if insureContacts is provided.
          example: underwriting@veritascap.com
        zipCode:
          type: string
          description: Post code / zip for the insured mailing address. **Required when
            creating a new insured** and the insured’s country uses postal
            codes.
          x-conditional-required: Required when creating a new insured and the country
            uses postal codes.
          example: "54304"
        obligor:
          $ref: "#/components/schemas/IdReference"
          description: Conditional — Political Risk only. Obligor contact reference — `id`
            only.
        insureContacts:
          $ref: "#/components/schemas/IdReference"
          description: 'Insured contact reference — `id` only (e.g. `{ "id": "2000887"
            }`). Use this to reference an existing insured in XFI. When
            supplied, all other insured fields (companyName, domicile, mailing
            address) are ignored.'
    SubmissionProducer:
      type: object
      description: Producer (broker) reference used on a submission. `id` identifies
        the producer (broker company). Optionally include a `contactliaison`
        block to attach, create, or update the broker contact liaison recorded
        on the policy.
      required:
        - id
      properties:
        id:
          type: string
          description: "**Required.** XFI contact key of the producer (broker company).
            `id` only."
          example: "2000556"
        contactliaison:
          $ref: "#/components/schemas/ContactLiaisonSubmission"
          description: Optional. Broker contact liaison to record on the policy. See
            ContactLiaisonSubmission for the attach/create/update behavior.
    SubmissionPolicy:
      type: object
      description: Policy node. effectiveDate, expiryDate, currency, product,
        territory are mandatory.
      required:
        - effectiveDate
        - expiryDate
        - currency
        - product
        - territory
      properties:
        effectiveDate:
          type: string
          format: date
          description: "**Required.** Policy effective date (ISO 8601). Source: policy
            terms section of the slip."
          example: 2024-01-01
        expiryDate:
          type: string
          format: date
          description: "**Required.** Policy expiry date (ISO 8601). Source: policy terms
            section of the slip."
          example: 2025-01-01
        currency:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Currency reference — `code` only (e.g. `USD`, `GBP`,
            `EUR`)."
        product:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Product reference — `id` only."
        territory:
          $ref: "#/components/schemas/CodeReference"
          description: "**Required.** Territory reference — `code` only."
    SectionIdentifierRef:
      type: object
      description: Section identifier, identified by `id`. Ids are fixed and stable
        across all environments.
      required:
        - id
      additionalProperties: false
      properties:
        id:
          type: string
          enum:
            - "1"
            - "2"
          description: 1 = C&C, 2 = Non C&C.
          example: "1"
    ReferenceTypeRef:
      type: object
      description: Reference type, identified by `id`. Ids are fixed and stable across
        all environments.
      required:
        - id
      additionalProperties: false
      properties:
        id:
          type: string
          enum:
            - "1"
            - "2"
            - "3"
          description: 1 = EEA, 2 = Non-EEA, 3 = Both.
          example: "1"
    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
    ContactLiaisonSubmission:
      type: object
      description: >-
        Broker contact liaison recorded under the producer for this submission.
        The platform resolves this block one of three ways:


        1. **Update by key** — supply `contactliaisonid.id` (an existing liaison
        key). That liaison is updated in place with the `email`, `phoneNo`, and
        `mobilePhone` values provided; the platform targets it directly without
        searching by name. `firstName` + `lastName` must also be supplied.

        2. **Update by name match** — omit `contactliaisonid`. When `firstName`
        + `lastName` match an existing liaison under the producer, that liaison
        is updated in place.

        3. **Create** — omit `contactliaisonid` and supply a `firstName` +
        `lastName` that do not match any existing liaison; a new liaison is
        created.


        `firstName` and `lastName` are required in all three cases.
      required:
        - firstName
        - lastName
      properties:
        contactliaisonid:
          $ref: "#/components/schemas/IdReference"
          description: Optional. Existing contact liaison key (id only). When supplied,
            the platform attaches that liaison and all individual fields become
            optional. Omit to create or update by name match.
        firstName:
          type: string
          description: Required when creating a new contact (Mode B). First name of the
            broker contact person.
          example: John
        lastName:
          type: string
          description: Required when creating a new contact (Mode B). Last name of the
            broker contact person.
          example: Smith
        email:
          type: string
          format: email
          description: Required when creating a new contact (Mode B). Email address of the
            liaison.
          example: Yes@example.com
        phoneNo:
          type: string
          description: Required when creating a new contact (Mode B). Office/landline
            phone number of the liaison.
          example: "9000000000"
        mobilePhone:
          type: string
          description: Optional. Mobile / cell phone number of the liaison.
          example: 899 898 09
        faxNo:
          type: string
          description: Optional. Fax number of the liaison.
          example: "45"
        state:
          type: object
          description: 'Optional. State where the liaison is located. Always send as code,
            e.g. { "code": "UT" }.'
          properties:
            code:
              type: string
              example: UT
          example:
            code: UT
        city:
          type: object
          description: 'Optional. City where the liaison is located. Always send as
            description, e.g. { "description": "Green Bay" }.'
          properties:
            description:
              type: string
              example: Green Bay
          example:
            description: Green Bay
        region:
          type: object
          description: 'Optional. Region of the liaison. Always send as description, e.g.
            { "description": "GBR" }.'
          properties:
            description:
              type: string
              example: GBR
          example:
            description: GBR
      example:
        firstName: John
        lastName: Smith
        email: Yes@example.com
        phoneNo: "9000000000"
        mobilePhone: 899 898 09
        faxNo: "45"
        state:
          code: UT
        city:
          description: Green Bay
        region:
          description: GBR
        contactliaisonid:
          id: "1234"
    FullRequest:
      type: object
      description: >-
        Combines Shell (Step 1) and Full (Step 2) submission data.


        **Required:** `underWriter` (id), `revTurnover`.


        Shell fields (`insured`, `producer`, `policy`, `directAssumed`,
        `typeOfBilling`, `division`, `writtenLine`, `sectionIdentifier`,
        `referenceType`, `typeOfPlacementBespoke`, `class`) are required on
        first submission and optional on subsequent re-submissions (already on
        the draft).


        Optional fields: `producingUnderwriter` (id), `producingCompany` (id),
        `lloydsIndustrialSector` (id), `marketSource` (id).


        Per-line fields (`ourRole`, `signedLinePercentage`) are set via
        `lines[]` in `quoteRequest`.
      required:
        - insured
        - producer
        - policy
        - directAssumed
        - typeOfBilling
        - division
        - writtenLine
        - sectionIdentifier
        - referenceType
        - typeOfPlacementBespoke
        - underWriter
        - mosaicOccupation
        - revTurnover
      properties:
        underWriter:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Underwriter who submitted the risk request — `id`
            only. Must be the underwriter with authority to write the business.
            Source: underwriter's email or document."
        mosaicOccupation:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Mosaic occupation — `id` only. Required for all
            LOBs. Source: insured occupation lookup."
        producingCompany:
          $ref: "#/components/schemas/IdReference"
          description: "**Conditional.** Producing company — id only. Required when
            division is Mosaic Asta Europe (MAE)."
          x-conditional-required: Required when division is Mosaic Asta Europe (MAE).
        lloydsIndustrialSector:
          $ref: "#/components/schemas/IdReference"
          description: "**Conditional.** Lloyd's Industrial Sector override — id only.
            Required for all LOBs. When supplied, takes precedence over the
            server's automatic derivation (UC8). Leave blank to allow automatic
            derivation."
          x-conditional-required: Required for all LOBs. Leave blank to allow automatic derivation.
        revTurnover:
          type: integer
          minimum: 0
          format: int32
          description: "**Required.** Insured's annual revenue or turnover (numeric).
            Required for CY, FI, PL and Casualty LOBs. Source: booking sheet or
            Tyche rater. Update if a more accurate figure is available at quote
            stage."
          example: 0
        insured:
          $ref: "#/components/schemas/SubmissionInsured"
          description: "**Required.** Insured details — use `insureContacts.id` for an
            existing contact, or supply `companyName` + domicile fields for a
            new insured."
        producer:
          $ref: "#/components/schemas/SubmissionProducer"
          description: "**Required.** Producer (broker) reference. Supply `id` (producer
            `id` only). Optionally include a `contactliaison` block to attach,
            create, or update the broker contact liaison recorded on the policy
            (see ContactLiaisonSubmission)."
        policy:
          $ref: "#/components/schemas/SubmissionPolicy"
          description: "**Required.** Policy node (dates, currency, product, territory)."
        directAssumed:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Business type — `id` only (Direct or Assumed)."
        typeOfBilling:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** `id` only."
        division:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** `id` only."
        writtenLine:
          type: integer
          minimum: 1
          format: int32
          description: Written line percentage (numeric, e.g. 100). Default to 100 if not
            specified by the underwriter. If provided, enter the value from the
            underwriter’s email or document. For Agency Share %, enter the
            agency percentage here. Can be updated at any stage.
          example: 100
        policyDescription:
          type: string
          description: Optional. Free-text policy description. Defaulted/derived
            server-side when omitted.
          example: Cyber primary 2026 renewal
        sectionIdentifier:
          $ref: "#/components/schemas/SectionIdentifierRef"
          description: "**Required.** Section identifier — `id` only (1 = C&C, 2 = Non
            C&C)."
        referenceType:
          $ref: "#/components/schemas/ReferenceTypeRef"
          description: "**Required.** Reference type — `id` only (1 = EEA, 2 = Non-EEA, 3
            = Both)."
        class:
          $ref: "#/components/schemas/CodeReference"
          description: 'Optional. Risk class — `code` only (e.g. `{ "code": "CY" }`).'
        typeOfPlacementBespoke:
          $ref: "#/components/schemas/IdReference"
          description: "**Required.** Mosaic MOP / bespoke type of placement — `id` only."
        producingUnderwriter:
          $ref: "#/components/schemas/IdReference"
          description: "**Optional.** Producing underwriter — `id` only. The underwriter
            who produced this submission."
        marketSource:
          $ref: "#/components/schemas/IdReference"
          description: Optional. Market source — `id` only.
```
