Skip to main content
Submissions are containers for quotes in AI Insurance. The Submissions API allows you to programmatically create, read, update, and delete submissions. Key Concepts:
  • Submissions are containers for quotes - create a submission first, then add quotes via the Quotes API
  • Submissions progress through various statuses from creation to binding
  • Submissions have a type indicating if it’s new business, renewal, endorsement, or cancellation
  • For renewals, submissions can reference the renewing policy via renewingPolicyId

API Endpoints


Submission Status

Submissions progress through the following statuses:
StatusDescription
in_progressSubmission is being prepared
submittedSubmission has been submitted for review
quote_in_progressQuote is being prepared
quotedQuote has been generated
boundQuote has been bound and converted to a policy
declinedSubmission was declined
expiredSubmission has expired
cancelledSubmission was cancelled

Submission Type

When creating a submission via the API, use these type values:
API TypeDescription
quoteNew business submission
renewalRenewal of an existing policy
endorsementMid-term change to an existing policy
cancellationCancellation of an existing policy
reinstatementReinstatement of a cancelled policy
Use quote as the type for new business submissions. The API maps this to new_business internally.

Submission Workflow

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Create         │────▶│  Add Quotes     │────▶│  Bind Quote     │
│  Submission     │     │  (Quotes API)   │     │  (Creates       │
│                 │     │                 │     │   Policy)       │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  1. Create Submission - Use POST /submissions to create a new submission
  2. Add Quotes - Use the Quotes API to add quotes to the submission
  3. Bind Quote - When a quote is bound, it becomes a policy

Associated Quotes

When using GET /submissions/{submissionId}, submissions include a quoteIds array by default:
{
  "quoteIds": [
    "660e8400-e29b-41d4-a716-446655440001",
    "660e8400-e29b-41d4-a716-446655440002"
  ]
}
You can request expanded quote details with expand=quotes:
{
  "quotes": [
    {
      "id": "660e8400-e29b-41d4-a716-446655440001",
      "number": "Q00000001-01",
      "status": "complete",
      "submissionId": "550e8400-e29b-41d4-a716-446655440001",
      "applicationId": null,
      "policyId": null,
      "description": "General Liability Coverage",
      "policyCurrency": "USD",
      "grandTotal": 2500.00,
      "createdAt": "2024-01-15T11:00:00.000Z",
      "updatedAt": "2024-01-15T12:00:00.000Z"
    }
  ]
}

List vs Get Response

The List Submissions endpoint returns minimal fields for performance:
FieldListGet
id
companyId
number
name
status
type
primaryInsuredName
applicationId
renewingPolicyId
renewingPolicyNumber
declineReason
quoteIds
createdAt
updatedAt
closedAt
boundAt

Nullable Fields

The following fields may be null in the response:
FieldWhen null
nameSubmission name not set
primaryInsuredNameNo primary insured on the submission
applicationIdApplication not linked
renewingPolicyIdNot a renewal or policy not linked
renewingPolicyNumberNot a renewal or policy not linked
declineReasonSubmission not declined
updatedAtSubmission has never been updated
closedAtSubmission not closed
boundAtSubmission not bound

Filtering and Sorting

List endpoints support comprehensive filtering and sorting options:

Filter Parameters

ParameterTypeDescription
statusstring or arrayFilter by submission status
typestring or arrayFilter by submission type
filterTextstringText search across submission fields

Sorting Parameters

ParameterTypeDefaultDescription
sortBystringcreatedAtField to sort by (createdAt, updatedAt, primaryInsuredName)
sortDirectionstringdescSort direction (asc or desc)

Pagination

ParameterTypeDefaultDescription
pageinteger1Page number (1-based, page size 50)
Response includes:
  • items - Array of submissions for the current page
  • totalCount - Total number of matching submissions across all pages

Deleting Submissions

Submissions with associated quotes cannot be deleted. You must delete all quotes first using the Quotes API before deleting the submission.

Permissions

Access to submissions requires the appropriate permissions based on your API key:
OperationRequired Permission
List Submissionscompany.submission:read
Get Submissioncompany.submission:read
Create Submissioncompany.submission:create
Update Submissioncompany.submission:update
Delete Submissioncompany.submission:delete

Example List Response

{
  "items": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440001",
      "number": "SUB-2024-001",
      "name": "Acme Corp Submission",
      "status": "quoted",
      "type": "new_business",
      "primaryInsuredName": "Acme Corporation",
      "applicationId": "550e8400-e29b-41d4-a716-446655440010",
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-16T14:20:00.000Z"
    }
  ],
  "totalCount": 150
}

Example Get Response

{
  "id": "550e8400-e29b-41d4-a716-446655440001",
  "companyId": "660e8400-e29b-41d4-a716-446655440000",
  "number": "SUB-2024-001",
  "name": "Acme Corp Submission",
  "status": "quoted",
  "type": "new_business",
  "primaryInsuredName": "Acme Corporation",
  "applicationId": "550e8400-e29b-41d4-a716-446655440010",
  "renewingPolicyId": null,
  "renewingPolicyNumber": null,
  "declineReason": null,
  "quoteIds": [
    "660e8400-e29b-41d4-a716-446655440001",
    "660e8400-e29b-41d4-a716-446655440002"
  ],
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-16T14:20:00.000Z",
  "closedAt": null,
  "boundAt": null
}