Trident APIs

Trident APIs

1.0OAS 3.0

Trident APIs

The Trident APIs let you create and progress cyber insurance submissions through their full lifecycle and look up reference data used across the platform.

Authentication

All endpoints require an API key sent in the x-api-key header.

Conventions

  • All requests and responses use application/json.
  • Dates use ISO 8601 (YYYY-MM-DD).
  • Lookup objects accept any one of id, code, or description — supply whichever you have. When more than one is provided, id takes precedence.
  • Errors follow a uniform shape (code, message) and use standard HTTP status codes.

Field requirement levels

Every request field is one of three levels, derived from the XFI SOP Mandatory rules:

  • Required — listed in the schema required array; the request is rejected if absent.
  • 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.
  • Optional — supply only if known.

Submission lifecycle

  1. BasePOST /submission/base creates a new DRAFT cyber submission and returns policyKey and policyActivityKey.
  2. FullPOST /submission/full?policyKey={policyKey}&policyActivityKey={policyActivityKey} enriches the draft with underwriting and classification data.
  3. QuotePOST /submission/quote?policyKey={policyKey}&policyActivityKey={policyActivityKey} adds pricing and section data.

A single-call orchestration of the entire lifecycle (Base + Full → Quote → Bind) is also available via POST /submission/global.

API Base URL
  • Server 1:https://trident-api.connecttrident.com

    Generated server url

Security
api_key (apiKey)

An API key is a token that you provide when making API calls. Include the token in a header parameter called x-api-key.

Example: x-api-key: 123

Additional Information

Create shell submission

Creates a new DRAFT cyber submission — Step 1 of the submission lifecycle (Base → Full → Quote).

The response returns policyKey and policyActivityKey. Persist both — they are required for Step 2 (POST /submission/full).

Specifying the insured

The insured block accepts one of two mutually exclusive shapes:

  • Existing contact — set insured.insureContacts.id to the contact identifier. Individual insured fields are ignored.
  • New insured — provide companyName, domicileCountry, domicileState, and any mailing-address fields you have.

Required fields

insured, producer, policy.effectiveDate, policy.expiryDate, policy.currency, policy.product, policy.territory, directAssumed, typeOfBilling, division, writtenLine.

Optional fields

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.

Derived server-side (not part of the contract)

office, mop, and typeOfPlacementBespoke are never supplied by the caller — they are derived from division (and, for office, also from policy.product and class).

Lookup objects

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

Response timing

The call typically completes within 35–40 seconds.

post
https://trident-api.connecttrident.com/submission/base

Body

application/json

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.

CyberSubmissionRequest

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

insuredobjectrequired

Required. Insured details; insureContacts.id identifies an existing insured contact, otherwise supply companyName + domicile country/state.

Show Child Parameters
producerobjectrequired

Required. Producer (broker) reference — id only.

* Additional properties are NOT allowed.
Show Child Parameters
policyobjectrequired

Required. Policy node (dates, currency, product, territory).

Show Child Parameters
directAssumedobjectrequired

Required. Business type — id only (Direct or Assumed).

* Additional properties are NOT allowed.
Show Child Parameters
typeOfBillingobjectrequired

Required. id only.

* Additional properties are NOT allowed.
Show Child Parameters
divisionobjectrequired

Required. id only.

* Additional properties are NOT allowed.
Show Child Parameters
writtenLineinteger(int32)required

Required. Written line percentage (e.g. 100).

>= 1

Example:100

policyDescriptionstring

Optional. Free-text policy description. Defaulted/derived server-side when omitted.

Example:Cyber primary 2026 renewal

sectionIdentifierobject

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.

* Additional properties are NOT allowed.
Show Child Parameters
referenceTypeobject

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.

* Additional properties are NOT allowed.
Show Child Parameters
classobject

Optional. Risk class — code only (e.g. { "code": "CY" }).

* Additional properties are NOT allowed.
Show Child Parameters
producingCompanyobject

Optional. Producing company — id only. Required when division is Mosaic Asta Europe.

* Additional properties are NOT allowed.
Show Child Parameters
marketSourceobject

Optional. Market source — id only.

* Additional properties are NOT allowed.
Show Child Parameters

Response

application/json

DRAFT submission created successfully. Save policyKey and policyActivityKey from the response — they are required for Step 2 (POST /submission/full).

CyberSubmissionResponse

Response object containing cyber submission details including policy information, status, and reference keys

policyStatusstringrequired

Current status of the policy

Allowed values:Quote PreparationPolicy UpdatedBoundDeclinedReferredQuote NTU

Example:Quote Preparation

policyNostringrequired

Policy number assigned to the submission. Starts with ‘Q’ for quotes, ‘P’ for policies

Match pattern:^[QP]\d{7}$

Example:Q0038456

referencestring | null

Business reference number for tracking purposes

Example:CYB-2026-001

policyKeystringrequired

Internal policy key identifier used for database references

Example:20894

policyActivityKeystring

Internal policy activity key identifier for tracking specific policy activities

Example:45632

policyActivityStatusstring

Status of the current policy activity

Allowed values:ActiveCompletedPendingCancelledQuote NTU

Example:Active

quoteNostring | null

Quote number assigned when the submission reaches quote stage.

Example:Q0021748

post/submission/base

Body

{ "insured": { "companyName": "Veritas Capital Test 2", "domicileCountry": "United States", "domicileState": "New York", "mailingAddress1": "1123 Cedar Street", "mailingAddressCity": "Green Bay", "email": "noemail@example.com", "zip": "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" }, "policyDescription": "UAT Test" }
 
application/json

Enrich submission with underwriting data

Adds underwriting and classification data to an existing draft submission — Step 2 of the submission lifecycle (Base → Full → Quote).

Pass the policyKey and policyActivityKey returned by POST /submission/base as query parameters: ?policyKey={policyKey}&policyActivityKey={policyActivityKey}.

Required fields

underWriter, mosaicOccupation, sectionIdentifier (optional at Step 1, required here).

Conditional fields

referenceType — required when the submission’s producing entity (derived from division) is MSSL or MEEA (Mosaic Asta Europe).

Optional fields

umr, revTurnover (insured’s annual revenue/turnover), producingUnderwriter (defaults to underWriter when omitted), typeOfLayer, lloydsIndustrialSector (overrides the NAICS-based derivation when supplied), sBFClass.

Re-submittable Step 1 fields

insured, producer, policy, directAssumed, typeOfBilling, division, writtenLine, policyDescription, class, producingCompany, marketSource may be re-supplied here — required only when calling /submission/full standalone without a prior /submission/base call.

Derived server-side (not part of the contract)

office, mop, and typeOfPlacementBespoke are never supplied by the caller.

Lookup objects

Reference fields are restricted per field: producer, mosaicOccupation, underWriter, producingUnderwriter, typeOfLayer, 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).

Response timing

The call typically completes within 40–60 seconds.

post
https://trident-api.connecttrident.com/submission/full

Query Parameters

policyKeystringrequired

policyKey returned by Step 1 (/submission/base)

Example:20793

policyActivityKeystringrequired

policyActivityKey returned by Step 1 (/submission/base)

Example:45632

Body

application/json

Full submission payload. Required: underWriter, mosaicOccupation, sectionIdentifier. Conditional: referenceType. All other fields are optional.

FullCyberSubmissionRequest

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

insuredobject

Optional. Already on the DRAFT from Step 1; supply only when calling Full standalone.

Show Child Parameters
producerobject

Optional. Already on the DRAFT from Step 1. id only.

* Additional properties are NOT allowed.
Show Child Parameters
policyobject

Optional. Already on the DRAFT from Step 1. Use the top-level policyDescription field for a free-text description.

Show Child Parameters
directAssumedobject

Optional. id only.

* Additional properties are NOT allowed.
Show Child Parameters
typeOfBillingobject

Optional. id only.

* Additional properties are NOT allowed.
Show Child Parameters
divisionobject

Optional. id only.

* Additional properties are NOT allowed.
Show Child Parameters
writtenLineinteger(int32)

Optional. Written line percentage (e.g. 100).

>= 1

Example:100

policyDescriptionstring

Optional. Free-text policy description. Defaulted/derived server-side when omitted.

Example:Cyber primary 2026 renewal

classobject

Optional. Risk class — code only (e.g. { "code": "CY" }).

* Additional properties are NOT allowed.
Show Child Parameters
producingCompanyobject

Optional. Producing company — id only. Required when division is Mosaic Asta Europe.

* Additional properties are NOT allowed.
Show Child Parameters
marketSourceobject

Optional. Market source — id only.

* Additional properties are NOT allowed.
Show Child Parameters
sectionIdentifierobjectrequired

Required. Section identifier — id only (1 = C&C, 2 = Non C&C).

* Additional properties are NOT allowed.
Show Child Parameters
referenceTypeobject

Conditional. Reference type — id only (1 = EEA, 2 = Non-EEA, 3 = Both). Required when the producing entity (derived from division) is MSSL or MEEA.

* Additional properties are NOT allowed.
Show Child Parameters
underWriterobjectrequired

Required. Underwriter — id only (e.g. { "id": "8842" }).

* Additional properties are NOT allowed.
Show Child Parameters
mosaicOccupationobjectrequired

Required. Mosaic occupation — id only (e.g. { "id": "198" }).

* Additional properties are NOT allowed.
Show Child Parameters
umrstring

Optional. Unique Market Reference.

Example:B1234567890

revTurnoverinteger(int32)

Optional. Insured’s annual revenue or turnover amount.

>= 0

Example:0

producingUnderwriterobject

Optional. Producing underwriter — id only. Defaults to the submission underwriter when omitted.

* Additional properties are NOT allowed.
Show Child Parameters
typeOfLayerobject

Optional. Type of layer — id only.

* Additional properties are NOT allowed.
Show Child Parameters
lloydsIndustrialSectorobject

Optional. Lloyd’s industrial sector — id only. When supplied, takes precedence over the server’s NAICS-based derivation.

* Additional properties are NOT allowed.
Show Child Parameters
sBFClassobject

Optional. sBFClass — id only.

* Additional properties are NOT allowed.
Show Child Parameters

Response

application/json

Full submission created successfully.

CyberSubmissionResponse

Response object containing cyber submission details including policy information, status, and reference keys

policyStatusstringrequired

Current status of the policy

Allowed values:Quote PreparationPolicy UpdatedBoundDeclinedReferredQuote NTU

Example:Quote Preparation

policyNostringrequired

Policy number assigned to the submission. Starts with ‘Q’ for quotes, ‘P’ for policies

Match pattern:^[QP]\d{7}$

Example:Q0038456

referencestring | null

Business reference number for tracking purposes

Example:CYB-2026-001

policyKeystringrequired

Internal policy key identifier used for database references

Example:20894

policyActivityKeystring

Internal policy activity key identifier for tracking specific policy activities

Example:45632

policyActivityStatusstring

Status of the current policy activity

Allowed values:ActiveCompletedPendingCancelledQuote NTU

Example:Active

quoteNostring | null

Quote number assigned when the submission reaches quote stage.

Example:Q0021748

post/submission/full

Body

{ "underWriter": { "id": "2000068" }, "mosaicOccupation": { "id": "792" }, "sectionIdentifier": { "id": "1" }, "referenceType": { "id": "2" }, "producingUnderwriter": { "id": "2000068" }, "typeOfLayer": { "id": "1" }, "lloydsIndustrialSector": { "id": "10" }, "sBFClass": { "id": "4" }, "revTurnover": 10000 }
 
application/json