Skip to main content
POST
New Business Transaction

Authorizations

Authorization
string
header
required

API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.

Path Parameters

companyId
string<uuid>
required

Company identifier

Body

application/json
data
object
required

The policy-level fields, at the top level of this object. Must include policyStatus, policyStartDate and policyEndDate. May also include fullTermPricingInfo, fullTermPolicyRatingResult and any custom fields defined in your field configuration — including embedded exposure fields (the default configuration models a primaryInsured object + an additionalExposures list, but the platform imposes no structural exposure shape).

Custom fields — including the values of any embedded exposure fields — are validated against your company's field configuration. Unknown fields are rejected, required fields must be present, and values must match their configured types (including option set membership). Embedded exposure values are validated per-field against that exposure's own configuration.

Before 2026-08-05 these same fields were sent one level deeper, inside fieldModelV1Data.policy. Send data.policyNumber where you sent fieldModelV1Data.policy.policyNumber.

transactionTimestamp
string<date-time>

When the business decision was made. Defaults to the current time if omitted. Set explicitly for imports (e.g., aligning to a bordereau booking date).

displayAuthor
string

Optional user-visible author label (trimmed; must be non-empty). When set, the transaction is displayed as filed by this label (e.g. "Data Import") instead of the acting user; audit attribution (createdBy) stays server-set.

Maximum string length: 255
invoicePlan
object

A fully explicit, detached policy-invoice batch. Existing invoices not named in voidInvoices are kept. The complete kept-plus-created set must conserve every bound component of the policy's current pricing contract.

Response

Policy created successfully

Response returned by policy transaction endpoints. Contains the policy version produced by the transaction, including all derived segments.

policyId
string<uuid>
required

Policy identifier

policyVersion
integer
required

Sequential version number produced by this transaction

transactionId
string<uuid>
required

Identifier of the transaction that produced this version

startDate
string<date>
required

Policy term start date (ISO 8601)

endDate
string<date>
required

Policy term end date (ISO 8601)

createdAt
string<date-time>
required

When the transaction was created (ISO 8601)

segments
object[]
required

Derived segments for this policy version. Each segment represents a maximal contiguous date range where policy state is identical. Adjacent segments with identical data are automatically merged.

primaryInsuredName
string | null

Plain-text primary-insured name, read from the policy's own primaryInsuredName field — the source of truth for the primary insured. Reported as of the END of the term, so a policy whose insured changed mid-term returns the later name; segments[] carries the per-segment history. Null only when the version carries no policy data.

primaryInsuredId
string | null

Id of the entity behind primaryInsuredName. Null when the policy's configuration does not populate it.

policyNumber
string | null

The policy number, read from the policy's own policyNumber field — the source of truth, invariant across the whole term. Null only when the version carries no policy data.

policyStartDate
object | null

Policy term start date as the structured date object, read from the policy's own policyStartDate field — the source of truth, invariant across the whole term. This is not startDate above: that is the ISO span this version covers, which a cancellation makes shorter than the term. Null only when the version carries no policy data.

policyEndDate
object | null

Policy term end date as the structured date object, read from the policy's own policyEndDate field — the source of truth, invariant across the whole term. This is not endDate above: that is the ISO span this version covers. Null only when the version carries no policy data.

fullTermPricingInfo
object | null

The policy's full-term pricing contract, hoisted as a read-once convenience (also duplicated in every segment): pricingComponents (each {label, group, kind, value[, earningBasis]}) plus the five server-computed, read-only rollups (premium, taxes, fees, brokerCommission, programCommission — each the sum of its kind's components).

fullTermPolicyRatingResult
object | null

Derived canonical policy-level rating result for the full term, hoisted as a read-once convenience (also duplicated in every segment). Element-level rating output (crossSegmentRatingOutputs) stays inline at its host and is not hoisted.