Policy Transaction Stack
Workflow
The policy transaction workflow is identical to the quotes workflow.
Note
Transactions in issued state may not be discarded, invalidated, or reset. Transactions in accepted state may not be discarded or reset.
Transaction Data
Policy transactions have the following important properties:
basedOnis set for all but issuance transactions. basedOn refers to the top-most transaction that:Is immediately lower in the transaction stack and
Is not reversed
The
updateInstructioncontains information on how to change coverage information (adding elements, mutating element data, etc.).The
segmentsarray contains all the segments created by the transaction.reversesTxsis an array populated for out-of-sequence or reversal cases.reapplicationOfis used for out-of-sequence handling, where Socotra reverses a set of transactions latest to earliest, applies a new transaction, and then reapplies the reversed transactions. If non-null,reapplicationOfcontains the locator of the transaction that this one is reapplying.termHeadindicates the head of the term stack that this transaction is based on.The
previousChargeSummaryis a set of denormalized summary-level charge amounts by term, element, charge and type. It includes the transaction’s new charges, such that the total price and non-financial sums for that entire term through that transaction are reflected in the summary.
Documents
Documents can be created and attached to the transaction at any of the validated, priced, underwritten, accepted, or issued states, based on the configuration for documents for that transaction. Some of the documents may be copied to the policy or term based on the configuration when the transaction is issued.
Validation
Validation works similarly to the process in quotes. Each segment will be validated independently based on the configuration schema.
For example, if there is a vehicle element with quantifier “one or more” declared as vehicle+ in the configuration contents, then each segment must confirm that there is at least one vehicle active in the segment. This could be satisfied by a vehicle persisting across segments or being replaced with another by the transaction.
The validation plugin should generally check each segment independently in the same way, but since some use cases require context from other segments, all segments to be validated will be sent in one call.