Set the policy document
curl --request PUT \
--url https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d2"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({fileDocumentId: '6650a1b2c3d4e5f6a7b8c9d2'})
};
fetch('https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document"
payload = { "fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d2" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"data": {
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"policyNumber": "POL-2025-001",
"stateCode": "CA",
"policyTransactionType": "bind",
"status": "in progress",
"actionRequired": true,
"updatedAt": "2025-06-15T12:00:00.000Z",
"namedInsured": "Example Corp",
"carrier": "Lloyds of London",
"carrierNaicCode": "12345",
"grossPremium": 5000,
"escalations": [
{
"checklistItemLabel": "<string>",
"status": "waiting customer input",
"messages": [
{
"authorLabel": "Turris",
"body": "<string>",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"openedAt": "<string>",
"resolvedAt": "<string>"
}
],
"completionArtifacts": [
{
"type": "accepted stamped",
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "stamped-filing.pdf",
"uploadedAt": "2025-06-15T09:00:00.000Z",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"checklist": [
{
"sourceCategoryId": "6650a1b2c3d4e5f6a7b8c9d0",
"name": "Documents we need from you",
"tone": "primary",
"order": 0,
"items": [
{
"sourceCategoryId": "6650a1b2c3d4e5f6a7b8c9d0",
"sourceTaskId": "6650a1b2c3d4e5f6a7b8c9d1",
"label": "Signed diligent search affidavit",
"required": true,
"order": 0,
"checked": false,
"referenceFields": [
{
"label": "Policy limit",
"value": "<string>"
}
],
"templateFiles": [
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"fileName": "diligent-search-form.pdf",
"mimeType": "application/pdf",
"fileSize": 248310,
"description": "<string>",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"attachments": [
{
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "signed-form.pdf",
"uploadedByType": "customer",
"uploadedAt": "2026-06-01T12:00:00.000Z",
"authorLabel": "Turris",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"checkedAt": "2026-06-01T12:00:00.000Z",
"escalation": {
"checklistItemLabel": "<string>",
"status": "waiting customer input",
"messages": [
{
"authorLabel": "Turris",
"body": "<string>",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"openedAt": "<string>",
"resolvedAt": "<string>"
}
}
]
}
],
"checklistProgress": {
"checked": 3,
"total": 5
},
"externalReference": "EXT-REF-12345",
"effectiveDate": "2025-01-01T00:00:00.000Z",
"totalTaxDue": 123,
"policyDocument": {
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "policy-12345.pdf",
"uploadedByType": "customer",
"uploadedAt": "2025-06-15T09:00:00.000Z",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Surplus Lines Filings
Set the Policy Document
Set or replace the policy document on a filing from an uploaded file
PUT
/
v2
/
upstream
/
surplus-lines-filings
/
{filingId}
/
policy-document
Set the policy document
curl --request PUT \
--url https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d2"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({fileDocumentId: '6650a1b2c3d4e5f6a7b8c9d2'})
};
fetch('https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v2/upstream/surplus-lines-filings/{filingId}/policy-document"
payload = { "fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d2" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"data": {
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"policyNumber": "POL-2025-001",
"stateCode": "CA",
"policyTransactionType": "bind",
"status": "in progress",
"actionRequired": true,
"updatedAt": "2025-06-15T12:00:00.000Z",
"namedInsured": "Example Corp",
"carrier": "Lloyds of London",
"carrierNaicCode": "12345",
"grossPremium": 5000,
"escalations": [
{
"checklistItemLabel": "<string>",
"status": "waiting customer input",
"messages": [
{
"authorLabel": "Turris",
"body": "<string>",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"openedAt": "<string>",
"resolvedAt": "<string>"
}
],
"completionArtifacts": [
{
"type": "accepted stamped",
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "stamped-filing.pdf",
"uploadedAt": "2025-06-15T09:00:00.000Z",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"checklist": [
{
"sourceCategoryId": "6650a1b2c3d4e5f6a7b8c9d0",
"name": "Documents we need from you",
"tone": "primary",
"order": 0,
"items": [
{
"sourceCategoryId": "6650a1b2c3d4e5f6a7b8c9d0",
"sourceTaskId": "6650a1b2c3d4e5f6a7b8c9d1",
"label": "Signed diligent search affidavit",
"required": true,
"order": 0,
"checked": false,
"referenceFields": [
{
"label": "Policy limit",
"value": "<string>"
}
],
"templateFiles": [
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"fileName": "diligent-search-form.pdf",
"mimeType": "application/pdf",
"fileSize": 248310,
"description": "<string>",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"attachments": [
{
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "signed-form.pdf",
"uploadedByType": "customer",
"uploadedAt": "2026-06-01T12:00:00.000Z",
"authorLabel": "Turris",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
],
"checkedAt": "2026-06-01T12:00:00.000Z",
"escalation": {
"checklistItemLabel": "<string>",
"status": "waiting customer input",
"messages": [
{
"authorLabel": "Turris",
"body": "<string>",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"openedAt": "<string>",
"resolvedAt": "<string>"
}
}
]
}
],
"checklistProgress": {
"checked": 3,
"total": 5
},
"externalReference": "EXT-REF-12345",
"effectiveDate": "2025-01-01T00:00:00.000Z",
"totalTaxDue": 123,
"policyDocument": {
"fileDocumentId": "6650a1b2c3d4e5f6a7b8c9d1",
"fileName": "policy-12345.pdf",
"uploadedByType": "customer",
"uploadedAt": "2025-06-15T09:00:00.000Z",
"downloadUrl": "<string>",
"viewUrl": "<string>"
}
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Sets the policy document for a filing belonging to the authenticated upstream entity to a Surplus Lines file you already uploaded, identified by
fileDocumentId. Returns the filing with the policy document in place. It replaces Upload the Policy Document, which is deprecated.
Send a JSON body with one field: fileDocumentId.
The flow
- Upload the file with Upload a Document, using the category Surplus Lines. The file can be a PDF, DOC, DOCX, JPEG or PNG, up to 10 MB.
- Read the
_idof the document the upload returns. That is thefileDocumentId. - Call this endpoint with the filing’s id and that
fileDocumentId.
Replacing a policy document
Setting the policy document again replaces the existing one. The previous file is soft-deleted at the moment the new one is set, and a filing never holds two policy documents. Retrying the same request with the samefileDocumentId is safe.
Which files are accepted
The file must be a Surplus Lines upload of your own that is not on any filing yet. Anything else returns 404, the same response as an unrecognized id, so a caller cannot tell “does not exist” from “not yours to use”. That covers a file that is already on a filing, a file in another category, a file another organization uploaded, and a file that has been deleted. This endpoint supports idempotency. If you include anidempotency-key header, duplicate requests within 1 hour return the original response without reprocessing. See Idempotency.
Error Scenarios
Bad Request (400)
Returned whenfilingId or fileDocumentId is not a valid MongoDB ObjectId.
Filing or File Not Found (404)
Returned whenfilingId does not exist or belongs to a different upstream entity, or the file is not an unattached Surplus Lines upload of yours.
Unauthorized (401)
Missing or invalid authentication token. See Authentication.Authorizations
bearerrestricted-access-token
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
UUID to ensure idempotent request processing
Example:
"550e8400-e29b-41d4-a716-446655440000"
Alternative UUID header for idempotent request processing
Example:
"550e8400-e29b-41d4-a716-446655440000"
Path Parameters
Unique identifier of the surplus-lines filing
Example:
"6650a1b2c3d4e5f6a7b8c9d0"
Body
application/json
The fileDocumentId the upload returned for a Surplus Lines file that is not yet on any filing
Example:
"6650a1b2c3d4e5f6a7b8c9d2"
Was this page helpful?