Skip to main content
POST
Upload a compliance document
Uploads a PDF into one of the four compliance slots for one of your entities, and queues it for data extraction. Send it as multipart/form-data with the file in the file part.

A category is a slot, not a folder

An entity holds one errors-and-omissions document, one cyber, one W9, one crime-and-fidelity. Uploading into a slot the entity already fills adds a version to that document and returns the same fileDocumentId — which is what a renewal should do. If your client expects a new id per upload, this is the one thing to change. Read fileDocumentId from the response rather than assuming it is new.

Limits

PDF only

Anything else is rejected with 400 before the body is buffered.

10 MB maximum

A larger file returns 413.

Visibility

A document uploaded here is visible to you and not to your carriers. The agency application’s “share with all markets” switch is deliberately not exposed: it fans ownership out to every carrier from a single flag, and this API has no way to undo that.

Extraction

Turris reads the policy details out of the PDF after upload. That runs asynchronously, so the fields it populates are not on the response to this request — poll List Documents or check the compliance status shortly afterwards. Send an Idempotency-Key header. See Idempotency.

Headers

idempotency-key
string

UUID to ensure idempotent request processing

Example:

"550e8400-e29b-41d4-a716-446655440000"

x-idempotency-key
string

Alternative UUID header for idempotent request processing

Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

multipart/form-data
category
enum<string>
required

Which compliance slot this document fills.

Available options:
E&O,
Cyber,
Crime & Fidelity,
W9
Example:

"E&O"

file
file
required

The PDF to upload. 10 MB maximum.

downstreamEntityId
string

Which of your entities holds this document. Defaults to your own organization. Compliance is tracked per legal entity, so a branch policy must name the branch.

Example:

"6610b3d2c2e0a51b8c0d1f02"

Response

The document, with its versions

data
object
required
requestId
string
required

Unique request identifier

Example:

"dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8"

timestamp
string
required

Response timestamp

Example:

"2025-11-12T20:49:03.293Z"