Trident APIs

Create a global submission (base + full + quote + bind)

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

Container carrying the four downstream submission bodies: cyberSubmissionRequest (base), fullCyberSubmissionRequest (full), quoteRequest (quote), and bindQuoteCyberRequest (bind). Each object is forwarded verbatim to its matching step — use the same JSON the standalone /submission/{base,full,quote,bind} endpoints accept.

GlobalSubmissionRequest

Container carrying the four downstream submission bodies, one per step of the TridentGlobalSubmission state machine. Each object is forwarded verbatim to its matching step — they are the same payloads the standalone /submission/{base,full,quote,bind} endpoints accept. policyKey / policyActivityKey are NOT supplied here; the base step mints them and the state machine propagates them to the full, quote and bind steps.

cyberSubmissionRequestobjectrequired

Base submission body — forwarded to POST /submission/base.

Show Child Parameters
fullCyberSubmissionRequestobjectrequired

Full submission body — forwarded to POST /submission/full.

Show Child Parameters
quoteRequestobjectrequired

Quote body — forwarded to POST /submission/quote.

Show Child Parameters
bindQuoteCyberRequestobjectrequired

Bind body — forwarded to POST /submission/bind.

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

{ "cyberSubmissionRequest": { "insured": { "insureContacts": { "id": "2089372" } }, "producer": { "id": "3019971" }, "policy": { "effectiveDate": "2025-01-15", "expiryDate": "2026-01-14", "currency": { "id": "9" }, "product": { "description": "Cyber" }, "territory": { "id": "17" } }, "majorPeril": { "id": "11" }, "directAssumed": { "id": "1" }, "typeOfBilling": { "id": "1" }, "division": { "id": "2" }, "office": { "description": "Head Office M&A" }, "mop": { "id": "3" }, "typeOfPlacementBespoke": { "id": "1" }, "writtenLine": 100 }, "fullCyberSubmissionRequest": { "underWriterDetails": { "description": "Lopez, Daisy" }, "uSClassification": { "id": "6" }, "policyOriginationSource": { "id": "2" }, "riskRegulatoryLoctn": { "id": "17" }, "insuredDomicileCountry": { "description": "Australia" }, "insuredDomicileState": { "description": "New South Wales" }, "lloydsIndustrialSector": { "id": "5" }, "mosaicOccupation": { "id": "815" }, "sBFClass": { "id": "6" }, "isThirdPartyCapacityDeployed": { "id": "2" }, "ourRole": { "id": "1" }, "claimsAgreementParty": { "id": "2" }, "stampUnderwriter": { "description": "Lopez, Daisy" }, "producingUnderwriter": { "description": "Lopez, Daisy" }, "possibleClashIdentified": { "code": "NO" }, "mop": { "id": "3" }, "typeOfPlacementBespoke": { "id": "1" }, "signedLine": 100, "insuredRevenueTurnover": 0, "periodTBA": "NO", "umr": "B1234567890", "submissionSanctionCheckComplete": "YES", "majorPeril": { "id": "11" }, "rev.-Turnover": 10 }, "quoteRequest": { "sections": [ { "agreement": { "gELR": 50, "agreement": "AGR1000255", "agreementActivity": "AGR1000255-25-01", "agreementSection": "1", "100%Limit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "100%Limit": 500000, "limitAggregate": 100, "ratedPremium(100%)": 15000 }, { "premium": 15000, "limitOccurrence": 100, "100%Limit": 500000, "limitAggregate": 100, "ratedPremium(100%)": 15000 } ], "deduction": [ { "deduction": "BK", "deductionRate": 20 } ], "codeSplit": [ { "regulatoryCode": "1E", "codeSplitPc": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR1000255", "agreementActivity": "AGR1000255-25-01", "agreementSection": "1", "100%Limit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "100%Limit": 500000, "limitAggregate": 100, "ratedPremium(100%)": 15000 } ], "codeSplit": [ { "regulatoryCode": "1E", "codeSplitPc": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR1000255", "agreementActivity": "AGR1000255-25-01", "agreementSection": "1", "100%Limit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "100%Limit": 500000, "limitAggregate": 100, "ratedPremium(100%)": 15000 } ], "codeSplit": [ { "regulatoryCode": "1E", "codeSplitPc": 100, "gELR": 50 } ] }, { "agreement": { "gELR": 50, "agreement": "AGR1000255", "agreementActivity": "AGR1000255-25-01", "agreementSection": "1", "100%Limit": 1000, "solvencyIIClass": "ZX", "aggregateLimit": 1000 }, "coverage": [ { "premium": 15000, "limitOccurrence": 100, "100%Limit": 500000, "limitAggregate": 100, "ratedPremium(100%)": 15000 } ], "codeSplit": [ { "regulatoryCode": "1E", "codeSplitPc": 100, "gELR": 50 } ] } ], "productTemplateSectionToAdd": "Directors and Officers", "bindProbability": "100%", "majorPeril": "Cyber Property", "uMR": "" }, "bindQuoteCyberRequest": { "prebindSanctionCheckComplete": true, "territory": "USA", "majorPeril": "Cyber Property", "mosaicOccupation": "198", "obligor": "Test Obligor" } }
 
application/json

Get 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.789Z

updatedAtstring(date-time)

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

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

Retry a failed global submission

Starts a new state machine execution that resumes from the failed step (current_step on the status row). The original {base, full, quote, bind} payload is read back from the failed execution’s input via DescribeExecution; policyKey / policyActivityKey produced by the successful base step are taken from the status row.

Only allowed when overall_status = FAILED.

post
https://trident-api.connecttrident.com/submission/global/{policyNo}/retry

Path Parameters

policyNostringrequired

Policy number of the failed submission

Example:Q0038456

Response

application/json

Retry accepted; new execution started.

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/{policyNo}/retry
 
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