Sixfold API (2024-05)

Download OpenAPI specification:

Introduction

Release Notes

Version: 2024-05

  • Enhances the case creation endpoint to accept documents to attach to the new case

  • Add a new endpoint to attach one or more documents to an existing case

  • Defines a new schema for cases and related entities

  • Add Life API support for creating cases

Version: 2023-12

For more detailed documentation of this version, refer to our legacy API docs site.

Overview

Greetings from Sixfold! We're excited to provide you with documentation for our API that allows you to seamlessly interact with our generative AI solution for insurance underwriters.

Key Features

Getting Started

To get started with the Sixfold API, use the guides, code examples, and reference documentation on this page.

We will coordinate with you to complete the following set-up steps:

  • Base URL: Receive a base URL specific to your environment
  • API Key: Receive an API key
  • Webhook URL: Share a URL where we can send important events about a case (optional)

Read more about these steps below.

Base URL

We will provide a base URL for your dedicated environment. This URL will be unique to your tenancy.

API Key

We will generate and share an API key for your environment via secure send.

For more details on how to use your API key, refer to the Authorization section below.

Webhooks

If you provide us with a webhook URL, we can send you events about your cases in real time. This is an optional step, but it can be helpful if you need to know quickly when a case changes state.

For more details on how to use webhooks, refer to the Webhooks section below.

Integrations

To configure an integration with a third-party (such as an external file management service such as FileNet), please refer to this section for additional information.

We currently support integrations with the following services:

Security

Transport Layer Security

We require all API calls to be made over secure connections using HTTPS. We require a minimum of TLS 1.2.

Authorization

You MUST include the Sixfold API key you were issued in a custom header for each API request.

Example: SIXFOLD-API-KEY: <your key>

Field Types

Type Description Example
IDS Object identifiers are unique opaque strings. Clients should not attach any specific semantic meaning to the format of our IDs. For example, our object IDs are UUIDs today, but clients should not count on that behavior, because we may stop using UUIDs at any time. c4fb4c10-5b2e-4220-90d2-96d94337e8e6
STRINGS Strings are encoded using UTF-8. They do not have character limits. Diamond West Construction
DATES All dates are represented in ISO 8601 format YYYY-MM-DD. 2024-01-10
TIMESTAMPS All object responses will include a createdAt and updatedAt in timestamp format. All timestamps are UTC and represented in ISO 8601 format YYYY-MM-DDThh:mm:ssZ. 2024-01-10T16:00:30Z
BOOLEANS Boolean values are represented as true or false. true
NULL All optional fields are set to null unless a default value is set. null

Status Codes & Errors

Status Codes

Code Description
200 OK. Indicates the request was successful.
201 Created. Indicates that the request was successful and has led to the creation of a resource.

Error Codes

Code Description
400 Bad Request. Occurs when your request is malformed in some way that does not match a more specific 4xx code.
401 Unauthorized. Occurs when your request omitted an API key or specified an invalid key.
404 Not Found. Occurs when you requested a resource which doesn’t exist. This could signify an incorrect API endpoint URL or an incorrect object ID.
413 Content Too Large. Occurs when the size of the request entity exceeds the limit defined in the request limits section below.
422 Unprocessable Entity. Occurs when the request is syntactically correct but semantically invalid (e.g., validation errors) or cannot be processed.
429 Too Many Requests. Occurs when exceeding the request rate limit defined in the request limits section below.
500 Internal Server Error. Occurs when Sixfold encounters an error serving the request. This is usually a temporary occurrence, so your best bet is to retry again after a short time.
503 Service Unavailable. Typically occurs when the API is down for maintenance.

Document Errors

When creating a case or attaching documents to a case, each document must be uploaded as a separate file.

Partial Success

When uploading multiple documents, the API supports partial success: some documents may be accepted while others are rejected in the same request.

Scenario HTTP Status Response
All documents valid 201 data array with all uploaded documents
Some documents valid, some invalid 201 data array with valid documents, errors array with rejected documents
All documents invalid 422 errors array only

Important: Clients should always check for the presence of an errors array even when receiving a 2xx response. A successful status code indicates at least one document was processed, but some documents may have been rejected.

Example: Partial Success Response

{
  "data": [
    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "type": "commercialDocuments",
      "attributes": {
        "filename": "policy.pdf",
        "contentType": "application/pdf",
        "byteSize": 102400,
        "createdAt": "2024-05-01T12:00:00Z",
        "updatedAt": "2024-05-01T12:00:00Z"
      }
    }
  ],
  "errors": [
    {
      "title": "Invalid document",
      "detail": "data.csv failed: Content type is not supported. Check the list of supported content types",
      "code": "invalid-document",
      "source": {
        "document": "data.csv"
      },
      "status": 422
    }
  ]
}

Common Rejection Reasons

Documents may be rejected for the following reasons:

  • Unsupported content type: The file type is not in the list of accepted content types (see Document Types below). For example, CSV files (text/csv) are not supported.
  • Encrypted files: Password-protected or encrypted Microsoft Office files cannot be processed.

Versioning

Our API uses URI date-based versioning.

Example: POST /api/2023-12/cases

We will always issue a new version of our API if we need to make changes that would break existing clients. Some examples of breaking changes include:

  • Removing functionality

  • Renaming parameters

  • Changing endpoint requirements

We may include backward-compatible changes in the current version of our API. These changes are designed to improve the API without breaking existing clients. Examples include:

  • Adding new API endpoints

  • Adding new optional request parameters to existing API methods

  • Adding new fields to existing API responses

Limits

This section describes how limits are applied in the Sixfold API.

Document Types

There are restrictions on what types of documents can be uploaded.

Commercial

The following content types are accepted for commercial cases:

Content Type Extension
application/pdf .pdf
application/json .json
image/jpeg .jpeg, .jpg
image/tiff .tiff, .tif
image/png .png
text/plain .txt
text/markdown .md
text/html .html
application/msword .doc
application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
application/vnd.ms-powerpoint .ppt
application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
application/vnd.ms-excel .xls
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
application/rtf .rtf
image/bmp .bmp
image/gif .gif
message/rfc822 .eml
application/vnd.ms-outlook .msg
application/mbox .mbox

Life

The following content types are accepted for life cases:

Content Type Extension
application/pdf .pdf
application/json .json
image/jpeg .jpeg, .jpg
image/tiff .tiff, .tif
image/png .png
text/plain .txt
text/html .html
application/xhtml+xml .xml

Request Rate

You may not send more than 300 requests per minute. If you exceed this limit, the server will respond with 429 - Too Many Requests and block further requests for a short time.

Request Size

No request body may be larger than 50 megabytes. If you exceed this limit, the server will respond with 413 - Content Too Large.

Actions

Retrieve AI-recommended actions (e.g. referrals) for commercial insurance cases

Get recommended actions for a commercial case

This endpoint requires the Referral Agent feature. If not enabled, it still responds successfully but returns referralAgentEnabled: false and actions: []. Please reach out to your account team if this feature is not enabled for your tenant.

Returns recommended actions for a commercial case, along with referral evaluation metadata.

The actions array is populated only when the Referral Agent feature is enabled and evaluation has determined that a referral is recommended. Use the caseStatus field to determine whether evaluation has completed:

  • PENDING — evaluation has not yet completed; poll again after receiving a cases/updated webhook with recommendedActions: "Referral".
  • EVALUATED — evaluation is complete; check the actions array for recommendations.
  • ERROR — the evaluation encountered an error.

When referralAgentEnabled is false, the actions array will always be empty even if caseStatus is EVALUATED.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string <uuid>
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

The UUID of the commercial case.

query Parameters
action_type
string
Value: "REFERRAL"
Example: action_type=REFERRAL

Filter actions by type. Currently only REFERRAL is supported.

status
string
Value: "RECOMMENDED"
Example: status=RECOMMENDED

Filter actions by status. Currently only RECOMMENDED is supported.

Responses

Response samples

Content type
application/json
Example
{
  • "data": {
    }
}

Cases

Create, retrieve, and manage commercial insurance cases

Create a commercial case

If the request omits name or insured information, the endpoint automatically extracts the missing company information from uploaded documents.

Note: Document upload is required when relying on automatic field extraction.

Supported document content types: application/pdf, application/json, image/jpeg, image/tiff, image/png, text/plain, text/html, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/rtf, image/bmp, image/gif, message/rfc822, application/vnd.ms-outlook, application/mbox, .msg

Authorizations:
ApiKeyAuth
Request Body schema:
required
required
object

Responses

Request samples

Content type
{
  • "case": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "warnings": [
    ]
}

Get all commercial cases

Authorizations:
ApiKeyAuth
query Parameters
external_id
string
Example: external_id=bda31907-49ad-4cf2-b76f-7738f359ae5e

Filter cases by unique external id

insurance_line_id
string <uuid>
Example: insurance_line_id=1cfd8bdf-5a20-4dfb-aca0-729df7795e14

Filter cases by insurance line ID

created_at[gte]
string <date>
Example: created_at[gte]=2025-01-01

Filter cases where created_at is greater than or equal to this date (inclusive, start of day).

created_at[lte]
string <date>
Example: created_at[lte]=2025-01-31

Filter cases where created_at is less than or equal to this date (inclusive, end of day).

updated_at[gte]
string <date>
Example: updated_at[gte]=2025-01-01

Filter cases where updated_at is greater than or equal to this date (inclusive, start of day).

updated_at[lte]
string <date>
Example: updated_at[lte]=2025-01-31

Filter cases where updated_at is less than or equal to this date (inclusive, end of day).

sort_by
string
Enum: "id" "external_id" "created_at" "updated_at"
Example: sort_by=updated_at

Sort results by id, external_id, created_at, or updated_at.

sort_dir
string
Enum: "asc" "desc"
Example: sort_dir=desc

Sort direction (asc for oldest first, desc for newest first). Defaults to desc when sort_by is provided.

page
integer >= 1
Default: 1
Example: page=1

Page number for pagination (must be >= 1)

page_size
integer [ 1 .. 100 ]
Default: 100
Example: page_size=100

Number of items per page (1-100, default 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get a commercial case

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
query Parameters
lineOfBusinessId
string
Example: lineOfBusinessId=b5f0a313-66f9-47dd-9dc0-808ff971cc64

The uuid for a line of business for loss run analysis

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a commercial case

Permanently deletes a commercial case and all associated data (documents, facts, workflows). This action is irreversible.

Requires the case:delete permission on the API key. This permission is not granted by default and must be explicitly requested. Existing API keys will not have this permission retroactively added.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Export a commercial case as PDF

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Export case narrative as Word document

Export the underwriting narrative for a commercial case as a Microsoft Word document (.docx).

The narrative contains AI-generated sections summarizing key aspects of the case analysis, including risk assessment, business classification, and underwriting recommendations.

Note: This endpoint will return a 409 Conflict error if the case is still being processed. Wait for the case analysis to complete before requesting the narrative export.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string <uuid>
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

The unique identifier of the commercial case

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Documents

Add documents to commercial insurance cases for analysis

List documents for a commercial case

Returns a paginated list of all documents attached to the case.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
query Parameters
page
integer >= 1
Default: 1

The page number to fetch

page_size
integer [ 1 .. 100 ]
Default: 20

Number of items per page

Responses

Response samples

Content type
application/json
{}

Add documents to a commercial case

Upload one or more documents to an existing commercial case.

Supported content types: application/pdf, application/json, image/jpeg, image/tiff, image/png, text/plain, text/html, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/rtf, image/bmp, image/gif, message/rfc822, application/vnd.ms-outlook, application/mbox

Files with unsupported content types (e.g., ZIP archives) will be rejected. When some files in a batch are rejected, the response includes both a data array (accepted documents) and an errors array (rejected documents with supported types listed).

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
Request Body schema: multipart/form-data
required
documents
required
Array of strings <binary> [ items <binary > ]

Array of documents to be uploaded.

Responses

Response samples

Content type
application/json
Example
{
  • "data": [
    ]
}

Get a single document for a commercial case

Retrieves document metadata and a downloadUrl for the document binary. To download the file, make a GET request to the downloadUrl with your Sixfold-Api-Key header.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
document_id
required
string <uuid>
Example: 0544e627-5c81-49da-99bc-a2822ead6b99

The unique identifier of the document

Responses

Response samples

Content type
application/json
{}

Delete a document from a commercial case

Removes the document record and deletes the associated file from storage. This action is irreversible.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
document_id
required
string <uuid>
Example: 0544e627-5c81-49da-99bc-a2822ead6b99

The unique identifier of the document

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Quotes

Retrieve AI-generated insurance quotes based on case analysis

Set or update case quote status

Creates or updates the quote status for a commercial case. Use the status parameter (recommended) with one of quoted, not_quoted, bound, not_taken_up, or declined. Send status: null to clear the quote status.

The quoted boolean is deprecated; use status instead. Requests that send only quoted will succeed but return Deprecation: true and X-Deprecation-Warning response headers.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
Request Body schema: application/json
required
required
object or object

Quote status payload. Provide status (recommended) or the deprecated quoted boolean. Send status: null to clear. At least one of status or quoted must be provided unless clearing with null.

Responses

Request samples

Content type
application/json
Example
{
  • "case_quote": {
    }
}

Response samples

Content type
application/json
{ }

Remove quote status from a commercial case

Deletes the quote record for the case. Returns 204 even if the case had no quote. Requires case delete permission.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{ }

Cases

Create, retrieve, and manage life insurance cases

Create a life case

Create a new life case with insured person details and optional documents.

Supported document content types: application/pdf, application/json, application/xhtml+xml, image/jpeg, image/tiff, image/png, text/html, text/plain

Authorizations:
ApiKeyAuth
Request Body schema:
required
required
object

Responses

Request samples

Content type
{
  • "case": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get all life cases

Authorizations:
ApiKeyAuth
query Parameters
external_id
string
Example: external_id=bda31907-49ad-4cf2-b76f-7738f359ae5e

Filter cases by unique external id

created_at[gte]
string <date>
Example: created_at[gte]=2025-01-01

Filter cases where created_at is greater than or equal to this date (inclusive, start of day).

created_at[lte]
string <date>
Example: created_at[lte]=2025-01-31

Filter cases where created_at is less than or equal to this date (inclusive, end of day).

updated_at[gte]
string <date>
Example: updated_at[gte]=2025-01-01

Filter cases where updated_at is greater than or equal to this date (inclusive, start of day).

updated_at[lte]
string <date>
Example: updated_at[lte]=2025-01-31

Filter cases where updated_at is less than or equal to this date (inclusive, end of day).

sort_by
string
Enum: "id" "external_id" "created_at" "updated_at"
Example: sort_by=updated_at

Sort results by id, external_id, created_at, or updated_at.

sort_dir
string
Enum: "asc" "desc"
Example: sort_dir=desc

Sort direction (asc for oldest first, desc for newest first). Defaults to desc when sort_by is provided.

page
integer >= 1
Default: 1
Example: page=1

Page number for pagination (must be >= 1)

page_size
integer [ 1 .. 100 ]
Default: 100
Example: page_size=100

Number of items per page (1-100, default 100)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get a life case

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a life case

Permanently deletes a life case and all associated data (documents, facts, workflows). This action is irreversible.

Requires the case:delete permission on the API key. This permission is not granted by default and must be explicitly requested. Existing API keys will not have this permission retroactively added.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Export a life case as PDF

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Responses

Response samples

Content type
application/json
{
  • "status": "processing",
  • "message": "PDF is being generated. Retry after the specified interval."
}

Documents

Add documents to life insurance cases for analysis

Add documents to a life case

Add documents to a life case by providing an array of documents to be uploaded. When submitting via multipart/form-data, use indexed notation (documents[0][file], documents[0][category], etc.).

Supported content types: application/pdf, application/json, application/xhtml+xml, image/jpeg, image/tiff, image/png, text/html, text/plain

Files with unsupported content types will be rejected. When some files in a batch are rejected, the response includes both a data array (accepted documents) and an errors array (rejected documents with supported types listed).

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
Request Body schema: multipart/form-data
required
required
Array of objects (DocumentUpload)

Array of documents to be uploaded. When submitting via multipart/form-data, use indexed notation (documents[0][file], documents[0][category], etc.).

documents[]
Array of strings <binary> [ items <binary > ]
Deprecated

Responses

Request samples

Content type
multipart/form-data
{
  "documents[0][file]": "@path/to/file1.pdf",
  "documents[0][category]": "Medical Record",
  "documents[1][file]": "@path/to/file2.pdf",
  "documents[1][category]": "Application"
}

Response samples

Content type
application/json
Example
{
  • "data": [
    ]
}

Facts

Retrieve facts extracted from case documents

Get all facts for a case

Retrieves all facts for a case with pagination. Facts include medications, diagnoses, procedures, clinical data, family history, and lifestyle information. Conditions are accessed via the /conditions endpoints.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
query Parameters
page
integer >= 1
Default: 1

The page number to fetch

page_size
integer [ 1 .. 100 ]
Default: 20

Number of items per page

Responses

Response samples

Content type
application/json
{}

Get a single fact for a life case

Retrieves a single fact by its unique identifier

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
fact_id
required
string <uuid>
Example: f8e3c4a0-5b2e-4220-90d2-96d94337e8e6

The unique identifier of the fact

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Conditions

Retrieve medical conditions and their supporting evidence

Get all conditions for a life case

Retrieves all conditions for a case with pagination. Each condition includes an array of related facts that support or provide evidence for the condition.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
query Parameters
page
integer >= 1
Default: 1

The page number to fetch

page_size
integer [ 1 .. 100 ]
Default: 20

Number of items per page

Responses

Response samples

Content type
application/json
{}

Get a single condition for a life case

Retrieves a single condition by its unique identifier, including an array of related facts that support or provide evidence for the condition.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
condition_id
required
string <uuid>
Example: a3b7d1e0-6c4f-4330-81e3-a8e05448f9f7

The unique identifier of the condition

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get facts related to a condition

Retrieves a paginated list of facts that provide supporting evidence for the condition (medications, diagnoses, procedures, clinical data, etc.). Note that relatedConditions is not included in the response for this endpoint since the relationship to the condition is already implied.

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6
condition_id
required
string <uuid>
Example: a3b7d1e0-6c4f-4330-81e3-a8e05448f9f7

The unique identifier of the condition

query Parameters
page
integer >= 1
Default: 1

The page number to fetch

page_size
integer [ 1 .. 100 ]
Default: 20

Number of items per page

Responses

Response samples

Content type
application/json
{}

Integrations

Manage integration metadata for external systems

Add metadata to an integration of a life case

Add to an integration by providing metadata to the integration spec

Authorizations:
ApiKeyAuth
path Parameters
case_id
required
string
Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6

Unique identifier for the case

integration_id
required
string
Example: 78ea09d0-55f7-407a-9fc9-d625cfd84085

Unique identifier for the integration (provided by Sixfold)

Request Body schema: application/json-patch+json
required
Array
Any of
op
required
string
Value: "add"

The operation to be done for adding the FileNet file, the value must be "add"

path
required
string
Value: "/files/-"

The path for adding the FileNet file, the value must be "/files/-"

required
object (CreateFileNetIntegrationMetadataRequest)

Object containing the id of the file on FileNet to be retrieved

Responses

Request samples

Content type
application/json-patch+json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "data": [
    ]
}

2024-05 Webhooks

Webhooks allow us to send important events about a case to you in real-time.

Requirements

  • Your webhook resource MUST accept requests with content type application/json

  • Your webhook resource MUST return a response with a 200 status to indicate that the request was processed successfully

Custom Headers

You can optionally specify custom headers for us to send in webhook requests. This is useful when, for example, your webhook resource requires us to provide an authentication token in a header. Custom headers are defined at the webhook level and are included in all requests sent to the webhook callback URL. Please reach out to your Sixfold representative to set up custom headers for your webhook.

Webhook Topics

A webhook's topic indicates the type of event that triggered the webhook. The topic is included in the request body sent to your webhook URL.

Supported webhook topics include:

| Topic | Description |

| --- | --- |

| cases/created | a case was successfully created |

| cases/updated | a case was successfully updated |

| cases/finished | a case has completed the analysis |

| cases/errored | a case encountered an error during analysis, or a case could not be created because required fields could not be extracted from submitted documents (Easy Case Creation) |

| integrations/finished | an integration has finished its operation |

| integrations/errored | an integration encountered an error during its operation |

Referral Actions

The recommendedActions field and the Actions API require the Referral Agent feature. When not enabled, recommendedActions will be null and the Actions API will return referralAgentEnabled: false and actions: []. Please reach out to your account team if this feature is not enabled for your tenant.

When the Referral Agent evaluates a case and determines that a referral is recommended, the case is updated with the referral recommendation. This triggers a cases/updated webhook (and cases/finished if the referral completes after case analysis).

The webhook payload will include recommendedActions: "Referral" in the case attributes. When you receive this value, call GET /api/2026-01/commercial/cases/{case_id}/actions to retrieve the full referral details including rationales, citations, and a pre-generated email template.

Examples

Commercial Example Request

Below is an example of a webhook request sent when a commercial case is updated:

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/updated",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "commercialCases",
          "attributes": {
            "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
            "name": "Diamond West Construction Case",
            "insuranceLine": {
              "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
              "name": "General Liability"
            },
            "insuredCompany": {
              "name": "Diamond West Construction",
              "businessActivity": "Construction",
              "summary": "A general building contractor that offers home remodeling and design-build services.",
              "webPresence": {
                "urls": [
                  "https://diamondwestdevelopment.com/about-us/",
                  "https://diamondwestdevelopment.com/",
                  "http://diamondwestconstruction.mobi/",
                  "https://diamondwestdevelopment.com/gallery/",
                  "https://diamondwestdevelopment.com/services/"
                ]
              },
              "businessClassification": [
                  {
                    "system": "naics",
                    "code": "236118",
                    "title": "Commercial and Institutional Building Construction",
                    "explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
                    "confidence": 0.79
                  }
                ],
              "address": {
                "street": "6676 Van Buren Boulevard",
                "city": "Riverside",
                "state": "CA",
                "postalCode": "92503",
                "country": "US"
              }
            },
            "analysis": {
              "status": "done",
              "riskEvaluation": {
                "score": 4,
                "summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
                "sectionScores": [
                  {
                    "sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "sectionName": "Cybersecurity",
                    "score": 4,
                    "signalCount": 3
                  }
                ]
              },
              "riskSignalDetections": [
                {
                  "type": "KeywordSignal",
                  "keyword": "Construction",
                  "explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects. Additionally, Diamond West Development provides diversified construction services such as concrete work, block walls, pools, and outdoor kitchens. This indicates that the business likely engages in construction activities.",
                  "impact": "positive"
                },
                {
                  "type": "KeywordSignal",
                  "keyword": "Remodeling",
                  "explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling. It highlights customer testimonials praising their work on remodeling projects and mentions their services in home remodeling, room additions, and custom homes. This indicates that the business likely engages in remodeling activities.",
                  "impact": "negative"
                }
              ],
              "facts": [
                {
                  "type": "questionAnswer",
                  "question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
                  "answer": "Is PCI Compliance Applicable to Mondelez International Inc.?\\nMondelez International Inc. is a multinational confectionery, food, and beverage company that manufactures and markets food products and beverages. The company operates in approximately 160 countries and has an annual revenue of about $26.5 billion.\\n\\nThe Payment Card Industry Data Security Standard (PCI DSS) is a set of security standards that ensure companies that accept, process, store, or transmit credit card information maintain a secure environment. PCI DSS is administered and managed by the PCI Security Standards Council (PCI SSC), an independent body created by major payment card brands such as Visa, MasterCard, and American Express. \\n\\nPCI DSS applies to any organization, regardless of size or the number of transactions, that accepts, transmits, or stores cardholder data. This includes companies that process credit card information and merchants that accept payment cards as payment for goods and services. \\n\\nGiven that Mondelez International Inc. operates on a global scale and deals with financial transactions, it would need to comply with PCI DSS. \\n\\n## Is Mondelez International Inc. PCI Compliant?\\nMondelez International Inc. has a global Ethics & Compliance program that guides its employees to adhere to applicable laws and regulations while conducting business worldwide. The company also has a dedicated Compliance team that works with senior management to implement the program and ensures employees understand what is expected of them. \\n\\nHowever, it is unclear from the available information whether Mondelez International Inc. is PCI compliant regarding the specific requirements of PCI DSS. This would require further investigation and analysis of the company's data security measures and practices.\n",
                  "sources": [
                    {
                      "type": null,
                      "url": null
                    }
                  ]
                }
              ]
            },
            "documents": [
              {
                "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
                "filename": "file 1.pdf",
                "contentType": "application/pdf",
                "byteSize": 123456
              }
            ],
            "quoted": true,
            "recommendedActions": "Referral",
            "alternateUrl": "https://{tenant}.sixfold.app/commercial/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
            "createdAt": "2023-01-10T16:00:30+0:00",
            "updatedAt": "2023-01-10T16:05:30+0:00"
          }
        }
      }
    }

Case Creation Failed Example Request (Easy Case Creation)

When a case is submitted via the Easy Case Creation API (POST /api/2024-05/commercial/case-from-documents) and the system cannot extract the required insured name, address, or US state from the submitted documents, a cases/errored webhook fires. The case was never created — the id in the payload matches the case_uuid returned by the original API call.

The analysis.errors[0].detail message names the specific fields that could not be extracted. To recover, use the standard case creation endpoint (POST /api/2024-05/commercial/cases) and provide the missing fields (name, insured.address) explicitly in the request body — the case-from-documents endpoint does not accept these fields directly.

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/errored",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "commercialCases",
          "attributes": {
            "state": "errored",
            "externalId": "your-reference-id",
            "analysis": {
              "status": "error",
              "errors": [
                {
                  "title": "Case creation failed",
                  "code": "extraction_failed",
                  "detail": "Could not extract insured name and insured address from the submitted documents. Please use the POST /api/2024-05/commercial/cases endpoint and explicitly provide insured name and insured address in the request body."
                }
              ]
            },
            "createdAt": "2024-01-10T16:00:30Z",
            "updatedAt": "2024-01-10T16:05:30Z"
          }
        }
      }
    }

Note: The payload shape for this error scenario is intentionally simpler than a standard cases/errored payload — it contains no name, documents, or insuredCompany fields, since the case was never fully created. The analysis object contains only status and errors; the richer analysis fields present in a standard case payload (riskEvaluation, riskSignalDetections, facts, etc.) are absent. Clients should handle both shapes when processing cases/errored events.

Life & Disability Example Request

Below is an example of a webhook request sent when a life & disability case is updated:

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/updated",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "lifeCases",
          "attributes": {
            "name": "Jane Doe",
            "insuranceLine": {
              "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
              "name": "Life"
            },
            "documentsCount": 123,
            "externalId": "client-custom-identifier",
            "alternateUrl": "https://{tenant}.sixfold.app/life/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
            "insuredPerson": {
              "name": "Jane Doe",
              "bornOn": "1949-12-31",
              "occupation": "Software Engineer",
              "sex": "female"
            },
            "analysis": {
              "status": "done",
              "errors": [],
              "riskSignalDetections": [
                {
                  "type": "KeywordSignal",
                  "keyword": "Cancer",
                  "explanation": "The fact 'Concerning for malignancy' matches the keyword signal 'Cancer' with a negative impact based on the risk appetite provided.",
                  "impact": "negative",
                  "sources": [
                    {
                      "filename": "medial_report.pdf",
                      "pages": [1,2,3]
                    }
                  ]
                }
              ],
              "riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
              "fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n",
              "factsCount": 321
            },
            "createdAt": "2024-01-10T16:00:30Z",
            "updatedAt": "2024-01-10T16:00:30Z"
          }
        }
      }
    }

FileNet Integration Example Request

Below is an example of a webhook request sent when a FileNet integration has successfully downloaded the files:

    {
      "id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
      "topic": "integrations/finished",
      "body": {
        "data": {
          "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
          "files": [
            {
              "id": "filenet-unique-identifier",
              "category": "Medical Record"
            },
            {
              "id": "filenet-unique-identifier-2"
            }
          ]
        }
      }
    }

Below is an example of a webhook request sent when a FileNet integration failed to download the file:

    {
      "id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
      "topic": "integrations/errored",
      "body": {
        "data": {
          "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
          "files": [
            {
              "id": "filenet-unique-identifier",
              "category": "Medical Record"
            },
            {
              "id": "filenet-unique-identifier-2"
            }
          ],
          "errors": [
            {
              "status": "500",
              "title": "FileNet server error",
              "detail": "File 'filenet-unique-identifier' failed due to a FileNet server error",
              "meta": {
                "fileId": "filenet-unique-identifier"
              }
            }
          ]
        }
      }
    }

Example Request with Custom Headers

Below is an example of a webhook request that includes a custom Auth-Token header for authentication:


POST /webhooks HTTP/1.1

Host: foo.example

Accept: application/json

Content-Type: application/json

Auth-Token: secret-custom-header


{
  "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
  "topic": "cases/updated",
  "body": {
    "data": {
      ...
    }
  }
}

Requirements

  • Your webhook resource MUST accept requests with content type application/json

    • Your webhook resource MUST return a response with a 200 status to indicate that the request was processed successfully

Custom Headers

You can optionally specify custom headers for us to send in webhook requests. This is useful when, for example, your webhook resource requires us to provide an authentication token in a header. Custom headers are defined at the webhook level and are included in all requests sent to the webhook callback URL. Please reach out to your Sixfold representative to set up custom headers for your webhook.

Webhook Topics

A webhook's topic indicates the type of event that triggered the webhook. The topic is included in the request body sent to your webhook URL.

Supported webhook topics include:

| Topic | Description |

| --- | --- |

| cases/created | a case was successfully created |

| cases/updated | a case was successfully updated |

| cases/finished | a case has completed the analysis |

| cases/errored | a case encountered an error during analysis, or a case could not be created because required fields could not be extracted from submitted documents (Easy Case Creation) |

| integrations/finished | an integration has finished its operation |

| integrations/errored | an integration encountered an error during its operation |

Referral Actions

The recommendedActions field and the Actions API require the Referral Agent feature. When not enabled, recommendedActions will be null and the Actions API will return referralAgentEnabled: false and actions: []. Please reach out to your account team if this feature is not enabled for your tenant.

When the Referral Agent evaluates a case and determines that a referral is recommended, the case is updated with the referral recommendation. This triggers a cases/updated webhook (and cases/finished if the referral completes after case analysis).

The webhook payload will include recommendedActions: "Referral" in the case attributes. When you receive this value, call GET /api/2026-01/commercial/cases/{case_id}/actions to retrieve the full referral details including rationales, citations, and a pre-generated email template.

Examples

Commercial Example Request

Below is an example of a webhook request sent when a commercial case is updated:

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/updated",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "commercialCases",
          "attributes": {
            "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
            "name": "Diamond West Construction Case",
            "insuranceLine": {
              "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
              "name": "General Liability"
            },
            "insuredCompany": {
              "name": "Diamond West Construction",
              "businessActivity": "Construction",
              "summary": "A general building contractor that offers home remodeling and design-build services.",
              "webPresence": {
                "urls": [
                  "https://diamondwestdevelopment.com/about-us/",
                  "https://diamondwestdevelopment.com/",
                  "http://diamondwestconstruction.mobi/",
                  "https://diamondwestdevelopment.com/gallery/",
                  "https://diamondwestdevelopment.com/services/"
                ]
              },
              "businessClassification": [
                  {
                    "system": "naics",
                    "code": "236118",
                    "title": "Commercial and Institutional Building Construction",
                    "explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
                    "confidence": 0.79
                  }
                ],
              "address": {
                "street": "6676 Van Buren Boulevard",
                "city": "Riverside",
                "state": "CA",
                "postalCode": "92503",
                "country": "US"
              }
            },
            "analysis": {
              "status": "done",
              "riskEvaluation": {
                "score": 4,
                "summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
                "sectionScores": [
                  {
                    "sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "sectionName": "Cybersecurity",
                    "score": 4,
                    "signalCount": 3
                  }
                ]
              },
              "riskSignalDetections": [
                {
                  "type": "KeywordSignal",
                  "keyword": "Construction",
                  "explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects. Additionally, Diamond West Development provides diversified construction services such as concrete work, block walls, pools, and outdoor kitchens. This indicates that the business likely engages in construction activities.",
                  "impact": "positive"
                },
                {
                  "type": "KeywordSignal",
                  "keyword": "Remodeling",
                  "explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling. It highlights customer testimonials praising their work on remodeling projects and mentions their services in home remodeling, room additions, and custom homes. This indicates that the business likely engages in remodeling activities.",
                  "impact": "negative"
                }
              ],
              "facts": [
                {
                  "type": "questionAnswer",
                  "question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
                  "answer": "Is PCI Compliance Applicable to Mondelez International Inc.?\\nMondelez International Inc. is a multinational confectionery, food, and beverage company that manufactures and markets food products and beverages. The company operates in approximately 160 countries and has an annual revenue of about $26.5 billion.\\n\\nThe Payment Card Industry Data Security Standard (PCI DSS) is a set of security standards that ensure companies that accept, process, store, or transmit credit card information maintain a secure environment. PCI DSS is administered and managed by the PCI Security Standards Council (PCI SSC), an independent body created by major payment card brands such as Visa, MasterCard, and American Express. \\n\\nPCI DSS applies to any organization, regardless of size or the number of transactions, that accepts, transmits, or stores cardholder data. This includes companies that process credit card information and merchants that accept payment cards as payment for goods and services. \\n\\nGiven that Mondelez International Inc. operates on a global scale and deals with financial transactions, it would need to comply with PCI DSS. \\n\\n## Is Mondelez International Inc. PCI Compliant?\\nMondelez International Inc. has a global Ethics & Compliance program that guides its employees to adhere to applicable laws and regulations while conducting business worldwide. The company also has a dedicated Compliance team that works with senior management to implement the program and ensures employees understand what is expected of them. \\n\\nHowever, it is unclear from the available information whether Mondelez International Inc. is PCI compliant regarding the specific requirements of PCI DSS. This would require further investigation and analysis of the company's data security measures and practices.\n",
                  "sources": [
                    {
                      "type": null,
                      "url": null
                    }
                  ]
                }
              ]
            },
            "documents": [
              {
                "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
                "filename": "file 1.pdf",
                "contentType": "application/pdf",
                "byteSize": 123456
              }
            ],
            "quoted": true,
            "recommendedActions": "Referral",
            "alternateUrl": "https://{tenant}.sixfold.app/commercial/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
            "createdAt": "2023-01-10T16:00:30+0:00",
            "updatedAt": "2023-01-10T16:05:30+0:00"
          }
        }
      }
    }

Case Creation Failed Example Request (Easy Case Creation)

When a case is submitted via the Easy Case Creation API (POST /api/2024-05/commercial/case-from-documents) and the system cannot extract the required insured name, address, or US state from the submitted documents, a cases/errored webhook fires. The case was never created — the id in the payload matches the case_uuid returned by the original API call.

The analysis.errors[0].detail message names the specific fields that could not be extracted. To recover, use the standard case creation endpoint (POST /api/2024-05/commercial/cases) and provide the missing fields (name, insured.address) explicitly in the request body — the case-from-documents endpoint does not accept these fields directly.

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/errored",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "commercialCases",
          "attributes": {
            "state": "errored",
            "externalId": "your-reference-id",
            "analysis": {
              "status": "error",
              "errors": [
                {
                  "title": "Case creation failed",
                  "code": "extraction_failed",
                  "detail": "Could not extract insured name and insured address from the submitted documents. Please use the POST /api/2024-05/commercial/cases endpoint and explicitly provide insured name and insured address in the request body."
                }
              ]
            },
            "createdAt": "2024-01-10T16:00:30Z",
            "updatedAt": "2024-01-10T16:05:30Z"
          }
        }
      }
    }

Note: The payload shape for this error scenario is intentionally simpler than a standard cases/errored payload — it contains no name, documents, or insuredCompany fields, since the case was never fully created. The analysis object contains only status and errors; the richer analysis fields present in a standard case payload (riskEvaluation, riskSignalDetections, facts, etc.) are absent. Clients should handle both shapes when processing cases/errored events.

Life & Disability Example Request

Below is an example of a webhook request sent when a life & disability case is updated:

    {
      "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
      "topic": "cases/updated",
      "body": {
        "data": {
          "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "type": "lifeCases",
          "attributes": {
            "name": "Jane Doe",
            "insuranceLine": {
              "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
              "name": "Life"
            },
            "documentsCount": 123,
            "externalId": "client-custom-identifier",
            "alternateUrl": "https://{tenant}.sixfold.app/life/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
            "insuredPerson": {
              "name": "Jane Doe",
              "bornOn": "1949-12-31",
              "occupation": "Software Engineer",
              "sex": "female"
            },
            "analysis": {
              "status": "done",
              "errors": [],
              "riskSignalDetections": [
                {
                  "type": "KeywordSignal",
                  "keyword": "Cancer",
                  "explanation": "The fact 'Concerning for malignancy' matches the keyword signal 'Cancer' with a negative impact based on the risk appetite provided.",
                  "impact": "negative",
                  "sources": [
                    {
                      "filename": "medial_report.pdf",
                      "pages": [1,2,3]
                    }
                  ]
                }
              ],
              "riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
              "fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n",
              "factsCount": 321
            },
            "createdAt": "2024-01-10T16:00:30Z",
            "updatedAt": "2024-01-10T16:00:30Z"
          }
        }
      }
    }

FileNet Integration Example Request

Below is an example of a webhook request sent when a FileNet integration has successfully downloaded the files:

    {
      "id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
      "topic": "integrations/finished",
      "body": {
        "data": {
          "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
          "files": [
            {
              "id": "filenet-unique-identifier",
              "category": "Medical Record"
            },
            {
              "id": "filenet-unique-identifier-2"
            }
          ]
        }
      }
    }

Below is an example of a webhook request sent when a FileNet integration failed to download the file:

    {
      "id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
      "topic": "integrations/errored",
      "body": {
        "data": {
          "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
          "integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
          "files": [
            {
              "id": "filenet-unique-identifier",
              "category": "Medical Record"
            },
            {
              "id": "filenet-unique-identifier-2"
            }
          ],
          "errors": [
            {
              "status": "500",
              "title": "FileNet server error",
              "detail": "File 'filenet-unique-identifier' failed due to a FileNet server error",
              "meta": {
                "fileId": "filenet-unique-identifier"
              }
            }
          ]
        }
      }
    }

Example Request with Custom Headers

Below is an example of a webhook request that includes a custom Auth-Token header for authentication:


POST /webhooks HTTP/1.1

Host: foo.example

Accept: application/json

Content-Type: application/json

Auth-Token: secret-custom-header


{
  "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
  "topic": "cases/updated",
  "body": {
    "data": {
      ...
    }
  }
}

Integrations Overview

Introduction

At Sixfold, we streamline customer workflows by supporting integrations that automate the process of pulling in documents from external sources and seamlessly adding them to a case’s knowledge base. This supplements the documents that customers can manually upload, allowing teams to focus on analysis and decision-making while ensuring that all relevant documents are accurately captured and organized within the system. Through our integration options, we enable efficient document management that adapts to your specific needs.

See here for representative example of an integration.

Getting Started

Before leveraging one of the existing integrations, you will need to work with Sixfold's operations team to configure the necessary settings for your tenant. Each integration requires specific configurations and credentials.

For each integration, you will receive a:

  • Integration ID: A unique identifier for your integration, provided by Sixfold.
  • Integration Metadata Schema: An integration-specific data structure that will be used to manage the integration on a per-case basis

Integration ID

The integrationId is a unique identifier for your configured integration, provided to you by Sixfold, that you will use in API calls to manage the integration for a particular case.

Example Integration Id

  • integrationId: "a908bbed-319d-46fa-925d-67298721fa5c"

Example Usage

See the documentation for this API endpoint for example usage.


Integration Metadata Schema

The integration metadata schema is a integration-specific data structure that you leverage when structuring the request bodies for API calls to manage the integration for a particular case.

Example Integration Metadata Schema

The data structure below is an example of the metadata schema for an integration with an external document management system. Here, the files key references an array of ids that represent the id of file/documents in the external system that a customer would want to associate with a particular case.

    {
        "id": "integrationId", // provided by sixfold
        "files": [
            {
                "id": "id-of-file-in-external-system",
            },
        ]
    }

Example Usage

See the documentation for this API endpoint for example usage.


Supported Integrations

Currently, Sixfold supports integrations with the following:

If you'd like to integrate with a third-party service that is not currently in the list above, please reach out to us via email to inquire.

IBM FileNet Content Manager

IBM FileNet Content Manager

This integration allows Sixfold to interact with this external document and content storage service. This integration enables seamless management and attachment of files to cases within Sixfold’s system.

Prerequisites

Before Sixfold can begin adding files to cases using the FileNet integration, Sixfold’s operations team will need to configure the integration within your tenant. The configuration process will require the following information:

  • FileNet Server URL: The URL of the FileNet Content Manager server.
  • FileNet Credentials: The username and password for accessing the FileNet system.
  • Authentication URLs and Credentials: The URL(s) and credentials (if any) needed to receive a token used to authenticate requests to FileNet.

Configuration Process

  1. Contact Sixfold: Reach out to Sixfold’s operations team to begin the setup process.
  2. Provide Credentials: Share the required FileNet server details and Authentication credentials.
  3. Configuration: Sixfold’s team will configure your tenant to use the provided credentials and server information.
  4. Integration ID: Once the setup is complete, Sixfold will provide your development team with an integration ID.

Integration Metadata Schema

The metadata schema for the FileNet integration is as follows:

    {
        "id": "integrationId",
        "files": [
            {
              "id": "id-of-file-in-filenet",
              "category": "Medical Record"
            },
            { "id": "another-id-of-file-in-filenet" }
        ]
    }

Using the Integration

After setting up the FileNet integration, you will need to include the integration ID in all API requests that involve FileNet-related actions, such as creating a case while specifying files to be pulled in from FileNet, or updating a case to specify additional files to be pulled in from FileNet.

Example API Call - Update Case with additional files from FileNet

See example below, or the documentation for this endpoint

PATCH /life/cases/john-doe-case-id/integrations/file-net-integration-id HTTP/1.1
Content-Type: application/json-patch+json

[
  {
    "op": "add",
    "path": "/files/-",
    "value": {
      "id": "id-of-file-in-filenet",
      "category": "Medical Record"
    }
  }
]

Document Classification

Documents can be classified into certain top-level categories.

These document-level metadata can in turn be used to improve case level analysis of the relevant case information found in those documents, as well as give more contextual information to users in the UI.

Sixfold's API allows its consumers to specify the top-level category / classification of a document when they:

  1. Create a case with documents
  2. Add documents to a case
  3. Specify files to add to a case from a third party integration

The sections below detail the supported top-level categories per product line.

Life & Disability

Category Description
Application The main insurance application, capturing personal info, desired coverage, beneficiaries, and declarations around existing insurance.
Part II Any supplemental questionnaires or self-reported medical/lifestyle information (e.g., health history, lifestyle/hobbies, family history, etc.).
Lab Reports from examiners who measure vitals (blood pressure, height, weight), collect fluid samples, and summarize basic health indicators. Includes laboratory test results (blood/urine/saliva), including flagged abnormal values and reference ranges.
EKG Electrocardiogram reports and waveforms showing heart rate, rhythm, and electrical activity; used to assess cardiac function.
RX/DX Report Prescription histories from external databases, detailing medication usage and fill history.
Medical Record Physician summaries, detailed medical records from clinics, hospital discharge summaries, specialist reports, etc. This category should also be used if you have multiple Medical Records of different types contained within a single file.
Financial Pay stubs, tax returns, W-2 forms, profit-and-loss statements, personal or business financial statements, net-worth summaries.
Diagnostic Report Imaging, or reports for any diagnostic procedures or therapies. This category should also be used if you have multiple Diagnostic Reports of different types contained within a single file.
Background Report MIB codes, Motor Vehicle Records, credit checks, or other non-prescription third-party data used to validate applicant information.

Commercial

More information coming soon.