# Documents API



<EndpointIndex
  names={[
  	'fetchDocument',
  	'fetchDocumentResource',
  	'fetchSourceForDocument',
  	'fetchDocumentsForTerm',
  	'fetchDocumentsForSegment',
  	'fetchDocumentsForTransaction',
  	'fetchDocumentsForQuote',
  	'fetchInvoiceDocument',
  	'copyDocumentsOnIssue',
  	'attachDocument',
  	'replaceDocument',
  	'deleteDocument',
  	'renderDocument',
  ]}
  titles={{
  	fetchDocument: 'Fetch a Document instance',
  	fetchDocumentResource: 'Fetch the Rendered artifact for a Document',
  	fetchSourceForDocument: 'Fetch the Source for a Document',
  	fetchDocumentsForTerm: 'Fetch Documents for a Policy Term',
  	fetchDocumentsForSegment: 'Fetch Documents for a Policy Segment',
  	fetchDocumentsForTransaction: 'Fetch Documents for a Policy Transaction',
  	fetchDocumentsForQuote: 'Fetch Documents for a Quote',
  	fetchInvoiceDocument: 'Fetch Document for an Invoice',
  }}
/>

Fetch [#fetch]

Fetch a Document instance [#fetch-a-document-instance]

<ApiEndpoint name="fetchDocument" title="Fetch a Document instance" />

<ApiSchema name="DocumentInstanceResponse" />

Fetch the Rendered artifact for a Document [#fetch-the-rendered-artifact-for-a-document]

<ApiEndpoint name="fetchDocumentResource" title="Fetch the Rendered artifact for a Document" />

Fetch the Source for a Document [#fetch-the-source-for-a-document]

<ApiEndpoint name="fetchSourceForDocument" title="Fetch the Source for a Document" />

Fetch Documents for a Policy Term [#fetch-documents-for-a-policy-term]

<ApiEndpoint name="fetchDocumentsForTerm" title="Fetch Documents for a Policy Term" />

Fetch Documents for a Policy Segment [#fetch-documents-for-a-policy-segment]

<ApiEndpoint name="fetchDocumentsForSegment" title="Fetch Documents for a Policy Segment" />

Fetch Documents for a Policy Transaction [#fetch-documents-for-a-policy-transaction]

<ApiEndpoint name="fetchDocumentsForTransaction" title="Fetch Documents for a Policy Transaction" />

Fetch Documents for a Quote [#fetch-documents-for-a-quote]

<ApiEndpoint name="fetchDocumentsForQuote" title="Fetch Documents for a Quote" />

<ApiSchema name="DocumentListResponse" />

Fetch Document for an Invoice [#fetch-document-for-an-invoice]

<ApiEndpoint name="fetchInvoiceDocument" title="Fetch Document for an Invoice" />

Copy [#copy]

Copy Documents On Issue [#copy-documents-on-issue]

<ApiEndpoint name="copyDocumentsOnIssue" />

Modification [#modification]

Attach Document [#attach-document]

<ApiEndpoint name="attachDocument" />

<Callout>
  In the request, the key name for the file content should be `document`.

  If `referenceType` is `policy`, either a `transactionLocator` or `segmentLocator` must be supplied.
</Callout>

Replace Document [#replace-document]

<ApiEndpoint name="replaceDocument" />

Delete Document [#delete-document]

<ApiEndpoint name="deleteDocument" />

Ad-hoc Rendering [#ad-hoc-rendering]

Render Document [#render-document]

<ApiEndpoint name="renderDocument" />

See Also [#see-also]

* [Documents Configuration Guide](/configuration/resources/documents)
* [Document Resources API](/api/resources/document-resources)


## API Reference

GET /document/{tenantLocator}/documents/{locator} — fetchDocument
Tags: documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

GET /document/{tenantLocator}/documents/{locator}/document — fetchDocumentResource
Tags: documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

GET /document/{tenantLocator}/documents/{locator}/source — fetchSourceForDocument
Tags: documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

GET /document/{tenantLocator}/documents/policy/{policyLocator}/term/{termLocator}/summary — fetchDocumentsForTerm
Tags: documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  policyLocator (ulid, path, required)
  termLocator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
  suppressRenderingData (boolean, query)
Responses:
  200 DocumentListResponse — OK

GET /document/{tenantLocator}/documents/segment/{locator}/list — fetchDocumentsForSegment
Tags: segment-documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
  extended (boolean, query) — When false, returns a bare array.
  suppressRenderingData (boolean, query)
Responses:
  200 DocumentListResponse — OK

GET /document/{tenantLocator}/documents/transaction/{locator}/list — fetchDocumentsForTransaction
Tags: transaction-documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
  extended (boolean, query) — When false, returns a bare array.
  suppressRenderingData (boolean, query)
Responses:
  200 DocumentListResponse — OK

GET /document/{tenantLocator}/documents/quote/{locator}/list — fetchDocumentsForQuote
Tags: quote-documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  offset (integer, query)
  count (integer, query)
  extended (boolean, query) — When false, returns a bare array.
  suppressRenderingData (boolean, query)
Responses:
  200 DocumentListResponse — OK

GET /document/{tenantLocator}/documents/invoices/{locator} — fetchInvoiceDocument
Tags: invoice-documents-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

POST /document/{tenantLocator}/documents/quote/{locator}/copyOnIssue — copyDocumentsOnIssue
Tags: quote-documents-controller
Permissions: trigger
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  deleteAllDocuments (boolean, query)
Responses:
  200 — OK

POST /document/{tenantLocator}/documents/attach — attachDocument
Tags: documents-controller
Permissions: upload-external
Parameters:
  tenantLocator (uuid, path, required)
  referenceLocator (ulid, query, required)
  referenceType (Enum quote | policy | invoice | transaction | segment | term, query, required)
  name (string, query, required)
  staticName (string, query)
  documentFormat (Enum csv | doc | docx | eml | html | jpeg | jpg | msg | pdf | text | txt | xls | xlsx | zip, query, required)
  metadata (string, query)
  transactionLocator (ulid, query)
  segmentLocator (ulid, query)
  category (string, query)
  copyOnIssuance (boolean, query)
Responses:
  200 — OK

PATCH /document/{tenantLocator}/documents/{locator} — replaceDocument
Tags: documents-controller
Permissions: replace-external
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  metadata (string, query)
  category (string, query)
Responses:
  200 — OK

DELETE /document/{tenantLocator}/documents/{locator} — deleteDocument
Tags: documents-controller
Permissions: delete-external
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

POST /document/{tenantLocator}/documents/render — renderDocument
Tags: documents-controller
Permissions: render-external
Parameters:
  tenantLocator (uuid, path, required)
  referenceType (Enum quote | policy | invoice | transaction | segment | term, query, required)
  referenceLocator (ulid, query, required)
  productName (string, query)
  templateFormat (Enum liquid | velocity, query)
  documentConfig (string, query)
  staticName (string, query)
  templateName (string, query)
Responses:
  200 — OK

DocumentInstanceResponse
Properties:
  locator (ulid, required)
  referenceLocator (ulid, required)
  referenceType (Enum quote | policy | invoice | transaction | segment | term, required)
  referenceDocumentLocator (ulid)
  transactionLocator (ulid)
  segmentLocator (ulid)
  termLocator (ulid)
  policyLocator (ulid)
  name (string)
  staticName (string)
  documentInstanceState (Enum draft | dataReady | ready | dataError | renderError | conversionError, required)
  documentFormat (Enum csv | doc | docx | html | jpeg | jpg | pdf | text | txt | xls | xlsx | zip, required)
  metadata (map<string, object>, required)
  createdAt (datetime, required)
  createdBy (uuid)
  readyAt (datetime)
  renderingData (map<string, object>, required)
  processingErrors (string)
  external (boolean, required)
  category (string)
  consolidatedFrom (ulid[], required)
  consolidatedTo (ulid[], required)
  copyOnIssuance (boolean)

DocumentListResponse
Properties:
  listCompleted (boolean, required)
  items (DocumentInstanceResponse[], required)