Endorse Policy Transaction
Applies an ENDORSE transaction to an existing policy. An endorsement carries one or more of five channels. The engine recomputes segments after applying every channel — adjacent segments with identical data are automatically merged — and the response includes the full resulting segment set.
Input channels (mutually exclusive — deltas XOR fullTermDeltas):
deltas— per-segment changes. Each carries its ownstartDate/endDatewithin the policy term, apath, anaction(Add / Remove / Overwrite), and avalue. The path must not contain any reserved full-term container.fullTermDeltas— endorsements topolicy.fullTermPolicyInfoonly (term bounds, renewal pointer, primary insured). No dates are carried — the change applies across the whole term because full-term fields are invariant. When present,effectiveDatemust equal the policy start date.
Sending both deltas and fullTermDeltas is a validation error — a per-segment
endorsement and a policy-info endorsement are separate transactions.
Derived channels (additive on either input channel):
fullTermPolicyBillingInfo— whole-object overwrite of the policy-root billing summary.fullTermPolicyRatingResult— whole-object overwrite of the policy-root canonical rating result (the twin offullTermPolicyBillingInfo).crossSegmentRatingOutputs— element-level rating output,[{ path, value }]. Eachpathterminates at acrossSegmentRatingOutputscontainer on a list element (or the policy);valueis the whole rating-output object for that host. There is no action (always an Overwrite) and no dates — the server derives each write’s range from the host’s presence across segments, so it applies cleanly to part-term hosts.
At least one channel is required.
Path syntax — predicate addressing. Index into a list by a predicate on any field:
policy.exposures[id = '<uuid>'].bedCount,
policy.coverages[coverageType = 'GL'].limits[name = 'occurrence']. The predicate must
resolve to exactly one element wherever it is applied (throws on zero or multiple
matches) — this uniqueness rule is the cross-segment identity guarantee.
Required permission: policy:update
Authorizations
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
Company identifier
Policy identifier
Body
The effective date of the endorsement in ISO 8601 format. When fullTermDeltas
is present this must equal the policy start date.
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).
Per-segment deltas. Each delta specifies a date range (startDate / endDate)
within the policy term, a predicate path, an action (Add / Remove / Overwrite),
and the new value. Paths must not contain any reserved full-term container
(fullTermPolicyInfo, fullTermPolicyBillingInfo, fullTermPolicyRatingResult,
crossSegmentRatingOutputs). Mutually exclusive with fullTermDeltas.
Endorsements to policy.fullTermPolicyInfo (term bounds, renewal pointer,
primary insured). Each delta targets a path under policy.fullTermPolicyInfo
and applies across the entire policy term — no startDate / endDate is
accepted. Mutually exclusive with deltas. When present, effectiveDate must
equal the policy start date. (Extending or shortening the term is a
fullTermDeltas write to policy.fullTermPolicyInfo.policyEndDate.)
Optional whole-object overwrite of the policy-root full-term billing summary. Additive on either input channel.
Optional whole-object overwrite of the policy-root canonical rating result.
The twin of fullTermPolicyBillingInfo; additive on either input channel.
Optional element-level rating output. Each entry overwrites the
crossSegmentRatingOutputs container at its host; the server derives the write
range from the host's presence across segments (write where the host-selector
resolves to exactly one element, skip where zero, throw on many or if it never
resolves). Additive; ENDORSE only.
Response
Endorsement applied successfully
Response returned by policy transaction endpoints. Contains the policy version produced by the transaction, including all derived segments.
Policy identifier
Sequential version number produced by this transaction
Identifier of the transaction that produced this version
Policy term start date (ISO 8601)
Policy term end date (ISO 8601)
When the transaction was created (ISO 8601)
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.
Endorsable full-term policy info, hoisted as a read-once convenience (also
duplicated in every segment). Contains term dates, the renewal pointer
(previousPolicyId), and the primary insured reference. Term bounds are
sourced here. Segment-scoped policyStatus is not part of this object.
Derived full-term billing aggregates, hoisted as a read-once convenience (also duplicated in every segment). Contains premium, taxes, fees, and grand total for the full policy term.
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.
