# Policy Terms API



<EndpointIndex
  names={[
  	'fetchTerm',
  	'fetchMultipleTerms',
  	'fetchTermPayableAmounts',
  	'fetchTermCharges',
  	'fetchTermSummaryByTermLocator',
  	'fetchTermSummaryByTermNumber',
  	'fetchTermsWithNumber',
  	'setTermNumber',
  	'generateTermNumber',
  ]}
  titles={{
  	fetchTerm: 'Fetch a Term',
  	fetchTermPayableAmounts: 'Fetch Payable Amounts for a Policy Term',
  }}
/>

Fetch [#fetch]

Fetch a Term [#fetch-a-term]

<ApiEndpoint name="fetchTerm" title="Fetch a Term" />

<ApiSchema name="TermResponse" />

Fetch Multiple Terms [#fetch-multiple-terms]

<ApiEndpoint name="fetchMultipleTerms" />

<ApiSchema name="TermListResponse" />

Fetch Payable Amounts for a Policy Term [#fetch-payable-amounts-for-a-policy-term]

<ApiEndpoint name="fetchTermPayableAmounts" title="Fetch Payable Amounts for a Policy Term" />

<ApiSchema name="TermPayableResponse" />

Fetch Term Charges [#fetch-term-charges]

<ApiEndpoint name="fetchTermCharges" />

Term Summaries [#term-summaries]

Term Summaries are views of the term based on issued transactions, showing in-force coverage only. This essentially flattens the transactions that affect the term into a single series of segments, such that the segments cover the entire term without overlaps or time periods without segments. This is useful to understand the state of the term without constructing it from the transaction stack.

Fetch Term Summary By Term Locator [#fetch-term-summary-by-term-locator]

<ApiEndpoint name="fetchTermSummaryByTermLocator" />

Fetch Term Summary By Term Number [#fetch-term-summary-by-term-number]

<ApiEndpoint name="fetchTermSummaryByTermNumber" />

<Callout>
  If the term has been created by a renewal transaction that is not yet issued, the <ApiLink name="TermSummary" /> will not contain any <ApiLink name="SubsegmentSummary">segments</ApiLink>.
</Callout>

<ApiSchema name="TermSummary" />

<ApiSchema name="SubsegmentSummary" />

<ApiSchema name="ElementSummary" />

<ApiSchema name="DocumentSummary" />

Numbering [#numbering]

Fetch Terms With Number [#fetch-terms-with-number]

<ApiEndpoint name="fetchTermsWithNumber" />

Set Term Number [#set-term-number]

<ApiEndpoint name="setTermNumber" />

Generate Term Number [#generate-term-number]

<ApiEndpoint name="generateTermNumber" />


## API Reference

GET /policy/{tenantLocator}/terms/{locator} — fetchTerm
Tags: terms-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 TermResponse — OK

GET /policy/{tenantLocator}/policies/{locator}/terms/list — fetchMultipleTerms
Tags: policies-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
  extended (boolean, query) — When false, returns a bare array.
Responses:
  200 TermListResponse — OK

GET /policy/{tenantLocator}/terms/{locator}/payable — fetchTermPayableAmounts
Tags: terms-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 TermPayableResponse — OK

GET /policy/{tenantLocator}/terms/{locator}/charges — fetchTermCharges
Tags: terms-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 map<string, PolicyChargeResponse[]> — OK

GET /policy/{tenantLocator}/terms/{locator}/summary — fetchTermSummaryByTermLocator
Tags: terms-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 TermSummary — OK

GET /policy/{tenantLocator}/policies/{locator}/summary — fetchTermSummaryByTermNumber
Tags: policies-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  termNumber (integer, query)
Responses:
  200 TermSummary — OK

GET /policy/{tenantLocator}/terms/numbers/{termNumber} — fetchTermsWithNumber
Tags: terms-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  termNumber (string, path, required)
Responses:
  200 TermResponse[] — OK

POST /policy/{tenantLocator}/terms/{locator}/number/set — setTermNumber
Tags: terms-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  termNumber (string, query, required)
Responses:
  200 TermResponse — OK

POST /policy/{tenantLocator}/terms/{locator}/number/generate — generateTermNumber
Tags: terms-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 TermResponse — OK

TermResponse
Properties:
  locator (ulid, required)
  staticLocator (ulid, required)
  policyLocator (ulid, required)
  number (integer, required)
  previousTermLocator (ulid)
  supersedesTermLocator (ulid)
  startTime (datetime, required)
  endTime (datetime, required)
  autoRenewalLocator (ulid)
  termNumber (string)

TermListResponse
Properties:
  listCompleted (boolean, required)
  items (TermResponse[], required)

TermPayableResponse
Properties:
  locator (ulid, required)
  staticLocator (ulid, required)
  policyLocator (ulid, required)
  number (integer, required)
  startTime (datetime, required)
  endTime (datetime, required)
  amount (number, required)

TermSummary
Properties:
  policyLocator (ulid, required)
  locator (ulid, required)
  staticLocator (ulid, required)
  termNumber (integer, required)
  startTime (datetime, required)
  endTime (datetime, required)
  duration (number, required)
  durationBasis (Enum years | months | weeks | days | hours, required)
  subsegments (SubsegmentSummary[], required)

SubsegmentSummary
Properties:
  locator (ulid, required)
  type (Enum coverage | gap, required)
  basedOn (ulid, required)
  startTime (datetime, required)
  endTime (datetime, required)
  duration (number, required)
  producerInfo (ProducerInfo)
  elements (ElementSummary[], required)
  documentSummary (DocumentSummary[], required)

ElementSummary
Properties:
  locator (ulid, required)
  staticLocator (ulid, required)
  type (string, required)
  data (map<string, object>, required)
  chargeSummaries (map<string, number>, required)

DocumentSummary
Properties:
  locator (ulid, required)
  name (string)
  staticName (string)
  documentInstanceState (Enum draft | dataReady | ready | dataError | renderError | conversionError, required)
  referenceType (Enum quote | policy | invoice | transaction | segment | term, required)
  state (Enum draft | dataReady | ready | dataError | renderError | conversionError, required) [deprecated]