Skip to main content
Quote is a top-level Field Model V1 entity, managed through the unified entity CRUD endpoints at /api/v1/external/companies/{companyId}/entities/Quote. Like all FMV1 entities, the set of available fields is configured per company. Key Concepts:
  • The request body for create and update is a flat JSON object where keys are field referenceIds (e.g., quoteType, policyStartDate).
  • Responses use the generic entity envelope — all field values live inside a fieldModelV1Data object, alongside id, createdAt/createdBy, updatedAt/updatedBy, and resolved createdByName/updatedByName. There is no top-level companyId, policyId, or submissionId.
  • Updates use merge semantics — provided fields are merged onto the existing data, a key set to null clears that field, and omitted fields are left unchanged. PUT is accepted as an alias for PATCH.
  • Get returns the quote’s own data only — there is no cross-entity enrichment. Linked entities (for example the submission or resulting policy) are not embedded; query them separately.

Framework-Required Fields

These fields are required by the framework on a quote:
FieldDescription
quoteStatusCurrent status. Resolver-populated calculated value.
quoteTypeQuote type (e.g. New Business)
quoteNumberQuote number. Resolver-populated calculated value.
quoteSubmissionAssociated submission. Join field — the link lives in the entity-relationships junction.
referencedExposuresFlat list of referenced Exposure ids. Calculated Join field, recomputed on every write — see Referenced Exposures.
Because quoteNumber, quoteStatus, and referencedExposures are resolver-populated calculated values, a create request only needs the submission link (quoteSubmission) plus quoteType, in addition to any required custom fields. Discover the full set of input fields via the Configuration endpoint.

Configuration

Configuration discovery uses the unified entity configuration endpoint. Call GET /api/v1/external/companies/{companyId}/entities/quote/configuration to retrieve JSON Schemas of the available quote input fields for your company. Calculated values, server-populated fields, and lifecycle fields are excluded from the configuration.

Permissions

OperationPermission
Getcompany.policy:read
Listcompany.quote:read
Createcompany.policy:create
Updatecompany.policy:create
Deletecompany.quote:delete
The Configuration endpoint requires company.quote:read.

Example Create Request

{
  "quoteType": "New Business",
  "quoteSubmission": "550e8400-e29b-41d4-a716-446655440010",
  "policyStartDate": "2025-01-01",
  "policyEndDate": "2026-01-01",
  "premium": 15000
}

Example Response

{
  "id": "550e8400-e29b-41d4-a716-446655440001",
  "fieldModelV1Data": {
    "quoteType": "New Business",
    "quoteStatus": "in_progress",
    "quoteNumber": "Q-2025-001",
    "quoteSubmission": "550e8400-e29b-41d4-a716-446655440010",
    "policyStartDate": "2025-01-01",
    "policyEndDate": "2026-01-01",
    "premium": 15000
  },
  "createdAt": 1736937000,
  "createdBy": "google-oauth2|123456789",
  "updatedAt": 1736937000,
  "updatedBy": null,
  "createdByName": "Jane Doe",
  "updatedByName": null
}
createdAt and updatedAt are epoch-second integers, not ISO strings.