Trident APIs

Global Submission

Starts the TridentGlobalSubmission Step Function. The base step runs synchronously and its policyNo / policyKey / policyActivityKey are returned in the response. The full, quote, and bind steps continue in the background; poll /submission/global/{policyNo}/status for their outcome.

Processing Time: Base step 35-40 seconds (synchronous), full + quote + bind steps run asynchronously.

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

Body

application/json

Flat payload covering the base, full, quote, and bind downstream submissions. Each section in sections carries an agreement object plus arrays of coverage, deduction, and codeSplit lines.

GlobalSubmissionRequest

Flat, duplicate-free payload for the global submission endpoint. Fields enforced by the orchestrator’s own bean-validation (@NotBlank/@NotEmpty) plus the downstream /submission/full full-validation group are listed under required.

insuredCompanyNamestringrequired

Required by the orchestrator for the Step Function execution name; not forwarded to the base/full policy node

Example:Veritas Capital

insuredIdinteger

Wrapped downstream as insured.insureContacts.id

Example:2000887

producerCompanyNamestringrequired

Required by the orchestrator; the producer is forwarded by id

Example:ENTERPRISE BROKERS kkarmark

producerIdinteger

Wrapped downstream as producer.id

Example:2000556

effectiveDatestring(date)required

Example:2024-01-01

expiryDatestring(date)required

Example:2025-01-01

currencyCodestringrequired

Wrapped downstream as policy.currency.id

Example:9

productstringrequired

Wrapped downstream as policy.product.description

Example:Cyber

territorystringrequired

Wrapped downstream as policy.territory.id

Example:17

directAssumedstring

Wrapped downstream as directAssumed.id

Example:1

typeOfBillingstring

Wrapped downstream as typeOfBilling.id

Example:1

divisionstring

Wrapped downstream as division.id

Example:8

officestring

Wrapped downstream as office.description

Example:Head Office Canada

mopstring

Wrapped downstream as mop.id

Example:3

typeOfPlacementstring

Wrapped downstream as typeOfPlacementBespoke.id

Example:1

writtenLineinteger

Example:100

underwriterNamestringrequired

Wrapped downstream as underWriterDetails.description

Example:Desai, stavan

policyOriginationSourcestringrequired

Wrapped downstream as policyOriginationSource.id

Example:2

insuredRevenueintegerrequired

Serialized as insuredRevenueTurnover in the full payload

Example:0

riskRegulatoryLocationstringrequired

Wrapped downstream as riskRegulatoryLoctn.id

Example:17

insuredDomicileCountrystringrequired

Wrapped downstream as insuredDomicileCountry.description

Example:Australia

insuredDomicileStatestringrequired

Wrapped downstream as insuredDomicileState.description

Example:New South Wales

periodTBAstringrequired

Downstream FullCyberSubmissionRequest.periodTBA is regex-validated YES|NO

Allowed values:YESNO

Example:NO

usClassificationstringrequired

Wrapped downstream as uSClassification.id

Example:6

lloydsIndustrialSectorstringrequired

Wrapped downstream as lloydsIndustrialSector.id

Example:5

mosaicOccupationstringrequired

Wrapped downstream as mosaicOccupation.id for base/full; sent as a plain string to the quote/bind steps

Example:198

sanctionCheckCompletestringrequired

Downstream submissionSanctionCheckComplete is regex-validated YES|NO

Allowed values:YESNO

Example:YES

possibleClashIdentifiedstringrequired

Wrapped downstream as possibleClashIdentified.code (regex-validated YES|NO)

Allowed values:YESNO

Example:NO

clashResponsestring

Wrapped downstream as clashResponse.code

Example:[ "" ]

sbfClassstringrequired

Wrapped downstream as sBFClass.id

Example:4

isThirdPartyCapacityDeployedstringrequired

Wrapped downstream as isThirdPartyCapacityDeployed.id

Example:2

signedLinenumber(double)required

Example:100

ourRolestringrequired

Wrapped downstream as ourRole.id

Example:1

claimsAgreementPartystringrequired

Wrapped downstream as claimsAgreementParty.id

Example:2

stampUnderwriterstringrequired

Wrapped downstream as stampUnderwriter.description

Example:Desai, stavan

producingUnderwriterstringrequired

Wrapped downstream as producingUnderwriter.description

Example:Desai, stavan

revTurnoverinteger(int64)required

Serialized as revTurnover in the full payload

Example:10

majorPerilstringrequired

Wrapped downstream as majorPeril.id for base/full; sent as a plain string to the quote/bind steps

Example:11

umrstringrequired

Example:B1234567890

sectionsarray[object]required

One quote section. coverage, deduction, codeSplit are arrays so a section may carry multiple lines.

Show Child Parameters
productTemplateSectionToAddstring

Example:Directors and Officers

bindProbabilitystring

Example:100%

bindTerritorystring

Territory sent ONLY to the bind step (distinct from the shared territory)

Example:USA

obligorstring

Example:Test Obligor

prebindSanctionCheckCompleteboolean

Example:true

bindCodeSplitsarray[object]

Code split information

Show Child Parameters

Response

application/json

Base step succeeded; full, quote, and bind are running asynchronously

GlobalSubmissionResponse

Minimal response returned after the base Step Function completes.

submissionIdstring(uuid)

Correlation id for tracing the background full + quote executions in logs

Example:9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e

policyNostring

Policy number produced by the base submission step

Example:Q0038456

policyKeystring

Policy key produced by the base submission step, propagated to the async steps

Example:20894

policyActivityKeystring

Policy activity key produced by the base submission step

Example:45632

statusstring

ACCEPTED means full + quote are running in background; FAILED means the base step failed

Allowed values:ACCEPTEDFAILED

Example:ACCEPTED

messagestring

Human-readable message

Example:Base submission succeeded. Full, quote and bind steps are running asynchronously.

post/submission/global

Body

{ "insuredCompanyName": "Veritas Capital", "insuredId": 2000887, "producerCompanyName": "ENTERPRISE BROKERS kkarmark", "producerId": 2000556, "effectiveDate": "2024-01-01", "expiryDate": "2025-01-01", "currencyCode": "9", "product": "Cyber", "territory": "17", "directAssumed": "1", "typeOfBilling": "1", "division": "8", "office": "Head Office Canada", "mop": "3", "typeOfPlacement": "1", "writtenLine": 100, "underwriterName": "Desai, stavan", "policyOriginationSource": "2", "insuredRevenue": 0, "riskRegulatoryLocation": "17", "insuredDomicileCountry": "Australia", "insuredDomicileState": "New South Wales", "periodTBA": "NO", "usClassification": "6", "lloydsIndustrialSector": "5", "mosaicOccupation": "198", "sanctionCheckComplete": "YES", "possibleClashIdentified": "NO", "clashResponse": "", "sbfClass": "4", "isThirdPartyCapacityDeployed": "2", "signedLine": 100, "ourRole": "1", "claimsAgreementParty": "2", "stampUnderwriter": "Desai, stavan", "producingUnderwriter": "Desai, stavan", "revTurnover": 10, "majorPeril": "11", "umr": "B1234567890", "sections": [ { "agreement": { "gELR": 50, "agreement": "AGR0000159", "agreementActivity": "AGR0000159-22-01", "agreementSection": "1", "agreementLimit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "coverageLimit": 500000, "limitAggregate": 100, "ratedPremium": 15000 }, { "premium": 15000, "limitOccurrence": 100, "coverageLimit": 500000, "limitAggregate": 100, "ratedPremium": 15000 } ], "deduction": [ { "deductionCode": "BK", "deductionRate": 20 } ], "codeSplit": [ { "regulatoryCode": "E2", "codeSplitPercent": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR0000159", "agreementActivity": "AGR0000159-22-01", "agreementSection": "1", "agreementLimit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "coverageLimit": 500000, "limitAggregate": 100, "ratedPremium": 15000 } ], "codeSplit": [ { "regulatoryCode": "E2", "codeSplitPercent": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR0000159", "agreementActivity": "AGR0000159-22-01", "agreementSection": "1", "agreementLimit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "coverageLimit": 500000, "limitAggregate": 100, "ratedPremium": 15000 } ], "codeSplit": [ { "regulatoryCode": "E2", "codeSplitPercent": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR0000159", "agreementActivity": "AGR0000159-22-01", "agreementSection": "1", "agreementLimit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "coverageLimit": 500000, "limitAggregate": 100, "ratedPremium": 15000 } ], "codeSplit": [ { "regulatoryCode": "E2", "codeSplitPercent": 100, "gELR": 50 } ] } ], "productTemplateSectionToAdd": "Directors and Officers", "bindProbability": "100%", "bindTerritory": "USA", "obligor": "Test Obligor", "prebindSanctionCheckComplete": true }
 
application/json

Global Submission Status

Returns the per-step status (base / full / quote / bind) plus the attempt counters and last error messages for a submission. Updated by a background reconciler as the asynchronous steps complete.

get
https://trident-api.connecttrident.com/submission/global/{policyNo}/status

Path Parameters

policyNostringrequired

Policy number returned by POST /submission/global

Example:Q0038456

Response

application/json

Status row found

SubmissionStatus

Persisted per-step status for a global submission.

submissionIdstring(uuid)

Example:9b3f7c1c-1f0a-4e2d-9d7c-2e3a8b4c6d2e

policyNostring

Example:Q0038456

overallStatusstring

Allowed values:PENDINGRUNNINGBASE_OKFULL_OKQUOTE_OKSUCCESSFAILED

Example:BASE_OK

currentStepstring

Allowed values:BASEFULLQUOTEBINDDONE

Example:FULL

executionArnstring

Example:arn:aws:states:us-east-2:123456789012:execution:TridentGlobalSubmission:fresh-9b3f7c1c-...

policyKeystring

Example:20894

policyActivityKeystring

Example:45632

baseStatusstring

Allowed values:PENDINGSUCCESSFAILED

Example:SUCCESS

baseAttemptsinteger

Example:1

baseErrorstring | null
baseOutputJsonstring | null

Raw JSON output of the base step (audit)

fullStatusstring

Allowed values:PENDINGSUCCESSFAILED

Example:PENDING

fullAttemptsinteger

Example:0

fullErrorstring | null
fullOutputJsonstring | null
quoteStatusstring

Allowed values:PENDINGSUCCESSFAILED

Example:PENDING

quoteAttemptsinteger

Example:0

quoteErrorstring | null
quoteOutputJsonstring | null
bindStatusstring

Allowed values:PENDINGSUCCESSFAILED

Example:PENDING

bindAttemptsinteger

Example:0

bindErrorstring | null
bindOutputJsonstring | null
createdAtstring(date-time)

Example:2026-05-04T12:34:56.789

updatedAtstring(date-time)

Example:2026-05-04T12:35:01.123

get/submission/global/{policyNo}/status
 
application/json

CORS preflight for Upload Document

Handles CORS preflight requests for the file upload endpoint

options
https://trident-api.connecttrident.com/submission/global/uploadDocument

Response

200

CORS preflight successful

options/submission/global/uploadDocument
 
200

Upload Document

Uploads a document to the DMS for a specific policy. Supports file uploads to designated locations within the policy’s DMS folder structure.

put
https://trident-api.connecttrident.com/submission/global/uploadDocument

Query Parameters

policyIdstringrequired

Unique identifier of the policy

Example:20740

locationstring

Folder location within the DMS structure where the document should be uploaded. Spaces and special characters (%20 for space, %26 for &) are URL-encoded and will be decoded.

Example:Supporting Documents

policyReferencestring

Reference identifier for the policy (e.g., quote reference)

Example:F0022390

Body

multipart/form-data

File to be uploaded to the DMS

filestringrequired

File to be uploaded

Response

text/plain

Document uploaded successfully

string
put/submission/global/uploadDocument

Body

{ "file": "file" }
 
text/plain

By Field Names

Retrieves lookup data for multiple specified field names from XFI service in a single request

get
https://trident-api.connecttrident.com/lookup/byFieldNames

Query Parameters

fieldNamesarray[string]required

Comma-separated list of field names to lookup.

Supported field names:

  • lloydsindustrialsector - Lloyd’s Industrial Sector
  • mosaicoccupation - Mosaic Occupation
  • division - Division
  • majorperil - Major Peril
  • jurisdictioncountry - Jurisdiction Country
  • riskregulatoryloctn - Risk Regulatory Location
  • domicilestate - Domicile State
  • producingcompany - Producing Company
  • account - Account
  • producer - Producer
  • typeofbilling - Type of Billing
  • directassumed - Direct/Assumed
  • insured - Insured
  • obligor - Obligor
  • occupationsource - Occupation Source
  • commodity - Commodity
  • marketsource - Market Source
  • typeofprofitcentre - Type of Profit Centre
  • mop - Method of Placement (MOP)
  • typeofplacementbespoke - Type of Placement Bespoke
  • currency - Currency
  • territory - Territory
  • usclassification - US Classification
  • analyst - Analyst
  • typeofcyberclausestatus - Type of Cyber Clause Status
  • producinguw - Producing Underwriter
  • typeofpolicyoriginationsource - Type of Policy Origination Source
  • underwriter - Underwriter
  • office - Office
  • product - Product
  • insuredDomicileCountry - Insured Domicile County
  • insuredDomicileState - Insured Domicile State

Note: Field names are case-insensitive and spaces are ignored.

Allowed values:lloydsindustrialsectormosaicoccupationdivisionmajorperiljurisdictioncountryriskregulatoryloctndomicilestateproducingcompanyaccountproducertypeofbillingdirectassumedinsuredobligoroccupationsourcecommoditymarketsourcetypeofprofitcentremoptypeofplacementbespokecurrencyterritoryusclassificationanalysttypeofcyberclausestatusproducinguwtypeofpolicyoriginationsourceunderwriterofficeproductinsuredDomicileCountryinsuredDomicileState

Example:division,account

Response

application/json

Successfully retrieved data for all requested fields

object
get/lookup/byFieldNames
 
application/json