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

# Trident APIs

OpenAPI specification document.

```json
{"openapi":"3.0.1","info":{"title":"Trident APIs","description":"# Trident APIs\n\nThe Trident APIs let you create and progress cyber insurance submissions through their full lifecycle and look up reference data used across the platform.\n\n## Authentication\n\nAll endpoints require an API key sent in the `x-api-key` header.\n\n## Conventions\n\n- All requests and responses use `application/json`.\n- Dates use ISO 8601 (`YYYY-MM-DD`).\n- Lookup objects accept any one of `id`, `code`, or `description` — supply whichever you have. When more than one is provided, `id` takes precedence.\n- Errors follow a uniform shape (`code`, `message`) and use standard HTTP status codes.\n\n### Field requirement levels\n\nEvery request field is one of three levels, derived from the XFI SOP *Mandatory* rules:\n\n- **Required** — listed in the schema `required` array; the request is rejected if absent.\n- **Conditional** — required only when a stated condition holds (e.g. LOB, country of origin, new contact). The condition is described in the field and carried in the machine-readable `x-conditional-required` extension; the field is **not** in `required`.\n- **Optional** — supply only if known.\n\n## Submission lifecycle\n\n1. **Base** — `POST /policies/submission/base` creates a new DRAFT cyber submission and returns `policyKey` and `policyActivityKey`.\n2. **Full** — `POST /policies/submission?policyKey={policyKey}&policyActivityKey={policyActivityKey}` enriches the draft with underwriting and classification data.\n3. **Quote** — `POST /policies/quote?policyKey={policyKey}&policyActivityKey={policyActivityKey}` adds pricing and section data.\n\nA single-call orchestration of the entire lifecycle (Base + Full → Quote → Bind) is also available via `POST /policies/orchestrate`.","termsOfService":"https://www.connecttrident.com/terms","contact":{"name":"Trident API Support","url":"https://www.connecttrident.com/support"},"license":{"name":"Proprietary","url":"https://www.connecttrident.com/terms"},"version":"uat"},"servers":[{"url":"https://apinonprod.mosaicinsurance.com","description":"Generated server url"}],"tags":[{"name":"Submission","description":"Enrich a draft policy with underwriting and classification data."},{"name":"Lookups","description":"Look up contacts and allowed field values used across the platform."},{"name":"Policy","description":"Create, retrieve, and search policies across the lifecycle."},{"name":"Submission Data Extraction","description":"Extract submission data for use in other systems."}],"x-amazon-apigateway-gateway-responses":{"DEFAULT_4XX":{"responseParameters":{"gatewayresponse.header.Access-Control-Allow-Origin":"'*'","gatewayresponse.header.Access-Control-Allow-Headers":"'Content-Type,X-Amz-Date,Authorization,X-Api-Key,x-api-key,multipart/form-data,X-Origination-Source,X-Audit-UserId,x-origination-source,x-audit-userid'","gatewayresponse.header.Access-Control-Allow-Methods":"'GET,POST,PUT,DELETE,OPTIONS,PATCH'"}},"DEFAULT_5XX":{"responseParameters":{"gatewayresponse.header.Access-Control-Allow-Origin":"'*'","gatewayresponse.header.Access-Control-Allow-Headers":"'Content-Type,X-Amz-Date,Authorization,X-Api-Key,x-api-key,multipart/form-data,X-Origination-Source,X-Audit-UserId,x-origination-source,x-audit-userid'","gatewayresponse.header.Access-Control-Allow-Methods":"'GET,POST,PUT,DELETE,OPTIONS,PATCH'"}}},"paths":{"/submission/base":{"post":{"security":[{"api_key":[]}],"tags":["Submission"],"summary":"Base Shell Submission","description":"Creates a new DRAFT cyber submission — **Step 1** of the submission lifecycle (`Base → Full → Quote`).\n\nThe response returns `policyKey` and `policyActivityKey`. Persist both — they are required for Step 2 (`POST /policies/submission/full`).\n\n## Specifying the insured\n\nThe `insured` block accepts one of two mutually exclusive shapes:\n\n- **Existing contact** — set `insured.insureContacts.id` to the contact identifier. Individual insured fields are ignored.\n- **New insured** — provide `companyName`, `domicileCountry`, `domicileState`, and any mailing-address fields you have.\n\n## Required fields\n\n`insured`, `producer`, `policy.effectiveDate`, `policy.expiryDate`, `policy.currency`, `policy.product`, `policy.territory`, `directAssumed`, `typeOfBilling`, `division`, `writtenLine`.\n\n## Optional fields\n\n`policyDescription`; `sectionIdentifier` (id 1 = C&C, 2 = Non C&C — may be supplied early to pre-derive the underwriting template, becomes required at Step 2); `referenceType` (id 1 = EEA, 2 = Non-EEA, 3 = Both); `class` (risk code, code only); `producingCompany` (required when division is Mosaic Asta Europe); `marketSource`.\n\n## Derived server-side (not part of the contract)\n\n`office`, `mop`, and `typeOfPlacementBespoke` are never supplied by the caller — they are derived from `division` (and, for `office`, also from `policy.product` and `class`).\n\n## Lookup objects\n\nReference fields are restricted per field: `producer`, `policy.product`, `directAssumed`, `typeOfBilling`, `division`, `producingCompany`, `marketSource`, and `insured.insureContacts` accept `id` only; `policy.currency`, `policy.territory`, and `class` accept `code` only; `sectionIdentifier` accepts `id` only (1 = C&C, 2 = Non C&C) and `referenceType` accepts `id` only (1 = EEA, 2 = Non-EEA, 3 = Both).\n\n## Response timing\n\nThe call typically completes within 35–40 seconds.","operationId":"createSubmission","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"}],"requestBody":{"description":"Shell submission payload. Required: `insured`, `producer`, `policy`, `directAssumed`, `typeOfBilling`, `division`, `writtenLine`. For `insured`, use Option A (`insureContacts.id`) or Option B (individual fields) — not both.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CyberSubmissionRequest"},"examples":{"Option A — New Submission (new insured)":{"summary":"New submission — new or unknown insured (individual fields)","description":"Use this shape when no contact identifier is available. Required: `companyName`, `domicileCountry`. Optional: `domicileState`, mailing-address fields, `zipCode`.","value":{"insured":{"companyName":"Veritas Capital Test 2","domicileCountry":{"code":"USA"},"domicileState":{"code":"NJ"},"mailingAddress1":"1123 Cedar Street","mailingAddressCity":"Green Bay","email":"noemail@example.com","zipCode":"75039"},"producer":{"id":"2000556","contactliaison":{"firstName":"John","lastName":"Smith","state":{"code":"UT"},"city":{"description":"Green Bay"},"region":{"description":"GBR"},"email":"john.smith@broker.com","phoneNo":"+1-212-555-0100"}},"policy":{"effectiveDate":"2026-01-15","expiryDate":"2027-01-15","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"},"policyDescription":"UAT Test"}},"Option B — New Submission (existing contact)":{"summary":"New submission — insured identified by existing contact id","description":"Use this shape when the insured already exists in the system. Set `insured.insureContacts.id` to the contact identifier — all other insured fields are ignored.","value":{"insured":{"insureContacts":{"id":"2089372"}},"producer":{"id":"2000556"},"policy":{"effectiveDate":"2026-01-15","expiryDate":"2027-01-15","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"}}}}}},"required":true},"responses":{"201":{"description":"DRAFT submission created successfully. Save `policyKey` and `policyActivityKey` from the response — they are required for Step 2 (`POST /policies/submission/full`).","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CyberSubmissionResponse"},"examples":{"Successful Base Submission Response":{"summary":"DRAFT submission created — copy policyKey and policyActivityKey for Step 2","description":"Successful Base Submission Response","value":{"policyStatus":"Quote Preparation","policyNo":"Q0038315","reference":null,"policyKey":"20793","policyActivityKey":"45632"}}}}}},"400":{"description":"Bad Request — one or more required fields are missing or invalid.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Validation Error":{"description":"Validation Error","value":{"error":{"code":"VALIDATION_ERROR","message":"Missing required fields: insured, policy"}}}}}}},"500":{"description":"Internal Server Error — unexpected system error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Internal Server Error":{"description":"Internal Server Error","value":{"error":{"code":"INTERNAL_ERROR","message":"Failed to create submission: service unavailable"}}}}}}}}}},"/submission/full":{"post":{"security":[{"api_key":[]}],"tags":["Submission"],"summary":"Base Shell To Full Submission","description":"Adds underwriting and classification data to an existing draft submission — **Step 2** of the submission lifecycle (`Base → Full → Quote`).\n\nPass the `policyKey` and `policyActivityKey` returned by `POST /policies/submission/base` as query parameters: `?policyKey={policyKey}&policyActivityKey={policyActivityKey}`.\n\n## Required fields\n\n`underWriter`, `mosaicOccupation`, `sectionIdentifier` (optional at Step 1, required here).\n\n## Conditional fields\n\n`referenceType` — required when the submission's producing entity (derived from `division`) is `MSSL` or `MEEA` (Mosaic Asta Europe).\n\n## Optional fields\n\n`umr`, `revTurnover` (insured's annual revenue/turnover), `producingUnderwriter` (defaults to `underWriter` when omitted), `lloydsIndustrialSector` (overrides the automatic derivation when supplied), `sBFClass`.\n\n## Re-submittable Step 1 fields\n\n`insured`, `producer`, `policy`, `directAssumed`, `typeOfBilling`, `division`, `writtenLine`, `policyDescription`, `class`, `producingCompany`, `marketSource` may be re-supplied here — required only when calling `/policies/submission/full` standalone without a prior `/policies/submission/base` call.\n\n## Derived server-side (not part of the contract)\n\n`office`, `mop`, and `typeOfPlacementBespoke` are never supplied by the caller.\n\n## Lookup objects\n\nReference fields are restricted per field: `producer`, `mosaicOccupation`, `underWriter`, `producingUnderwriter`, `lloydsIndustrialSector`, `sBFClass`, `policy.product`, `directAssumed`, `typeOfBilling`, `division`, `producingCompany`, `marketSource`, and `insured.insureContacts` accept `id` only; `policy.currency`, `policy.territory`, and `class` accept `code` only; `sectionIdentifier` accepts `id` only (1 = C&C, 2 = Non C&C) and `referenceType` accepts `id` only (1 = EEA, 2 = Non-EEA, 3 = Both).\n\n## Response timing\n\nThe call typically completes within 40–60 seconds.","operationId":"enrichSubmission","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"policyKey","in":"query","description":"policyKey returned by Step 1 (/policies/submission/base)","required":true,"schema":{"type":"string"},"example":"20793"},{"name":"policyActivityKey","in":"query","description":"policyActivityKey returned by Step 1 (/policies/submission/base)","required":true,"schema":{"type":"string"},"example":"45632"}],"requestBody":{"description":"Full submission payload. Required: `underWriter`, `mosaicOccupation`, `sectionIdentifier`. Conditional: `referenceType`. All other fields are optional.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullCyberSubmissionRequest"},"examples":{"Standalone — Base + Full combined":{"summary":"Standalone — Base + Full combined","description":"Use this shape when calling `/policies/submission/full` directly without a prior `/policies/submission/base` call. Includes all Step 1 fields together with the Step 2 fields. Note: `policy.product` isn't required by validation here, but omitting it leaves the UC3 (office), UC6 (sBFClass) and UC7 (majorPeril) derivations without a product code, so include it whenever you have it.","value":{"insured":{"insureContacts":{"id":"2089372"}},"producer":{"id":"2000556"},"policy":{"effectiveDate":"2026-01-15","expiryDate":"2027-01-15","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"},"underWriter":{"id":"2001685"},"producingUnderwriter":{"id":"2001685"},"mosaicOccupation":{"id":"792"},"lloydsIndustrialSector":{"id":"10"},"sBFClass":{"id":"7"},"revTurnover":10000}}}}},"required":true},"responses":{"201":{"description":"Full submission created successfully.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CyberSubmissionResponse"},"examples":{"Successful Full Submission Response":{"summary":"Full submission processed and created","description":"Successful Full Submission Response","value":{"policyStatus":"Quote Preparation","policyNo":"Q0038456","reference":"CYB-2026-001","policyKey":"20894","policyActivityKey":"45632","policyActivityStatus":"Active"}}}}}},"400":{"description":"Validation failed — one or more required fields are missing or invalid.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Missing Required Field":{"description":"Missing Required Field","value":{"error":{"code":"VALIDATION_ERROR","message":"Missing required fields: underWriter"}}}}}}},"500":{"description":"Internal server error — unexpected error during submission processing.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Internal Server Error":{"description":"Internal Server Error","value":{"error":{"code":"INTERNAL_ERROR","message":"Failed to create full cyber submission: service unavailable"}}}}}}}}}},"/submission/complete":{"post":{"security":[{"api_key":[]}],"tags":["Submission"],"summary":"Complete Submission","description":"Creates a complete policy submission in a single call. Supports all lines of business.\n\nThis endpoint accepts all required fields (insured, producer, policy, underwriting data, etc.) in one request body.\n\n## Required fields\n\n`insured`, `producer`, `policy` (effectiveDate, expiryDate, currency, product, territory), `directAssumed`, `typeOfBilling`, `division`, `writtenLine`, `sectionIdentifier`, `referenceType`, `typeOfPlacementBespoke`, `underWriter`, `mosaicOccupation`, `revTurnover`.\n\n## Conditional fields\n\n`referenceType` — required when the submission's producing entity (derived from `division`) is `MSSL` or `MEEA`.\n`producingCompany` — required when division is Mosaic Asta Europe.\n\n## Optional fields\n\n`producingUnderwriter`, `lloydsIndustrialSector`, `sBFClass`, `policyDescription`, `class`, `marketSource`, `umr`.\n\n## Derived server-side (not part of the contract)\n\n`office`, `mop`, and `typeOfPlacementBespoke` derivations are handled server-side.\n\n## Response timing\n\nThe call typically completes within 40–60 seconds.","operationId":"createPolicy","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"}],"requestBody":{"description":"Policy creation payload. Supports all lines of business. Required: `insured`, `producer`, `policy`, `directAssumed`, `typeOfBilling`, `division`, `writtenLine`, `sectionIdentifier`, `referenceType`, `typeOfPlacementBespoke`, `underWriter`, `mosaicOccupation`, `revTurnover`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullRequest"},"examples":{"Complete Submission — New Insured":{"summary":"Create policy with new insured (individual fields)","description":"Creates a policy submission with a new insured. Provide company name, domicile, and all required fields.","value":{"insured":{"companyName":"Veritas Capital Test 2","domicileCountry":{"code":"USA"},"domicileState":{"code":"NJ"},"mailingAddress1":"1123 Cedar Street","mailingAddressCity":"Green Bay","email":"noemail@example.com","zipCode":"75039"},"producer":{"id":"2000556"},"policy":{"effectiveDate":"2026-01-01","expiryDate":"2027-01-01","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"},"underWriter":{"id":"2001685"},"producingUnderwriter":{"id":"2001685"},"mosaicOccupation":{"id":"792"},"revTurnover":50000,"lloydsIndustrialSector":{"id":"10"},"sBFClass":{"id":"7"},"policyDescription":"UAT Test"}},"Complete Submission — Existing Contact":{"summary":"Create policy with existing insured contact ID","description":"Creates a policy submission using an existing contact ID. Set `insured.insureContacts.id` — individual insured fields are ignored.","value":{"insured":{"insureContacts":{"id":"2089372"}},"producer":{"id":"2000556"},"policy":{"effectiveDate":"2026-01-01","expiryDate":"2027-01-01","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"},"underWriter":{"id":"2001685"},"producingUnderwriter":{"id":"2001685"},"mosaicOccupation":{"id":"792"},"revTurnover":50000,"lloydsIndustrialSector":{"id":"10"},"sBFClass":{"id":"7"},"policyDescription":"UAT Test"}}}}},"required":true},"responses":{"201":{"description":"Policy created successfully.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CyberSubmissionResponse"},"examples":{"Successful Policy Creation Response":{"summary":"Policy created and processed successfully","description":"Successful Policy Creation Response","value":{"policyStatus":"Quote Preparation","policyNo":"Q0038456","reference":"CYB-2026-001","policyKey":"20894","policyActivityKey":"45632","policyActivityStatus":"Active"}}}}}},"400":{"description":"Validation failed — one or more required fields are missing or invalid.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Missing Required Field":{"description":"Missing Required Field","value":{"error":{"code":"VALIDATION_ERROR","message":"Missing required fields: underWriter, mosaicOccupation"}}}}}}},"500":{"description":"Internal server error — unexpected error during submission processing.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Internal Server Error":{"description":"Internal Server Error","value":{"error":{"code":"INTERNAL_ERROR","message":"Failed to create policy submission: service unavailable"}}}}}}}}}},"/submission/decline":{"post":{"security":[{"api_key":[]}],"tags":["Submission"],"summary":"Decline Submission","description":"Declines a submission. Moves the policy to `Submission Declined` status.","operationId":"declineQuote","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"policyKey","in":"query","description":"Policy key","required":true,"schema":{"type":"string"}},{"name":"policyActivityKey","in":"query","description":"Policy activity key","required":true,"schema":{"type":"string"}},{"name":"declineReason","in":"query","description":"Reason for declining submission","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Policy declined successfully","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Bad request - invalid parameters","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/policy/issue":{"post":{"security":[{"api_key":[]}],"tags":["Policy"],"summary":"Issue Policy","description":"Runs the complete Mosaic submission pipeline (Shell → Full → Quote → Bind) in a single request, orchestrated by an internal state machine.\n\n**You send one payload — the platform handles all lifecycle stages internally.** There is no need to make separate calls for shell, full, quote, or bind.\n\nThe shell step runs synchronously and returns `policyNo`, `policyKey`, and `policyActivityKey` in the response. The full, quote, and bind steps continue asynchronously — poll `GET /policies/orchestrate/{policyNo}/stepStatus` to track progress.\n\n## Payload structure\n\n| Block | Purpose | Required? |\n|---|---|---|\n| `fullRequest` | Shell (account / policy / producer) + Full (underwriting) data | Yes |\n| `quoteRequest` | Pricing, sections, coverages, lines (includes bind-time & FON attributes per section/line) | Recommended |\n| `bindRequest` | Policy-level bind data (insured enrichment, sanction check, surplus broker, FON activity) | Recommended |\n\n## Response timing\n\nThe shell step typically completes within 35–40 seconds. Full, quote, and bind steps complete asynchronously.","operationId":"orchestratePolicy","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"}],"requestBody":{"description":"Container carrying the submission bodies for the TridentGlobalSubmission state machine: `fullRequest` (required; includes shell+full data), `quoteRequest` (quote + merged section-level bind attributes, optional), and `bindRequest` (policy-level bind, no sections, optional). Each object is forwarded verbatim to its matching step — use the same JSON the standalone endpoints accept.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuePolicyRequest"},"examples":{"Complete Global Submission":{"summary":"Example global submission with one quote section","description":"Complete Global Submission","value":{"fullRequest":{"insured":{"companyName":"Veritas Capital Test 3","domicileCountry":{"code":"USA"},"domicileState":{"code":"NJ"},"mailingAddress1":"1123 Cedar Street","mailingAddressCity":"Green Bay","email":"noemail@example.com","zipCode":"75039"},"producer":{"id":"2000556","contactliaison":{"firstName":"John","lastName":"Smith","state":{"code":"UT"},"city":{"description":"Green Bay"},"region":{"description":"GBR"},"email":"john.smith@broker.com","phoneNo":"+1-212-555-0100","faxNo":"+1-212-555-0101"}},"policy":{"effectiveDate":"2026-01-15","expiryDate":"2027-01-15","currency":{"code":"USD"},"product":{"id":"4"},"territory":{"code":"GBR"}},"directAssumed":{"id":"1"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sectionIdentifier":{"id":"1"},"referenceType":{"id":"2"},"class":{"code":"CY"},"producingCompany":{"id":"2"},"typeOfPlacementBespoke":{"id":"1"},"underWriter":{"id":"2001685"},"producingUnderwriter":{"id":"2001685"},"mosaicOccupation":{"id":"792"},"revTurnover":50000,"lloydsIndustrialSector":{"id":"10"},"sBFClass":{"id":"7"},"policyDescription":"UAT Test"},"quoteRequest":{"summaryCurrency":{"code":"USD"},"typeOfCyberClauseStatus":{"id":"1"},"uSClassification":{"id":"3"},"uMR":"B1234CYB2026020","noOfEmployees":150,"noOfPIIRecords":300000,"productTemplateSectionToAdd":"Directors and Officers","bindProbability":{"id":5},"sections":[{"description":"Cyber Liability Third Party","gELR":50,"typeOfLayer":{"id":"1"},"solvencyIIClass":{"id":"13"},"typeOfLimitBasis":{"id":"82"},"excess":0,"100%Limit":1000000,"aggregateLimit":1000000,"agreement":{"agreement":"AGR0000202","agreementActivity":"AGR0000202-23-09","agreementSection":"1"},"coverage":[{"code":"SPL","limitCurrency":{"code":"USD"},"limitOccurrence":500000,"limitAggregate":500000,"premium":15000,"premiumSplit%":50,"premiumCurrency":{"code":"USD"},"settlementCcy":{"code":"USD"},"premiumBasis":{"id":"1"},"typeofClaimBasis":{"id":"3"}}],"deduction":[{"deduction":{"id":"3"},"deductionRate":30,"typeOfDeductionPayable":{"id":"1"},"amountOfPremium":50},{"deduction":{"id":"53"},"deductionRate":20,"typeOfDeductionPayable":{"id":"2"},"amountOfPremium":50}],"deductible":{"typeOfDeductible":{"id":"24"},"deductibleBasis":{"id":"10"},"allRiskDeductible":1},"conditions":[{"typeOfClause":{"id":"1"},"clauseCode":"LSW 3001","clauseTitle":"Cyber affirmation clause","clauseNo":2}],"reinstatements":{"reinstatementsApplicable":true,"unlimitedReinstatements":false,"noOfReinstatements":1,"availableReinstatements":1,"proRata":true,"reinstatementPercent":100},"regulatoryCoding":[{"code":"1E","codeSplitPc":50,"overrideAgreementRiskCode":true}],"marketSplit":[{"careerPercent":60,"carrier":{"code":"1609"},"carrierReference":"MR-CYB-2026-001"},{"careerPercent":25,"carrier":{"code":"2010"},"carrierReference":"MR-CYB-2026-002"},{"careerPercent":15,"carrier":{"code":"2610"},"carrierReference":"MR-CYB-2026-002"}],"riskAdjustedRateChange":5,"instalmentbasis":{"id":"1"},"paymentDays":30},{"description":"Cyber Liability First Party","gELR":50,"typeOfLayer":{"id":"1"},"solvencyIIClass":{"id":"13"},"typeOfLimitBasis":{"id":"84"},"excess":1000000,"100%Limit":1000000,"aggregateLimit":1000000,"agreement":{"agreement":"AGR0000202","agreementActivity":"AGR0000202-23-09","agreementSection":"1"},"coverage":[{"code":"BRC","limitCurrency":{"code":"USD"},"limitOccurrence":500000,"limitAggregate":500000,"premium":15000,"premiumSplit%":50,"premiumCurrency":{"code":"USD"},"settlementCcy":{"code":"USD"},"premiumBasis":{"id":"1"},"typeofClaimBasis":{"id":"5"}},{"code":"NBI","limitCurrency":{"code":"USD"},"limitOccurrence":500000,"limitAggregate":500000,"premium":15000,"premiumSplit%":50,"premiumCurrency":{"code":"USD"},"settlementCcy":{"code":"USD"},"premiumBasis":{"id":"1"},"typeofClaimBasis":{"id":"5"},"waitingPeriodAmount":25000,"waitingPeriodMeasurement":{"id":14},"waitingPeriodTime":12}],"deduction":[{"deduction":{"id":"3"},"deductionRate":30,"typeOfDeductionPayable":{"id":"1"},"amountOfPremium":60},{"deduction":{"id":"53"},"deductionRate":20,"typeOfDeductionPayable":{"id":"2"},"amountOfPremium":40}],"deductible":{"typeOfDeductible":{"id":"25"},"deductibleBasis":{"id":"10"},"allRiskDeductible":1},"conditions":[{"typeOfClause":{"id":"1"},"clauseCode":"CW3","clauseTitle":"Type 3 Cyber War Clause","clauseNo":2}],"reinstatements":{"reinstatementsApplicable":true,"unlimitedReinstatements":false,"noOfReinstatements":1,"availableReinstatements":1,"proRata":true,"reinstatementPercent":80},"regulatoryCoding":[{"code":"1E","codeSplitPc":50,"overrideAgreementRiskCode":true}],"marketSplit":[{"careerPercent":60,"carrier":{"code":"1609"},"carrierReference":"MR-CYB-2026-001"},{"careerPercent":25,"carrier":{"code":"2010"},"carrierReference":"MR-CYB-2026-002"},{"careerPercent":15,"carrier":{"code":"2610"},"carrierReference":"MR-CYB-2026-002"}],"riskAdjustedRateChange":5,"instalmentbasis":{"id":"1"},"paymentDays":30},{"description":"Electronic Fraud","gELR":50,"typeOfLayer":{"id":"1"},"solvencyIIClass":{"id":"13"},"typeOfLimitBasis":{"id":"17"},"excess":0,"100%Limit":1000000,"aggregateLimit":1000000,"agreement":{"agreement":"AGR0000202","agreementActivity":"AGR0000202-23-09","agreementSection":"1"},"coverage":[{"code":"FFT","limitCurrency":{"code":"USD"},"limitOccurrence":500000,"limitAggregate":500000,"premium":15000,"premiumSplit%":50,"premiumCurrency":{"code":"USD"},"settlementCcy":{"code":"USD"},"premiumBasis":{"id":"1"},"typeofClaimBasis":{"id":"4"}}],"deduction":[{"deduction":{"id":"3"},"deductionRate":30,"typeOfDeductionPayable":{"id":"1"},"amountOfPremium":50},{"deduction":{"id":"53"},"deductionRate":20,"typeOfDeductionPayable":{"id":"2"},"amountOfPremium":50}],"deductible":{"typeOfDeductible":{"id":"24"},"deductibleBasis":{"id":"1"},"allRiskDeductible":1},"conditions":[{"typeOfClause":{"id":"1"},"clauseCode":"CW3","clauseCondition":"Type 3 Cyber War Clause","clauseNo":2}],"reinstatements":{"reinstatementsApplicable":true,"unlimitedReinstatements":false,"noOfReinstatements":1,"availableReinstatements":1,"proRata":true,"reinstatementPercent":100},"regulatoryCoding":[{"code":"1E","codeSplitPc":50,"overrideAgreementRiskCode":true}],"marketSplit":[{"careerPercent":60,"carrier":{"code":"1609"},"carrierReference":"MR-CYB-2026-001"},{"careerPercent":25,"carrier":{"code":"2010"},"carrierReference":"MR-CYB-2026-002"},{"careerPercent":15,"carrier":{"code":"2610"},"carrierReference":"MR-CYB-2026-002"}],"riskAdjustedRateChange":5,"instalmentbasis":{"id":"1"},"paymentDays":30},{"description":"TRIA","gELR":50,"typeOfLayer":{"id":"1"},"solvencyIIClass":{"id":"13"},"typeOfLimitBasis":{"id":"84"},"excess":0,"100%Limit":1000000,"aggregateLimit":1000000,"agreement":{"agreement":"AGR0000202","agreementActivity":"AGR0000202-23-09","agreementSection":"1"},"coverage":[{"code":"TRI","limitCurrency":{"code":"USD"},"limitOccurrence":500000,"limitAggregate":500000,"premium":15000,"premiumSplit%":50,"premiumCurrency":{"code":"USD"},"settlementCcy":{"code":"USD"},"premiumBasis":{"id":"1"},"typeofClaimBasis":{"id":"3"}}],"deduction":[{"deduction":{"id":"3"},"deductionRate":30,"typeOfDeductionPayable":{"id":"1"},"amountOfPremium":50},{"deduction":{"id":"53"},"deductionRate":20,"typeOfDeductionPayable":{"id":"2"},"amountOfPremium":50}],"deductible":{"typeOfDeductible":{"id":"25"},"deductibleBasis":{"id":"10"},"allRiskDeductible":1},"conditions":[{"typeOfClause":{"id":"1"},"clauseCode":"LSW 3001","clauseCondition":"Cyber affirmation clause","clauseNo":2}],"reinstatements":{"reinstatementsApplicable":true,"unlimitedReinstatements":false,"noOfReinstatements":1,"availableReinstatements":1,"proRata":true,"reinstatementPercent":100},"regulatoryCoding":[{"code":"1E","codeSplitPc":50,"overrideAgreementRiskCode":true}],"marketSplit":[{"careerPercent":60,"carrier":{"code":"1609"},"carrierReference":"MR-CYB-2026-001"},{"careerPercent":25,"carrier":{"code":"2010"},"carrierReference":"MR-CYB-2026-002"},{"careerPercent":15,"carrier":{"code":"2610"},"carrierReference":"MR-CYB-2026-002"}],"riskAdjustedRateChange":5,"instalmentbasis":{"id":"1"},"paymentDays":30}],"lines":[{"underWriter":{"id":"2001685"},"typeOfBilling":{"id":"1"},"division":{"id":"2"},"writtenLine":100,"sBFClass":{"id":"7"},"producingUnderwriter":{"id":"2001685"},"ourRole":{"id":"1"},"bureauLead":{"id":"1"},"leadingInsurer":{"id":"1"},"lloydsPlatform":{"id":"1"},"isThirdPartyCapacityDeployed":true,"syndicateCapitalManagement":{"code":"ACR"},"signedLinePercentage":100,"claimsAgreementParty":true,"defenseCostsCovered":{"id":"1"},"actualDateWritten":"2026-02-15","dateSigned":"2026-02-15","policyLineReferenceOverride":"PCY1051126AA"}]},"bindRequest":{"prebindSanctionCheckComplete":true,"obligor":{"id":"2055225"},"territory":{"code":"USA"},"typeofRIBasis":{"id":"1"},"tailEffectiveDate":"2026-01-01","priorPending":"2026-01-01","priorActs":true,"retroactiveDate":"2026-01-01","insured":{"occupationSource":{"id":"5"},"occupation":{"code":"541211"},"issuanceAddressSameAsInsured":true,"policyholderType":{"id":"2"},"assetsUnderManagement":"5000000","assetSize":100000,"mailingAddressTo":"Test","mailingAddress1":"1123 Cedar Street","mailingAddress2":"1123 Cedar Street","mailingAddressCity":"Green Bay","mailingAddressState ":{"code":"472"},"mailingAddressPostCode":"75039","canadianBusinessNumber":"123456789RC0001","taxIdPortugal":"501964843","taxIdItaly":"12345678901","taxIdSpain":"B12345678","fein":"12-3456789","webSite":"www.test.com"},"surplusBroker":{"id":"2005760","typeOfAdmitted":{"id":"2"},"brokerLicense":"SL-CA-12345","producerHomeState":{"code":"CA"},"slaNumber":"AB123-26-00001"},"fon":{"fonDate":"2026-01-01","jurisdictionCountry":{"code":"USA"},"jurisdictionState":{"code":"NJ"},"riskRegulatoryLocation":{"code":"USA"}},"programs":[{"programKey":{"id":"10"}},{"programKey":{"id":"11"}}],"peerReviewRequest":{"checkedBy":{"id":545},"checkedDate":"2026-09-10"}}}}}}},"required":true},"responses":{"202":{"description":"Base step succeeded; the full step is running asynchronously.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalSubmissionResponse"},"examples":{"Base Step Succeeded":{"summary":"Base step succeeded","description":"Base Step Succeeded","value":{"submissionId":"9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e","policyNo":"Q0038456","policyKey":"20894","policyActivityKey":"45632","status":"ACCEPTED","message":"Base submission succeeded. Full, quote and bind steps are running asynchronously."}}}}}},"500":{"description":"Base step failed (4xx upstream error or 5xx after retries). Use POST /retry after investigation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalSubmissionResponse"},"examples":{"Base Step Failed":{"summary":"Base step failed","description":"Base Step Failed","value":{"submissionId":"9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e","status":"FAILED","message":"Base step failed: base /v1/trident/submission/base -> 500: ..."}}}}}}}}},"/lookup/contacts":{"get":{"security":[{"api_key":[]}],"tags":["LookUps"],"summary":"Contacts","description":"Returns XFI contacts filtered by the specified role code. Supports optional free-text filter on contact name/code and page-based pagination via the `page`/`pageSize` query parameters (internally translated to XFI's `_start`/`_num`).\n\n**Response shape:** the response returns `total` (XFI's reported match count) and `item` (the array of matched contacts for this request). `item` entries are passed through from XFI's `summary` object verbatim (not a fixed schema) so any new attribute XFI adds in future is available automatically without an API change; the properties listed below are the common ones.\n\n**Common role codes:**\n\n| Code | Role |\n|------|------|\n| `USR` | Internal User (Underwriters) |\n| `ACC` | Account / Insured |\n| `PRD` | Producer / Broker |\n| `AGR` | Agreement Partner |\n| `OBG` | Obligor |\n| `REIND` | Reinsured |\n| `SCM` | Syndicate Capital Management |\n| `INS` | Insurer |\n| `COV` | Coverholder |\n| `DIV` | Division |\n| `SYN` | Syndicate |\n| `MBK` | Master Broker |\n\nAll supported codes: `INS`, `ATT`, `ACC`, `PRD`, `TAX`, `OTH`, `CLM`, `REIN`, `BCT`, `USR`, `EW`, `IA`, `EA`, `CA`, `AGR`, `PI`, `BINS`, `DIV`, `SYN`, `TCC`, `SRV`, `COV`, `LF`, `AUD`, `EXUSR`, `FRC`, `BA`, `SA`, `SOS`, `OFFTEAM`, `OBG`, `LG`, `RGA`, `INV`, `FIN`, `TAD`, `ENV`, `ITA`, `INA`, `BEN`, `ADO`, `ACF`, `UWC`, `BUY`, `SEL`, `TGT`, `PTF`, `REIND`, `SCM`, `PEB`, `MBK`","operationId":"listContacts","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"roleCode","in":"query","required":true,"description":"XFI role code to filter contacts by. See description for full list.","schema":{"type":"string","enum":["INS","ATT","ACC","PRD","TAX","OTH","CLM","REIN","BCT","USR","EW","IA","EA","CA","AGR","PI","BINS","DIV","SYN","TCC","SRV","COV","LF","AUD","EXUSR","FRC","BA","SA","SOS","OFFTEAM","OBG","LG","RGA","INV","FIN","TAD","ENV","ITA","INA","BEN","ADO","ACF","UWC","BUY","SEL","TGT","PTF","REIND","SCM","PEB","MBK"]},"example":"USR"},{"name":"contactReference","in":"query","required":false,"description":"Optional partial match on contact name or code (e.g. \"Enbridge Inc.\", \"MSR\").","schema":{"type":"string"},"example":"Enbridge Inc."},{"name":"page","in":"query","required":false,"description":"Page number, 1-based. Defaults to 1.","schema":{"type":"integer","default":1,"minimum":1},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Number of results per page. Defaults to 25. Maximum 100.","schema":{"type":"integer","default":25,"minimum":1,"maximum":100},"example":25}],"responses":{"200":{"description":"Contacts retrieved successfully. Only 'Active' and 'Not Approved' broker information is pulled from XFI in the Lookup contact by roles endpoint response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactFuzzySearchResponse"},"examples":{"Underwriters":{"description":"All underwriters (USR role) — raw passthrough of XFI's fuzzy-search contact fields","value":{"total":45,"item":[{"lvapicontactsfuzzysearchkey":200005653,"allrolecodes":"USR","code":"BHA","contactkey":2000056,"contactreference":"Arasaiah, Bhaskara","email":"uat-mailbox@mosaicinsurance.com","forename":"Bhaskara","ltypeofuserkey":1,"mainrole":53,"primaryrole":-1,"role":"Internal User","rolecode":"USR","roleid":53,"searchkey":8,"sEARCHPATTERN":"ia","sforename":"Bhaskara","ssurname":"Arasaiah","surname":"Arasaiah","usercode":"UW","usertype":"Underwriter"},{"lvapicontactsfuzzysearchkey":200007853,"allrolecodes":"USR","code":"SOY","contactkey":2000078,"contactreference":"Young, Sophia","email":"uat-mailbox@mosaicinsurance.com","forename":"Sophia","ltypeofuserkey":1,"mainrole":53,"primaryrole":-1,"role":"Internal User","rolecode":"USR","roleid":53,"searchkey":8,"sEARCHPATTERN":"ia","sforename":"Sophia","ssurname":"Young","surname":"Young","usercode":"UW","usertype":"Underwriter"}]}}}}}},"400":{"description":"Bad request - missing or invalid roleCode","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Upstream XFI service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/lookup/liaison":{"get":{"security":[{"api_key":[]}],"tags":["LookUps"],"summary":"Contact Liaisons","description":"Returns all contact liaisons (broker contacts) registered under the specified producer. This is a read-only lookup — no data is created or modified.\n\nEach item in the response contains `contactliaisonkey`, `contactkey`, `contact`, `liaisonRole`, `contactLiaisonReference`, `firstName`, `lastName`, and `email`.","operationId":"getContactLiaisonForProducer","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"producerContactKey","in":"query","required":true,"description":"XFI contact key of the producer (broker company).","schema":{"type":"string"},"example":"2000556"},{"name":"page","in":"query","required":false,"description":"Page number, 1-based. Defaults to 1.","schema":{"type":"integer","default":1,"minimum":1},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Number of results per page. Defaults to 25. Maximum 100.","schema":{"type":"integer","default":25,"minimum":1,"maximum":100},"example":25}],"responses":{"200":{"description":"Contact liaisons retrieved successfully.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContactLiaisonItem"}},"examples":{"Broker Contacts":{"summary":"Liaisons for Lockton Companies","value":[{"contactliaisonkey":2596,"contactkey":2000556,"contact":"Lockton Companies, LLC","liaisonRole":"Broker Contact","contactLiaisonReference":"Ahn, Paul","firstName":"Paul","lastName":"Ahn","email":"pahn@lockton.com"},{"contactliaisonkey":2539,"contactkey":2000556,"contact":"Lockton Companies, LLC","liaisonRole":"Broker Contact","contactLiaisonReference":"Halpern, Joshua","firstName":"Joshua","lastName":"Halpern","email":"joshua.halpern@lockton.com"}]}}}}},"400":{"description":"Bad request — missing producerContactKey.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Upstream XFI service error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ai/submissionbydate":{"get":{"security":[{"api_key":[]}],"tags":["Submission Data Extraction"],"summary":"Retrive Submission By Date","description":"Retrieves a list of submissions filtered by source (e.g., MEA), class of business (e.g., cyber), and date range. Returns submission summary information including insured, broker, underwriter, dates, and status flags.","operationId":"listPolicies","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"classOfBusiness","in":"query","description":"Class of business type. Accepted values: `cyber`, `PL01`, `FI01`.","required":true,"schema":{"type":"string","enum":["cyber","PL01","FI01"]},"example":"cyber"},{"name":"fromDate","in":"query","description":"Start timestamp for filtering submissions (YYYY-MM-DDTHH:MM:SS)","required":false,"schema":{"type":"string","format":"date-time"},"example":"2024-01-01T00:00:00"},{"name":"toDate","in":"query","description":"End timestamp for filtering submissions (YYYY-MM-DDTHH:MM:SS)","required":false,"schema":{"type":"string","format":"date-time"},"example":"2024-12-31T23:59:59"}],"responses":{"200":{"description":"Submissions list retrieved successfully","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubmissionListItem"}},"examples":{"Submissions List Example":{"description":"Submissions List Example","value":[{"brokerCompany":"Marsh USA LLC","activityExpiryDate":"2025-07-01","submissionId":"CY01-20241015135400","insured":"","activityEffectiveDate":"2024-07-01","creationDate":"2024-10-15 19:10:00","underwriter":"Eric Kerr"},{"brokerCompany":"Aon (Bermuda) Ltd","activityExpiryDate":"2024-11-30","submissionId":"CY01-20231026100555","insured":"Veritas Capital Group GP, LLC","activityEffectiveDate":"2023-11-30","creationDate":"2024-06-25 12:06:00","underwriter":""},{"brokerCompany":"Strom Winds, Inc.,","activityExpiryDate":"2023-06-13","submissionId":"8563","insured":"U S Bancorp","activityEffectiveDate":"2022-06-13","creationDate":"2024-06-20 22:06:00","underwriter":"Lopez, Daisy"}]}}}}},"400":{"description":"Bad request - invalid source or class of business","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"Authentication Error":{"description":"Authentication Error","value":{"error":{"code":"401","message":"Unauthorized"}}}}}}},"500":{"description":"Internal server error","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}},"Access-Control-Allow-Methods":{"schema":{"type":"string"}},"Access-Control-Allow-Headers":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ai/submissionbyid":{"get":{"security":[{"api_key":[]}],"tags":["Submission Data Extraction"],"summary":"Retrive Submission By Id","description":"Retrieves submission data for a specific submission ID based on the class of business (cyber, pv, or enviro). Returns the submission details in a HashMap with the class of business as the key.","operationId":"getSubmission","parameters":[{"$ref":"#/components/parameters/XOriginationSource"},{"$ref":"#/components/parameters/XAuditUserId"},{"name":"id","in":"query","description":"Unique submission identifier","required":true,"schema":{"type":"string"},"example":"CY01-20251015-14"}],"responses":{"200":{"description":"MEA submission found and returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionJson"},"examples":{"MEA Submission Response":{"summary":"Example of a successfully retrieved MEA submission","description":"MEA Submission Response","value":{"brokerCompany":"Lockton Companies, LLC","brokerCompanyConfidenceScore":"95","brokerContactName":"Jane Broker","brokerContactNameConfidenceScore":"90","brokerEmail":"jane.broker@lockton.com","brokerEmailConfidenceScore":"98","brokerPhoneNo":"+1-415-555-0199","brokerPhoneNoConfidenceScore":"85","insuredName":"Llyods Associates Inc","insuredNameConfidenceScore":"97","insuredAddressStreet":"1125 Cedar Street","insuredAddressStreetConfidenceScore":"88","insuredAddressCity":"Green Bay","insuredAddressCityConfidenceScore":"92","insuredAddressState":"California","insuredAddressStateConfidenceScore":"91","insuredAddressCountry":"United States","insuredAddressCountryConfidenceScore":"99","insuredAddressZip":"94102","insuredAddressZipConfidenceScore":"87","underwriter":"John Smith","underwriterConfidenceScore":"93","underwriterEmail":"john.smith@mosaic.com","underwriterEmailConfidenceScore":"96","underwriterTitle":"Senior Underwriter","underwriterTitleConfidenceScore":"80","currency":"USD","currencyConfidenceScore":"99","activityEffectiveDate":"2026-04-06","activityEffectiveDateConfidenceScore":"94","activityExpiryDate":"2027-04-06","activityExpiryDateConfidenceScore":"94","limitOfLiability":"5000000","limitOfLiabilityConfidenceScore":"89","premium":"15000","premiumConfidenceScore":"92","commission":"15","commissionConfidenceScore":"88","territory":"United States","territoryConfidenceScore":"95","revTurnover":"50000000","revTurnoverConfidenceScore":"82","noOfEmployees":"500","noOfEmployeesConfidenceScore":"78","mosaicOccupation":"Software Development","mosaicOccupationConfidenceScore":"86","mop":"Standard Policy","mopConfidenceScore":"90","directOrAssumed":"Direct","directOrAssumedConfidenceScore":"97","excess":"250000","excessConfidenceScore":"84","noOfPIIRecords":"10","noOfPIIRecordsConfidenceScore":"0.97","webSite":"https://www.example.com","webSiteConfidenceScore":"91","globalRisk":"NO","globalRiskConfidenceScore":"88","facility":"","facilityConfidenceScore":"0.94","subProduct":"Professional Liability (E&O)","subProductConfidenceScore":"0.91","perClaimLimit":"100","perClaimLimitConfidenceScore":"0.91","primaryExcess":"1000","primaryExcessConfidenceScore":"0.97","mosaicSubProduct":"Professional Liability (E&O)","mosaicSubProductConfidenceScore":"0.97"}}}}}},"404":{"description":"Submission not found - No MEA submission exists for the given ID","content":{"application/json":{"examples":{"Not Found":{"summary":"Submission ID does not exist","description":"Not Found","value":{"error":{"code":"NOT_FOUND","message":"No MEA submission found for ID: SUB123456"}}}}}}},"500":{"description":"Internal server error - Unexpected error while retrieving submission","content":{"application/json":{"examples":{"Internal Server Error":{"summary":"Unexpected error during retrieval","description":"Internal Server Error","value":{"error":{"code":"INTERNAL_ERROR","message":"Failed to retrieve MEA submission: Database connection timeout"}}}}}}}}}},"/mea/submission":{"post":{"security":[{"api_key":[]}],"tags":["Submission Data Extraction"],"summary":"Push MEA Submission","description":"Pushes Machine Email Analysis (MEA) submission extraction data for the selected class of business.","operationId":"pushMeaSubmission","parameters":[{"name":"classOfBusiness","in":"query","description":"Class of business for the submission.","required":true,"schema":{"type":"string","enum":["cyber","enviro","FL01","PL01"]},"example":"cyber"},{"name":"submission-id","in":"header","description":"Unique submission identifier.","required":true,"schema":{"type":"string"},"example":"CY01-20260303-28"},{"name":"inputFileName","in":"header","description":"Base64-encoded input file name.","required":true,"schema":{"type":"string"},"example":"Q1kwMS0yMDI2MDMwNS0zNS5lbWw="}],"requestBody":{"required":true,"description":"Nested extraction rows. Each cell contains a value; rows commonly contain a field name, extracted value, and confidence score.","content":{"application/json":{"schema":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"object","required":["value"],"properties":{"value":{"type":"string"}},"additionalProperties":false}}}},"example":[[[{"value":"Entity Name"},{"value":"Output 1"},{"value":"Confidence Score %"}],[{"value":"Producer (Broker Company)"},{"value":"INSUREtrust"},{"value":"0.96"}],[{"value":"Insured"},{"value":"PerkinElmer U.S. LLC"},{"value":"0.96"}]]]}}},"responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"Agreement":{"required":["100%Limit","aggregateLimit","agreement","agreementActivity","agreementSection","gELR","solvencyIIClass"],"type":"object","properties":{"agreement":{"type":"string","description":"Agreement code e.g., 'AGR0000159'"},"agreementActivity":{"type":"string","description":"Agreement activity code e.g., 'AGR0000159-22-01'"},"agreementSection":{"type":"string","description":"Agreement section code e.g., '1'"},"solvencyIIClass":{"type":"string","description":"Solvency II class code e.g., 'ZX'"},"aggregateLimit":{"type":"number","description":"Aggregate limit amount e.g., '1000'"},"gELR":{"type":"number","description":"gELR amount at section level e.g., '50'","format":"double"},"100%Limit":{"type":"number","description":"100% Limit amount e.g., '1000'"}},"description":"Agreement information"},"CodeSplit":{"required":["codeSplitPc","regulatoryCode"],"type":"object","properties":{"percentage":{"type":"number","description":"Percentage value"},"riskCode":{"type":"string","description":"Risk code"},"regulatoryCode":{"type":"string","description":"regulatory Code"},"codeSplitPc":{"type":"number","description":"codeSplitPc value","format":"double"}},"description":"Code split information"},"Coverage":{"required":["100%Limit","limitAggregate","limitOccurrence","premium","ratedPremium(100%)"],"type":"object","properties":{"premium":{"type":"number","description":"Premium amount e.g., '15000'"},"coverage":{"type":"string","description":"coverage description e.g., '50'"},"limitOccurrence":{"type":"integer","description":"limitOccurrence  e.g., '100'","format":"int32"},"limitAggregate":{"type":"integer","description":"limitAggregate  e.g., '100'","format":"int32"},"deductible":{"type":"integer","format":"int32"},"100%Limit":{"type":"number","description":"100% Limit amount e.g., '500000'"},"ratedPremium(100%)":{"type":"integer","description":"ratedPremium100  e.g., '15000'","format":"int32"}},"description":"Coverage information"},"Deduction":{"required":["deduction","deductionRate"],"type":"object","properties":{"deductionType":{"type":"string","description":"Deduction type code"},"deduction":{"type":"string","description":"Deduction code  e.g., 'BK'"},"deductibleBasis":{"type":"string","description":"Deduction basis code"},"deductionRate":{"type":"number","description":"Deduction Rate  e.g., '20'","format":"double"},"rate%":{"type":"number","description":"Rate percentage"}},"description":"Deduction information"},"SectionsList":{"type":"object","properties":{"agreement":{"$ref":"#/components/schemas/Agreement"},"coverage":{"type":"array","description":"Coverage information","items":{"$ref":"#/components/schemas/Coverage"}},"deduction":{"type":"array","description":"Deduction information","items":{"$ref":"#/components/schemas/Deduction"}},"codeSplit":{"type":"array","description":"Code split information","items":{"$ref":"#/components/schemas/CodeSplit"}}},"description":"List of sections in the quote"},"SubmissionJson":{"type":"object","properties":{"externalSourceId":{"type":"string"},"creationDate":{"type":"string"},"insuredName":{"type":"string"},"insuredNameConfidenceScore":{"type":"string"},"insuredAddressStreet":{"type":"string"},"insuredAddressStreetConfidenceScore":{"type":"string"},"insuredAddressCity":{"type":"string"},"insuredAddressCityConfidenceScore":{"type":"string"},"insuredAddressCountry":{"type":"string"},"insuredAddressCountryConfidenceScore":{"type":"string"},"insuredAddressState":{"type":"string"},"insuredAddressStateConfidenceScore":{"type":"string"},"insuredAddressZip":{"type":"string"},"insuredAddressZipConfidenceScore":{"type":"string"},"brokerCompany":{"type":"string"},"brokerCompanyConfidenceScore":{"type":"string"},"brokerContactName":{"type":"string"},"brokerContactNameConfidenceScore":{"type":"string"},"brokerPhoneNo":{"type":"string"},"brokerPhoneNoConfidenceScore":{"type":"string"},"brokerEmail":{"type":"string"},"brokerEmailConfidenceScore":{"type":"string"},"brokerAddressStreet":{"type":"string"},"brokerAddressStreetConfidenceScore":{"type":"string"},"brokerAddressCity":{"type":"string"},"brokerAddressCityConfidenceScore":{"type":"string"},"brokerAddressCountry":{"type":"string"},"brokerAddressCountryConfidenceScore":{"type":"string"},"brokerAddressCountryIsoCode":{"type":"string"},"brokerAddressState":{"type":"string"},"brokerAddressStateConfidenceScore":{"type":"string"},"brokerAddressZip":{"type":"string"},"brokerAddressZipConfidenceScore":{"type":"string"},"licenseNumber":{"type":"string"},"underwriter":{"type":"string"},"underwriterConfidenceScore":{"type":"string"},"underwriterTitle":{"type":"string"},"underwriterTitleConfidenceScore":{"type":"string"},"underwriterEmail":{"type":"string"},"underwriterEmailConfidenceScore":{"type":"string"},"mobile":{"type":"string"},"currency":{"type":"string"},"currencyConfidenceScore":{"type":"string"},"activityEffectiveDate":{"type":"string"},"activityEffectiveDateConfidenceScore":{"type":"string"},"activityExpiryDate":{"type":"string"},"activityExpiryDateConfidenceScore":{"type":"string"},"limitOfLiability":{"type":"string"},"limitOfLiabilityConfidenceScore":{"type":"string"},"partOf":{"type":"string"},"partOfConfidenceScore":{"type":"string"},"excess":{"type":"string"},"excessConfidenceScore":{"type":"string"},"premium":{"type":"string"},"premiumConfidenceScore":{"type":"string"},"lineSize":{"type":"string"},"commission":{"type":"string"},"commissionConfidenceScore":{"type":"string"},"followedPolicyInsurer":{"type":"string"},"followedPolicyInsurerConfidenceScore":{"type":"string"},"followedPolicyForm":{"type":"string"},"followedPolicyFormConfidenceScore":{"type":"string"},"followedPolicyPolicyNumber":{"type":"string"},"followedPolicyPolicyNumberConfidenceScore":{"type":"string"},"followedPolicyLimitOfLiability":{"type":"string"},"followedPolicyLimitOfLiabilityConfidenceScore":{"type":"string"},"followedPolicyRetention":{"type":"string"},"followedPolicyRetentionConfidenceScore":{"type":"string"},"noticeOfClaim":{"type":"string"},"noticeOfClaimConfidenceScore":{"type":"string"},"coverage":{"type":"string"},"coverageConfidenceScore":{"type":"string"},"directOrAssumed":{"type":"string"},"directOrAssumedConfidenceScore":{"type":"string"},"reassured":{"type":"string"},"reassuredConfidenceScore":{"type":"string"},"mosaicOccupation":{"type":"string"},"mosaicOccupationConfidenceScore":{"type":"string"},"mop":{"type":"string"},"mopConfidenceScore":{"type":"string"},"territory":{"type":"string"},"territoryConfidenceScore":{"type":"string"},"revTurnover":{"type":"string"},"revTurnoverConfidenceScore":{"type":"string"},"noOfEmployees":{"type":"string"},"noOfEmployeesConfidenceScore":{"type":"string"},"webSite":{"type":"string"},"webSiteConfidenceScore":{"type":"string"},"noOfPIIRecords":{"type":"string"},"noOfPIIRecordsConfidenceScore":{"type":"string"},"facility":{"type":"string"},"facilityConfidenceScore":{"type":"string"},"subProduct":{"type":"string"},"subProductConfidenceScore":{"type":"string"},"perClaimLimit":{"type":"string"},"perClaimLimitConfidenceScore":{"type":"string"},"primaryExcess":{"type":"string"},"primaryExcessConfidenceScore":{"type":"string"},"mosaicSubProduct":{"type":"string"},"mosaicSubProductConfidenceScore":{"type":"string"},"typeOfPeriod":{"type":"string"},"typeOfPeriodConfidenceScore":{"type":"string"},"globalRisk":{"type":"string"},"globalRiskConfidenceScore":{"type":"string"},"surplusLineBrokerName":{"type":"string"},"surplusLineBrokerNameConfidenceScore":{"type":"string"},"surplusLinesBrokerAddress":{"type":"string"},"surplusLinesBrokerAddressConfidenceScore":{"type":"string"},"surplusLineBrokerNo":{"type":"string"},"surplusLineBrokerNoConfidenceScore":{"type":"string"},"surplusLineBrokerStateNumber":{"type":"string"},"surplusLineBrokerStateNumberConfidenceScore":{"type":"string"},"retroActiveDate":{"type":"string"},"retroActiveDateConfidenceScore":{"type":"string"},"invoiceNumber":{"type":"string"},"typeOfCyberRequest":{"type":"string"},"uwsignatureKey":{"type":"string"}},"required":["externalSourceId","creationDate","insuredName","insuredNameConfidenceScore","insuredAddressStreet","insuredAddressStreetConfidenceScore","insuredAddressCity","insuredAddressCityConfidenceScore","insuredAddressCountry","insuredAddressCountryConfidenceScore","insuredAddressState","insuredAddressStateConfidenceScore","insuredAddressZip","insuredAddressZipConfidenceScore","brokerCompany","brokerCompanyConfidenceScore","brokerContactName","brokerContactNameConfidenceScore","brokerPhoneNo","brokerPhoneNoConfidenceScore","brokerEmail","brokerEmailConfidenceScore","underwriter","underwriterConfidenceScore","underwriterTitle","underwriterTitleConfidenceScore","underwriterEmail","underwriterEmailConfidenceScore","currency","currencyConfidenceScore","activityEffectiveDate","activityEffectiveDateConfidenceScore","activityExpiryDate","activityExpiryDateConfidenceScore","limitOfLiability","limitOfLiabilityConfidenceScore","excess","excessConfidenceScore","premium","premiumConfidenceScore","territory","territoryConfidenceScore","revTurnover","revTurnoverConfidenceScore","noOfEmployees","noOfEmployeesConfidenceScore","mosaicOccupation","mosaicOccupationConfidenceScore","mop","mopConfidenceScore","directOrAssumed","directOrAssumedConfidenceScore","webSite","webSiteConfidenceScore","noOfPIIRecords","noOfPIIRecordsConfidenceScore","globalRisk","globalRiskConfidenceScore","typeOfPeriod","typeOfPeriodConfidenceScore","surplusLineBrokerName","surplusLineBrokerNameConfidenceScore","surplusLinesBrokerAddress","surplusLinesBrokerAddressConfidenceScore","surplusLineBrokerNo","surplusLineBrokerNoConfidenceScore","surplusLineBrokerStateNumber","surplusLineBrokerStateNumberConfidenceScore","retroActiveDate","retroActiveDateConfidenceScore","invoiceNumber","typeOfCyberRequest","uwsignatureKey"]},"FullRequest":{"type":"object","description":"Combines Shell (Step 1) and Full (Step 2) submission data.\n\n**Required:** `underWriter` (id), `revTurnover`.\n\nShell 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).\n\nOptional fields: `producingUnderwriter` (id), `producingCompany` (id), `lloydsIndustrialSector` (id), `marketSource` (id).\n\nPer-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."}}},"CyberSubmissionRequest":{"type":"object","description":"Shell submission payload — Step 1 of the submission lifecycle (`Base → Full → Quote`). Reference fields are restricted per field: `producer`, `directAssumed`, `typeOfBilling`, `division`, `producingCompany`, `marketSource`, and `insured.insureContacts` accept **`id` only**; `policy.currency`, `policy.territory`, and `class` accept **`code` only**; `sectionIdentifier` and `referenceType` accept **`id` only** from their fixed value sets. `office`, `mop`, and `typeOfPlacementBespoke` are NOT part of the contract — they are derived/defaulted server-side from `division` (and, for `office`, also `policy.product` and `class`).","required":["insured","producer","policy","directAssumed","typeOfBilling","division","writtenLine"],"properties":{"insured":{"$ref":"#/components/schemas/SubmissionInsured","description":"**Required.** Insured details; `insureContacts.id` identifies an existing insured contact, otherwise supply `companyName` + domicile country/state."},"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":"**Required.** Written line percentage (e.g. 100).","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":"Optional at this step (becomes **required** at Step 2 — Full). Section identifier — `id` only (1 = C&C, 2 = Non C&C). Supply here to pre-derive the underwriting template."},"referenceType":{"$ref":"#/components/schemas/ReferenceTypeRef","description":"Optional. Reference type — `id` only (1 = EEA, 2 = Non-EEA, 3 = Both). Conditional requirement applies at Step 2 (Full) when the producing entity (derived from `division`) is MSSL or MEEA."},"class":{"$ref":"#/components/schemas/CodeReference","description":"Optional. Risk class — `code` only (e.g. `{ \"code\": \"CY\" }`)."},"producingCompany":{"$ref":"#/components/schemas/IdReference","description":"Optional. Producing company — `id` only. Required when division is Mosaic Asta Europe."},"marketSource":{"$ref":"#/components/schemas/IdReference","description":"Optional. Market source — `id` only."}}},"FullCyberSubmissionRequest":{"type":"object","description":"Full submission payload — Step 2 of the submission lifecycle (`Base → Full → Quote`). Extends the Step 1 fields (all optional here, required only when calling this endpoint standalone without a prior `/policies/submission/base` call) with underwriting data. Required: `underWriter`, `mosaicOccupation`, `sectionIdentifier`. Conditional: `referenceType` (required when the producing entity, derived from `division`, is MSSL or MEEA). `office`, `mop`, and `typeOfPlacementBespoke` are NOT part of the contract — derived server-side.","required":["underWriter","mosaicOccupation","sectionIdentifier"],"properties":{"insured":{"$ref":"#/components/schemas/SubmissionInsured","description":"Optional. Already on the DRAFT from Step 1; supply only when calling Full standalone."},"producer":{"$ref":"#/components/schemas/IdReference","description":"Optional. Already on the DRAFT from Step 1. `id` only."},"policy":{"$ref":"#/components/schemas/SubmissionPolicy","description":"Optional. Already on the DRAFT from Step 1. Use the top-level `policyDescription` field for a free-text description."},"directAssumed":{"$ref":"#/components/schemas/IdReference","description":"Optional. `id` only."},"typeOfBilling":{"$ref":"#/components/schemas/IdReference","description":"Optional. `id` only."},"division":{"$ref":"#/components/schemas/IdReference","description":"Optional. `id` only."},"writtenLine":{"type":"integer","minimum":1,"format":"int32","description":"Optional. Written line percentage (e.g. 100).","example":100},"policyDescription":{"type":"string","description":"Optional. Free-text policy description. Defaulted/derived server-side when omitted.","example":"Cyber primary 2026 renewal"},"class":{"$ref":"#/components/schemas/CodeReference","description":"Optional. Risk class — `code` only (e.g. `{ \"code\": \"CY\" }`)."},"producingCompany":{"$ref":"#/components/schemas/IdReference","description":"Optional. Producing company — `id` only. Required when division is Mosaic Asta Europe."},"marketSource":{"$ref":"#/components/schemas/IdReference","description":"Optional. Market source — `id` only."},"sectionIdentifier":{"$ref":"#/components/schemas/SectionIdentifierRef","description":"**Required.** Section identifier — `id` only (1 = C&C, 2 = Non C&C)."},"referenceType":{"$ref":"#/components/schemas/ReferenceTypeRef","description":"**Conditional.** Reference type — `id` only (1 = EEA, 2 = Non-EEA, 3 = Both). Required when the producing entity (derived from `division`) is MSSL or MEEA."},"underWriter":{"$ref":"#/components/schemas/IdReference","description":"**Required.** Underwriter — `id` only (e.g. `{ \"id\": \"8842\" }`)."},"mosaicOccupation":{"$ref":"#/components/schemas/IdReference","description":"**Required.** Mosaic occupation — `id` only (e.g. `{ \"id\": \"198\" }`)."},"umr":{"type":"string","description":"Optional. Unique Market Reference.","example":"B1234567890"},"revTurnover":{"type":"integer","minimum":0,"format":"int32","description":"Optional. Insured's annual revenue or turnover amount.","example":0},"producingUnderwriter":{"$ref":"#/components/schemas/IdReference","description":"Optional. Producing underwriter — `id` only. Defaults to the submission underwriter when omitted."},"lloydsIndustrialSector":{"$ref":"#/components/schemas/IdReference","description":"Optional. Lloyd's industrial sector — `id` only. When supplied, takes precedence over the server's automatic derivation."},"sBFClass":{"$ref":"#/components/schemas/IdReference","description":"Optional. sBFClass — `id` only."}}},"SubmissionRequest":{"type":"object","description":"Shell submission payload (internal/legacy schema). Reference fields are restricted per field: `producer`, `directAssumed`, `typeOfBilling`, `division`, `typeOfPlacementBespoke`, `policy.product`, and `insured.insureContacts` accept **`id` only**; `class`, `policy.currency`, `policy.territory` accept **`code` only**; `sectionIdentifier` accepts **`id` only** (1 = C&C, 2 = Non C&C) and `referenceType` accepts **`id` only** (1 = EEA, 2 = Non-EEA, 3 = Both).","required":["insured","producer","policy","directAssumed","typeOfBilling","division","writtenLine","sectionIdentifier","referenceType","typeOfPlacementBespoke"],"properties":{"insured":{"$ref":"#/components/schemas/SubmissionInsured","description":"Required. Insured details; insureContacts.id identifies an existing insured contact, otherwise supply companyName + domicile country/state."},"producer":{"$ref":"#/components/schemas/IdReference","description":"Required. Producer (broker) reference — `id` only."},"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":"Required. Written line percentage (e.g. 100).","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\": \"CYB001\" }`)."},"typeOfPlacementBespoke":{"$ref":"#/components/schemas/IdReference","description":"Required. Mosaic MOP / bespoke type of placement — `id` only."},"additionalContacts":{"type":"array","description":"Optional. Additional contacts on the policy — CY LOB only. Supply role for each contact.","items":{"$ref":"#/components/schemas/AdditionalContact"}}}},"CyberSubmissionResponse":{"required":["policyKey","policyNo","policyStatus"],"type":"object","properties":{"policyStatus":{"type":"string","description":"Current status of the policy","example":"Quote Preparation","enum":["Quote Preparation","Policy Updated","Bound","Declined","Referred","Quote NTU"]},"policyNo":{"pattern":"^[QP]\\d{7}$","type":"string","description":"Policy number assigned to the submission. Starts with 'Q' for quotes, 'P' for policies","example":"Q0038456"},"reference":{"type":"string","nullable":true,"description":"Business reference number for tracking purposes","example":"CYB-2026-001"},"policyKey":{"type":"string","description":"Internal policy key identifier used for database references","example":"20894"},"policyActivityKey":{"type":"string","description":"Internal policy activity key identifier for tracking specific policy activities","example":"45632"},"policyActivityStatus":{"type":"string","description":"Status of the current policy activity","example":"Active","enum":["Active","Completed","Pending","Cancelled","Quote NTU"]},"quoteNo":{"type":"string","nullable":true,"description":"Quote number assigned when the submission reaches quote stage.","example":"Q0021748"}},"description":"Response object containing cyber submission details including policy information, status, and reference keys"},"RequestCommonAttributeData":{"type":"object","description":"Reference to a lookup-backed entity. Identified by `id` (preferred — the XFI lookup id), or by `code` or `description` when you don't have the id; when more than one is supplied, `id` takes precedence (id > code > description). `id` values are environment-specific; `code` values are stable across environments. Supply at least one of `id`, `code`, or `description`.","minProperties":1,"properties":{"id":{"type":"string","description":"XFI lookup id — the preferred, canonical identifier (environment-specific).","example":"260"},"code":{"type":"string","description":"Environment-stable business code. Accepted when id is omitted.","example":"MSSL"},"description":{"type":"string","description":"Human-readable description. Lowest-precedence fallback.","example":"Mosaic Syndicate Services Ltd"}}},"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"}}},"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"}}},"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"}}},"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"}}},"SubmissionInsured":{"type":"object","description":"Insured details for the shell submission.\n\n**Option A — Existing contact:** Set `insureContacts.id` to the XFI contact identifier. All other insured fields are ignored.\n\n**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."}}},"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."}}},"SubmissionPolicyFull":{"allOf":[{"$ref":"#/components/schemas/SubmissionPolicy"}],"description":"Policy node for the Full step — same shape as SubmissionPolicy. The free-text policy description is supplied via the top-level policyDescription field."},"UnderWriter":{"type":"object","properties":{"underWriterName":{"type":"string"},"underWriterCompany":{"type":"string"}}},"SubmissionListItem":{"type":"object","properties":{"brokerCompany":{"type":"string"},"creationDate":{"type":"string"},"underwriter":{"type":"string"},"activityExpiryDate":{"type":"string","nullable":true},"activityEffectiveDate":{"type":"string","nullable":true},"submissionId":{"type":"string"},"insured":{"type":"string"}},"required":["brokerCompany","creationDate","submissionId","insured"]},"LookupValue":{"type":"object","description":"A single lookup value entry","properties":{"id":{"type":"integer","description":"Unique identifier for the lookup value","example":2000007},"code":{"type":"string","description":"Code identifier for the lookup value (may not be present for all entries)","example":"M1609"},"description":{"type":"string","description":"Human-readable description of the lookup value","example":"Mosaic Syndicate 1609"}},"required":["id","description"]},"CreateShellSubmissionRequest":{"required":["insured","policy","producer"],"type":"object","properties":{"insured":{"$ref":"#/components/schemas/Insured"},"producer":{"$ref":"#/components/schemas/Producer"},"policy":{"$ref":"#/components/schemas/Policy"},"directAssumed":{"type":"string"},"typeOfBilling":{"type":"string"},"division":{"type":"string"},"office":{"type":"string"},"mop":{"type":"string"},"writtenLine":{"type":"integer","format":"int32"},"typeOfPlacementBespoke":{"type":"string"}}},"Insured":{"required":["companyName","countryISOAlpha2Code","countryISOAlpha3Code","domicileCountry","domicileState","email","mailingAddressCity","id"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"companyName":{"maxLength":200,"minLength":0,"type":"string"},"domicileCountry":{"description":"Domicile country — always send as code, e.g. { \"code\": \"USA\" }.","properties":{"code":{"example":"USA","type":"string"}},"required":["code"],"type":"object"},"domicileState":{"description":"Domicile state — always send as code, e.g. { \"code\": \"NY\" }.","properties":{"code":{"example":"NY","type":"string"}},"required":["code"],"type":"object"},"mailingAddress1":{"maxLength":200,"minLength":0,"type":"string"},"mailingAddressCity":{"maxLength":30,"minLength":0,"type":"string"},"email":{"type":"string"},"countryISOAlpha2Code":{"type":"string","description":"countryISOAlpha2Code must be required"},"countryISOAlpha3Code":{"type":"string","description":"countryISOAlpha3Code must be required"}}},"Policy":{"required":["effectiveDate","expiryDate","product","territory"],"type":"object","properties":{"effectiveDate":{"type":"string","format":"date"},"expiryDate":{"type":"string","format":"date"},"currencyCode":{"type":"string"},"product":{"type":"string"},"territory":{"type":"string"}}},"PolicyStatusSummary":{"type":"object","description":"Summary of a policy returned by the /policies/status endpoint.","properties":{"policykey":{"type":"integer","description":"Internal policy key identifier","example":1086334},"policyactivitykey":{"type":"integer","description":"Internal policy key identifier","example":1141169},"account":{"type":"integer","description":"Account contact key","example":4040940},"insured":{"type":"integer","description":"Insured contact key","example":4040940},"producer":{"type":"integer","description":"Producer contact key","example":2000556},"product":{"type":"integer","description":"Product identifier","example":4},"effectiveDate":{"type":"string","format":"date","description":"Policy effective date","example":"2026-01-15"},"expiryDate":{"type":"string","format":"date","description":"Policy expiry date","example":"2027-01-15"},"id":{"type":"integer","description":"Identifier","example":0},"policyStatus":{"type":"string","description":"Current status of the policy","example":"Bound","enum":["Quote Preparation","Quote","Bound","Submission Declined","Quote NTU"]},"policyActivityStatus":{"type":"string","description":"Status of the policy","example":"Bound","enum":["Active","Bound","Completed","Pending","Cancelled","Quote NTU"]}}},"PolicyDetailsResponse":{"type":"object","description":"Response object containing full policy details retrieved from outbound-services-call API.","properties":{"policyId":{"type":"string","description":"Unique identifier of the policy","example":"22170"},"policyActivityKey":{"type":"string","description":"Policy activity key identifier","example":"33650"},"policyEffectiveDate":{"type":"string","format":"date","description":"Policy effective date","example":"2026-01-01"},"policyExpiryDate":{"type":"string","format":"date","description":"Policy expiry date","example":"2027-01-01"},"xfiQuoteReference":{"type":"string","nullable":true,"description":"XFI quote reference"},"insuredCompanyName":{"type":"string","description":"Name of the insured company","example":"Veritas Capital"},"producerName":{"type":"string","description":"Name of the producer","example":"ABC broking ltd"},"underwriterEmail":{"type":"string","description":"Email of the underwriter","example":"rajukumar.sah@dxc.com"},"underwriterName":{"type":"string","description":"Name of the underwriter","example":"Sah, Raju"},"ProducerCompany":{"type":"string","description":"Producer company name","example":"ABC broking ltd"},"producerEmail":{"type":"string","description":"Email of the producer","example":"chanchal.singh@dxc.com"},"insuredAddress":{"$ref":"#/components/schemas/PolicyAddress"},"producerAddress":{"$ref":"#/components/schemas/PolicyAddress"},"policySections":{"type":"array","items":{"$ref":"#/components/schemas/PolicySectionDetail"}},"producerCompany":{"type":"string","description":"Producer company name","example":"ABC broking ltd"}}},"PolicyAddress":{"type":"object","description":"Address details for insured or producer","properties":{"street":{"type":"string","nullable":true},"street2":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true,"example":"New York"},"zip":{"type":"string","nullable":true},"countryISOAlpha2Code":{"type":"string","nullable":true},"countryISOAlpha3Code":{"type":"string","nullable":true},"stateISOAlpha2Code":{"type":"string","nullable":true},"country":{"type":"string","nullable":true,"example":"United States"}}},"PolicySectionDetail":{"type":"object","description":"Policy section containing deductions, coverages, and conditions","properties":{"policyDeductions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyDeduction"}},"policyCoverages":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCoverage"}},"policyConditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"}},"excess":{"type":"number","example":0},"aggregateLimitOfLiability":{"type":"number","nullable":true},"policySectionDesc":{"type":"string","example":"1142"},"policySectionId":{"type":"string","example":"55107"},"allRiskDeductible":{"type":"number","nullable":true},"isUpdated":{"type":"boolean"},"updated":{"type":"boolean"}}},"PolicyDeduction":{"type":"object","properties":{"deductionRate":{"type":"number","example":30},"deductionDesc":{"type":"string","example":"Brokerage ( - )"},"deductionId":{"type":"string","example":"26270"},"isUpdated":{"type":"boolean"},"updated":{"type":"boolean"}}},"PolicyCoverage":{"type":"object","properties":{"policyCoverageDesc":{"type":"string","example":"Security and Privacy Liability"},"grossWritten":{"type":"number","example":15000},"currency":{"type":"string","example":"USD"},"policyCoverageId":{"type":"string","example":"108136"},"isUpdated":{"type":"boolean"},"updated":{"type":"boolean"}}},"PolicyCondition":{"type":"object","properties":{"conditionId":{"type":"string","example":"13019"},"typeOfClauseCode":{"type":"string","nullable":true},"typeOfClauseDescription":{"type":"string","example":"Clause"},"baseCode":{"type":"string","example":"LMA 5493"},"clauseTitle":{"type":"string","example":"Cyber Exclusion"},"isUpdated":{"type":"boolean"},"updated":{"type":"boolean"}}},"Producer":{"required":["id","companyName"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"companyName":{"maxLength":200,"minLength":0,"type":"string"}}},"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."}}},"ContactLiaisonSubmission":{"type":"object","description":"Broker contact liaison recorded under the producer for this submission. The platform resolves this block one of three ways:\n\n1. **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.\n2. **Update by name match** — omit `contactliaisonid`. When `firstName` + `lastName` match an existing liaison under the producer, that liaison is updated in place.\n3. **Create** — omit `contactliaisonid` and supply a `firstName` + `lastName` that do not match any existing liaison; a new liaison is created.\n\n`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"}}},"ShellSubmissionResponse":{"type":"object","properties":{"policyStatus":{"type":"string"},"policyNo":{"type":"string"},"reference":{"type":"string"},"policyKey":{"type":"string"},"policyActivityKey":{"type":"string"},"policyActivityStatus":{"type":"string"}}},"IssuePolicyRequest":{"type":"object","description":"Single-call submission payload. Combines Shell + Full + Quote + Bind data so external consumers send everything once — the platform executes each stage internally in sequence.\n\n`fullRequest` is required and carries the insured/policy/producer identifiers (shell) plus underwriting enrichment (full). `quoteRequest` carries all pricing, section, and line data, including bind-time attributes for each section and line. `bindRequest` carries the policy-level bind attributes that are not tied to a specific section or line.","required":["fullRequest"],"properties":{"fullRequest":{"allOf":[{"$ref":"#/components/schemas/FullRequest"}],"description":"**Required.** Shell (Step 1) and Full (Step 2) data combined.\n\n**Required fields:** `underWriter` (id), `revTurnover`.\n\n**Required shell fields (first submission):** `insured`, `producer`, `policy` (effectiveDate, expiryDate, currency, product, territory), `directAssumed`, `typeOfBilling`, `division`, `writtenLine`, `sectionIdentifier`, `referenceType`, `typeOfPlacementBespoke`.\n\nOptional fields: `producingUnderwriter` (id), `producingCompany` (id), `lloydsIndustrialSector` (id).\n\nPer-line fields (`ourRole`, `signedLinePercentage`) belong in `quoteRequest.lines[]`."},"quoteRequest":{"allOf":[{"$ref":"#/components/schemas/QuoteRequest"}],"description":"Quote, FON, and bind attributes at the section and line level.\n\n**Required quote fields:** `sections` (array, at least one), `summaryCurrency` (code), `typeOfCyberClauseStatus` (id), `uSClassification` (id).\n\nEach entry in `sections[]` carries coverage lines, deductions, deductibles, reinstatements, regulatory coding, and bind-time attributes (instalmentbasis, paymentDays, premiumBasis, typeofClaimBasis).\n\nEach entry in `lines[]` represents an **agency** line and carries submission fields (underWriter, typeOfBilling, division, writtenLine, producingCompany, sBFClass), quote fields (ourRole, signedLinePercentage, producingUnderwriter, lloydsPlatform, bureauLead, isThirdPartyCapacityDeployed), FON fields (brokerOrderPercent, signedOrderPercent, policyLineReference), and bind fields (claimsAgreementParty, defenseCostsCovered, leaderPercent, leaderReference, actualDateWritten, dateSigned, policyLineReferenceOverride). Syndicate lines and derived fields (originating division/office, global-risk cross-reference, inclusive line) are handled by Trident."},"bindRequest":{"allOf":[{"$ref":"#/components/schemas/BindRequest"}],"description":"Policy-level bind attributes — \n\n**Key required fields:** `prebindSanctionCheckComplete`.\n\nSupply `insured` for bind-time enrichment (occupation, mailing address, TINs). Supply `surplusBroker` when risk premium originates from the United States. Supply `fon` for FON activity attributes (CY LOB only).\n\n`claimsAgreementParty` is a per-line attribute — supply it on each entry in `quoteRequest.lines[]`, not here.\n\nSection/line attributes (premiumBasis, typeofClaimBasis, instalmentbasis, leaderPercent, etc.) are carried in `quoteRequest` — not repeated here."}}},"BindRequest":{"type":"object","description":"Policy-level bind attributes. Supply everything that does not belong to a specific section or line.\n\n**Key required fields:** `prebindSanctionCheckComplete`.\n\n`claimsAgreementParty` is a per-line attribute — supply it on each entry in `quoteRequest.lines[]`, not here (XFI only exposes it at the policy-line level).\n\nSection/line attributes (premiumBasis, typeofClaimBasis, instalmentbasis, leaderPercent, etc.) are carried in `quoteRequest` — not repeated here.\n\nThe optional `fon` block carries FON-stage policy-activity attributes (CY LOB only). The optional `surplusBroker` block is required for US-origin risks.","properties":{"prebindSanctionCheckComplete":{"type":"boolean","description":"**Required.** Confirms the pre-bind sanction check has been completed. Set to `true` before proceeding to bind. The submission will be rejected if this check has not been completed.","example":true},"obligor":{"$ref":"#/components/schemas/IdReference","description":"Obligor contact reference — `id` only."},"majorPeril":{"$ref":"#/components/schemas/IdReference","description":"Major peril classification — `id` only. Server-derived from the risk’s class; supply here to override the derivation."},"territory":{"$ref":"#/components/schemas/CodeReference","description":"Territory of the risk — `code` only (e.g. `{ \"code\": \"USA\" }`). Represents the location of the risk, not the regulatory location. When multiple locations exist, use the country with the highest concentration of risk properties. Raise a query to the underwriter if the territory is unclear."},"typeofRIBasis":{"$ref":"#/components/schemas/IdReference","description":"Type of RI basis — `id` only. **Required for Assumed (RI) business.** Leave blank for Direct business.","x-conditional-required":"Required for Assumed (RI) business."},"priorPending":{"type":"string","format":"date","description":"Prior and pending date (ISO 8601 date string, e.g. '2025-01-01'). **Required for CY LOB.** Leave blank for all other LOBs.","example":"2026-01-01","x-conditional-required":"Required for CY LOB."},"priorActs":{"type":"boolean","description":"Whether prior acts cover applies to this risk.","example":true},"retroactiveDate":{"type":"string","format":"date","description":"Retroactive date (ISO 8601 date string). Only applicable when `priorActs` is `true`; leave blank when `priorActs` is `false`. **Required for PV, CY and PL LOBs.** Leave blank for all other LOBs.","example":"2026-01-01","x-conditional-required":"Applicable only when priorActs is true."},"insured":{"$ref":"#/components/schemas/InsuredEnrichment","description":"Bind-time insured enrichment — occupation, mailing/issuance address, policyholder type, and TINs.\n\n**Required fields:** `occupationSource` (id), `occupation`, `mailingAddressCountry` (code).\n\n**Conditional required:** `mailingAddressState` (US/Canada); `webSite` (CY LOB); `assetsUnderManagement` + `assetSize` (FI LOB); `taxIdSpain` / `taxIdPortugal` / `taxIdItaly` / `canadianBusinessNumber` (where insured has exposure in those countries)."},"surplusBroker":{"$ref":"#/components/schemas/SurplusBroker","description":"Surplus lines and sub-producer details. **Required when risk premium originates from the United States.**\n\n**Required fields:** `typeOfAdmitted` (id, set to Surplus), `surplusLinesBroker` (id), `brokerLicense`, `producerHomeState` (code).\n\nAdditionally required when `producerHomeState` is New Jersey: `slaNumber`."},"tailEffectiveDate":{"type":"string","format":"date","description":"Tail effective date at policy-activity level (ISO 8601 date string). Leave blank unless a tail period applies to this risk.","example":"2026-01-01"},"fon":{"$ref":"#/components/schemas/FonActivity","description":"FON (Final Offer & Negotiation) policy-activity attributes. **CY LOB only.**\n\n**Required FON fields:** `fonDate` (date), `jurisdictionCountry` (code), `riskRegulatoryLocation` (code).\n\n**Conditional required:** `jurisdictionState` (code) for US risks.\n\nThe regulatory risk location is found in the Fiscal & Regulatory section of the slip — this represents where the regulator deems the risk to be situated, NOT the territory field."},"programs":{"type":"array","description":"RI program associations. Supply when the policy is part of one or more RI program structures.","items":{"type":"object","required":["programKey"],"properties":{"programKey":{"$ref":"#/components/schemas/IdReference","description":"Program reference — `id` only."}}}},"peerReviewRequest":{"type":"object","description":"Peer review sign-off for the bind.","properties":{"checkedBy":{"$ref":"#/components/schemas/IdReference","description":"Reviewer contact reference — `id` only."},"checkedDate":{"type":"string","format":"date","description":"Date the peer review was completed (ISO 8601 date string).","example":"2026-09-10"}}}},"required":["prebindSanctionCheckComplete"]},"GlobalSubmissionResponse":{"type":"object","description":"Minimal response returned after the base Step Function completes.","properties":{"submissionId":{"type":"string","format":"uuid","description":"Correlation id for tracing the background full + quote executions in logs","example":"9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e"},"policyNo":{"type":"string","description":"Policy number produced by the base submission step","example":"Q0038456"},"policyKey":{"type":"string","description":"Policy key produced by the base submission step, propagated to the async steps","example":"20894"},"policyActivityKey":{"type":"string","description":"Policy activity key produced by the base submission step","example":"45632"},"status":{"type":"string","enum":["ACCEPTED","FAILED"],"description":"ACCEPTED means the full step is running in background; FAILED means the base step failed","example":"ACCEPTED"},"message":{"type":"string","description":"Human-readable message","example":"Base submission succeeded. The full step is running asynchronously."}}},"SubmissionStatus":{"type":"object","description":"Persisted per-step status for a global submission.","properties":{"submissionId":{"type":"string","format":"uuid","example":"9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e"},"policyNo":{"type":"string","example":"Q0038456"},"overallStatus":{"type":"string","enum":["PENDING","RUNNING","BASE_OK","FULL_OK","QUOTE_OK","SUCCESS","FAILED"],"example":"BASE_OK"},"currentStep":{"type":"string","enum":["BASE","FULL","QUOTE","BIND","DONE"],"example":"FULL"},"executionArn":{"type":"string","example":"arn:aws:states:us-east-2:123456789012:execution:TridentGlobalSubmission:fresh-9b3f7c1c-..."},"policyKey":{"type":"string","example":"20894"},"policyActivityKey":{"type":"string","example":"45632"},"baseStatus":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"example":"SUCCESS"},"baseAttempts":{"type":"integer","example":1},"baseError":{"type":"string","nullable":true},"baseOutputJson":{"type":"string","description":"Raw JSON output of the base step (audit)","nullable":true},"fullStatus":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"example":"PENDING"},"fullAttempts":{"type":"integer","example":0},"fullError":{"type":"string","nullable":true},"fullOutputJson":{"type":"string","nullable":true},"quoteStatus":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"example":"PENDING"},"quoteAttempts":{"type":"integer","example":0},"quoteError":{"type":"string","nullable":true},"quoteOutputJson":{"type":"string","nullable":true},"bindStatus":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"example":"PENDING"},"bindAttempts":{"type":"integer","example":0},"bindError":{"type":"string","nullable":true},"bindOutputJson":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time","example":"2026-05-04T12:34:56.789Z"},"updatedAt":{"type":"string","format":"date-time","example":"2026-05-04T12:35:01.123Z"}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}}},"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"}}}},"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"}}}},"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.\n\nFor 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"}}},"InsuredEnrichment":{"type":"object","description":"Bind-time insured enrichment fields (Step 4 only). Carries the additional insured attributes entered in XFI at bind — occupation, LOB-specific details, issuance address, policyholder type, and tax identification numbers. The core contact fields (companyName, domicile, mailing address) are already on the draft from Step 1 and do not need to be re-sent.","properties":{"occupationSource":{"$ref":"#/components/schemas/IdReference","description":"**Required.** Occupation source — `id` only. Identifies the source system used for the occupation lookup (e.g. D&B). Source: XFI Contact (General) > Insured section."},"occupation":{"$ref":"#/components/schemas/CodeReference","description":"**Required.** Insured occupation — `code` only. Enter as sourced from D&B lookup or submission documentation."},"assetsUnderManagement":{"type":"string","description":"**Required for FI LOB.** Assets under management (string). Source: booking sheet or Tyche rater.","x-conditional-required":"Required for FI LOB.","example":"500000000"},"assetSize":{"type":"string","description":"**Required for FI LOB.** Asset size (string). Source: booking sheet or Tyche rater.","x-conditional-required":"Required for FI LOB.","example":"1000000000"},"webSite":{"type":"string","description":"**Required for CY LOB.** Insured website URL. Source: submission documentation or insured.","x-conditional-required":"Required for CY LOB.","example":"https://www.veritascap.com"},"policyholderType":{"$ref":"#/components/schemas/IdReference","description":"Policyholder type — `id` only. Source: fiscal/regulatory section of the slip."},"issuanceAddressSameAsInsured":{"type":"boolean","description":"Set `true` to copy the insured address to the issuance address (Direct business). Set `false` and supply `issuanceTo`, `issuanceAddress1`, `issuanceCity`, etc. for Assumed / RI business.","example":true},"issuanceTo":{"type":"string","description":"**Conditional.** Reassured name on the issuance address — populate when issuanceAddressSameAsInsured is false.","example":"Munich Re","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuanceAddress1":{"type":"string","description":"**Conditional.** Issuance address line 1 — populate when issuanceAddressSameAsInsured is false.","example":"Koeniginstrasse 107","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuanceAddress2":{"type":"string","description":"**Conditional.** Issuance address line 2 — populate when issuanceAddressSameAsInsured is false.","example":"PO Box 123","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuanceCity":{"type":"string","description":"**Conditional.** Issuance address city — populate when issuanceAddressSameAsInsured is false.","example":"Munich","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuanceState":{"$ref":"#/components/schemas/IdReference","description":"**Conditional.** Issuance address state — `id` only. Populate when issuanceAddressSameAsInsured is false.","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuancePostCode":{"type":"string","description":"**Conditional.** Issuance address post code — populate when issuanceAddressSameAsInsured is false.","example":"80802","x-conditional-required":"Required when issuanceAddressSameAsInsured is false."},"issuanceDateReviewed":{"type":"string","format":"date","description":"**Conditional.** Date the issuance address was reviewed — populate when issuanceAddressSameAsInsured is false.","example":"2026-07-01"},"mailingAddress2":{"type":"string","description":"Second mailing address line.","example":"Suite 400"},"mailingAddressCountry":{"$ref":"#/components/schemas/CodeReference","description":"**Required.** Insured mailing address country — `code` only. Also mandatory for BDX reporting when insured has exposure in Spain, Portugal, Italy, or Canada."},"mailingAddressState":{"$ref":"#/components/schemas/CodeReference","description":"**Required for US and Canada insureds.** Mailing address state — `code` only.","x-conditional-required":"Required for US and Canada insureds."},"mailingAddressPostCode":{"type":"string","description":"Insured mailing address post code / zip. Supply for US insureds and any other country where postal codes apply.","example":"54302"},"fein":{"type":"string","maxLength":10,"description":"Federal Employer Identification Number (US).","example":"12-3456789"},"taxIdSpain":{"type":"string","maxLength":9,"description":"Spanish Tax Identification Number (NIF/NIE). Mandatory per Lloyd's coverholder reporting standard when insured has Spain exposure.","example":"A12345678"},"taxIdItaly":{"type":"string","maxLength":16,"description":"Italian Tax Identification Number (Codice Fiscale). Mandatory per Lloyd's coverholder reporting standard when insured has Italy exposure.","example":"RSSMRA85T10A562S"},"taxIdPortugal":{"type":"string","maxLength":9,"description":"Portuguese Tax Identification Number (NIF). Mandatory per Lloyd's coverholder reporting standard when insured has Portugal exposure.","example":"123456789"},"canadianBusinessNumber":{"type":"string","maxLength":9,"description":"Canadian Business Number (BN). Required for any Canadian insured or where risk is located in Canada. Does NOT apply when a Canadian broker is involved in the placement.","example":"123456789RT0001"}},"required":["occupationSource","occupation","mailingAddressCountry"]},"SurplusBroker":{"type":"object","description":"Surplus and sub-producer details for US-origin risks. Required when risk premium originates from the United States. Note: `surplusLinesBroker` is the surplus lines broker entity — distinct from the main insurance producer in `SubmissionRequest.producer`.","properties":{"typeOfAdmitted":{"$ref":"#/components/schemas/IdReference","description":"**Required (US-origin risks).** US admitted classification — `id` only. Set to 'Surplus' for US surplus lines business. Source: fiscal/regulatory section of the slip.","x-conditional-required":"Required when risk premium originates from the United States."},"surplusLinesBroker":{"$ref":"#/components/schemas/IdReference","description":"**Required (US-origin risks).** Surplus lines broker entity — `id` only. Search and match in XFI by broker name and address. If not found, request addition via the WNS leads process.","x-conditional-required":"Required when risk premium originates from the United States."},"brokerLicense":{"type":"string","description":"**Required (US-origin risks).** Surplus lines broker licence number as stated on the slip. Query the broker directly if the licence number is missing.","example":"SL-CA-12345","x-conditional-required":"Required when risk premium originates from the United States."},"slaNumber":{"type":"string","description":"**Required when producerHomeState is New Jersey.** NJ SLA Transaction Number. Format: {5-character SLA}-{YY}-{5-digit sequence} (e.g. 'AB123-26-00001').","example":"AB123-26-00001","x-conditional-required":"Required when producerHomeState is New Jersey."},"producerHomeState":{"$ref":"#/components/schemas/CodeReference","description":"**Required (US-origin risks).** State of filing (producer home state) — `code` only. Source: fiscal/regulatory section of the slip.","x-conditional-required":"Required when risk premium originates from the United States."}}},"AdditionalContact":{"type":"object","description":"An additional contact on the policy — CY LOB only.","properties":{"role":{"$ref":"#/components/schemas/IdReference","description":"Contact role — `id` only."},"contact":{"$ref":"#/components/schemas/IdReference","description":"Contact reference — `id` only."}}},"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).\n\n**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.\n\nFields 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"}}},"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"}}},"FonActivity":{"type":"object","description":"FON (Final Offer & Negotiation) attributes at the policy activity level. CY LOB only. Carries FON date, jurisdiction details, and regulatory location for the insured risk.","properties":{"fonDate":{"type":"string","format":"date","description":"**Required for FON stage.** The date the Final Offer & Negotiation was completed (ISO 8601 date, e.g. '2026-07-01'). Provided by the front-end system.","example":"2026-01-15"},"jurisdictionCountry":{"$ref":"#/components/schemas/CodeReference","description":"**Required.** Jurisdiction country — `code` only. The country where the insured risk is located. Found in the Fiscal & Regulatory section of the slip. This is NOT the same as the `territory` field."},"jurisdictionState":{"$ref":"#/components/schemas/CodeReference","description":"**Required for US risks.** Jurisdiction state — `code` only. The state where the US-domiciled insured risk is located. Provided by the front-end for US-origin submissions.","x-conditional-required":"Required for US risks."},"riskRegulatoryLocation":{"$ref":"#/components/schemas/CodeReference","description":"**Required.** Regulatory risk location — `code` only. Where the regulator deems the risk to be situated, as stated in the Fiscal & Regulatory section of the slip. This is NOT the territory; the two fields serve different regulatory purposes."}},"required":["fonDate","jurisdictionCountry","riskRegulatoryLocation"]},"FieldLookupResponse":{"type":"object","description":"Response returned by `/reference/fields`. Contains the field name resolved by the server and the list of allowed values read from the live XFI section schema.","required":["status","field","values"],"properties":{"status":{"type":"string","enum":["SUCCESS","FAILED"],"description":"Outcome of the lookup call.","example":"SUCCESS"},"field":{"type":"string","description":"The XFI field name whose allowed values are returned. One of `coverage`, `agreement`, `agreementActivity`, or `agreementSection`.","example":"agreement"},"values":{"type":"array","description":"Allowed values for the field. Empty when no schema exists for the section (e.g. non-Lloyd's policies for agreement fields).","items":{"$ref":"#/components/schemas/LookupValue"}}}},"ContactFuzzySearchItem":{"type":"object","description":"A single contact entry returned by the /lookup/contacts endpoint, passed through from XFI's `summary` object verbatim. Backing Java type is `Map<String, Object>` — keys are not fixed/known in advance (XFI may return any of `contactKey`, `contactReference`, `code`, `roleCode`, `mainrole`, `email`, `mailingAddress1`, `mailingAddress2`, `mailingAddressCity`, `country`, or others), so no fixed property list is declared here.","additionalProperties":true},"ContactFuzzySearchResponse":{"type":"object","description":"Response returned by the /lookup/contacts endpoint. Wraps XFI's `_count`/`_links.item[].summary` payload as `total`/`item`.","required":["total","item"],"properties":{"total":{"type":"integer","format":"int32","description":"Total number of matching contacts reported by XFI (`_count`)."},"item":{"type":"array","items":{"$ref":"#/components/schemas/ContactFuzzySearchItem"},"description":"Flattened contact entries (`_links.item[].summary`), verbatim. Each entry is a free-form map (`Map<String, Object>`) — properties below are the common ones; XFI may include additional attributes."}}},"ContactLiaisonItem":{"type":"object","description":"A single contact liaison entry for a producer.","properties":{"contactliaisonkey":{"type":"integer","description":"XFI contact liaison key.","example":2596},"contactkey":{"type":"integer","description":"XFI contact key of the producer.","example":2000556},"contact":{"type":"string","description":"Producer company name.","example":"Lockton Companies, LLC"},"liaisonRole":{"type":"string","description":"Role of the liaison (e.g. Broker Contact).","example":"Broker Contact"},"contactLiaisonReference":{"type":"string","description":"Display name (LastName, FirstName).","example":"Ahn, Paul"},"firstName":{"type":"string","example":"Paul"},"lastName":{"type":"string","example":"Ahn"},"email":{"type":"string","example":"pahn@lockton.com"}}},"ContactLiaisonRequest":{"type":"object","description":"Broker contact person details used to search for or create a contact liaison under a producer.","required":["firstName","lastName"],"properties":{"firstName":{"type":"string","description":"First name of the broker contact person.","example":"John"},"lastName":{"type":"string","description":"Last name of the broker contact person.","example":"Smith"},"fullName":{"type":"string","description":"Full name of the broker contact person (optional, used for display).","example":"John Smith"},"email":{"type":"string","description":"Email address of the broker contact person.","example":"john.smith@broker.com"},"phoneNo":{"type":"string","description":"Phone number of the broker contact person.","example":"+44 20 7946 0958"},"mobilePhone":{"type":"string","description":"Mobile phone number of the broker contact person.","example":"+44 7700 900000"}}},"ContactLiaisonResponse":{"type":"object","description":"Response returned after creating or updating a contact liaison for a producer.","properties":{"producerContactKey":{"type":"string","description":"XFI contact key of the producer (broker company).","example":"2000556"},"contactLiaisonKey":{"type":"string","description":"XFI contact liaison key. Use this value as the producerContact when creating a policy.","example":"3045678"}}},"PolicyReferenceGenerationRequest":{"type":"object","description":"Request payload for generating a policy reference. Supply the insured, producer, product, and underwriter at minimum — all as `id` references.","required":["insured","producer","mop","policyyearnumber","product","underwriter"],"properties":{"insured":{"$ref":"#/components/schemas/IdReference","description":"Insured contact — `id` only."},"producer":{"$ref":"#/components/schemas/IdReference","description":"Producer (broker) — `id` only."},"mop":{"$ref":"#/components/schemas/CodeReference","description":"MOP (Method of Placement) `code` only."},"notes":{"type":"string","description":"Optional free-text notes for the policy reference.","example":""},"policyyearnumber":{"type":"string","description":"Policy year number.","example":"26"},"policyyear":{"type":"string","description":"Policy year.","example":"26"},"product":{"$ref":"#/components/schemas/IdReference","description":"Product reference `id` only."},"quote":{"$ref":"#/components/schemas/CodeReference","description":"Quote type `code` only (e.g. `Q`)."},"underwriter":{"$ref":"#/components/schemas/IdReference","description":"Underwriter reference `id` only."}}},"PolicyReferenceResponse":{"type":"object","description":"Response returned after generating a policy reference. Contains the generated reference, associated keys, and input echo fields.","properties":{"createdBy":{"type":"integer","format":"int32","description":"Contact key of the user who created the reference.","example":2000574},"generatedReference":{"type":"string","description":"The generated policy reference string.","example":"PCY2434926AA"},"insured":{"type":"string","description":"Insured contact id echoed from the request.","example":"3000211"},"policyreferencekey":{"type":"integer","format":"int32","description":"Internal policy reference key identifier.","example":646},"notes":{"type":"string","nullable":true,"description":"Notes echoed from the request.","example":""},"policyYear":{"type":"string","description":"Policy year echoed from the request.","example":"26"},"policyYearNumber":{"type":"integer","format":"int32","description":"Policy year number echoed from the request.","example":26},"producer":{"type":"string","description":"Producer contact id echoed from the request.","example":"2000987"},"product":{"type":"integer","format":"int32","description":"Product identifier.","example":4},"underwriter":{"type":"integer","format":"int32","description":"Underwriter contact key.","example":2000310}}},"LivePolicyResponse":{"type":"object","required":["policyStatus","policyNo","reference","policyKey","policyActivityKey","policyActivityStatus"],"properties":{"policyStatus":{"type":"string","example":"Live Policy"},"policyNo":{"type":"string","example":"Q1100077"},"reference":{"type":"string","example":"F0025667"},"policyKey":{"type":"string","example":"1087748"},"policyActivityKey":{"type":"string","example":"1142676"},"policyActivityStatus":{"type":"string","example":"Issued"}}},"PeerReviewCheckRequest":{"type":"object","required":["checkedBy","checkedDate"],"properties":{"checkedBy":{"$ref":"#/components/schemas/PeerReviewCheckedBy"},"checkedDate":{"type":"string","format":"date","example":"2026-09-10"}}},"PeerReviewCheckedBy":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","format":"int64","example":545}}}},"securitySchemes":{"api_key":{"type":"apiKey","name":"x-api-key","in":"header"}},"parameters":{"XOriginationSource":{"name":"X-Origination-Source","in":"header","required":true,"description":"Identifies the calling system or channel that originated this request. Used for traceability and auditing across the platform.","schema":{"type":"string"},"example":"S01x"},"XAuditUserId":{"name":"X-Audit-UserId","in":"header","required":true,"description":"Identifier of the end user on whose behalf this request is made, recorded for audit trail purposes.","schema":{"type":"string"},"example":"jsmith"}}}}
```
