# Accounts API



<EndpointIndex
  names={[
  	'fetchAccount',
  	'fetchMultipleAccounts',
  	'createAccount',
  	'updateAccount',
  	'updateAccountReplaceData',
  	'validateAccount',
  	'addAccountContact',
  	'deleteAccountContact',
  	'updateAccountContact',
  	'fetchAccountContacts',
  	'fetchPoliciesForAccount',
  	'fetchQuotesForAccount',
  	'fetchPolicySnapshotsForAnAccount',
  	'updateBillingLevelForAnAccount',
  	'fetchAccountsWithNumber',
  	'setAccountNumber',
  	'generateAccountNumber',
  ]}
  titles={{
  	fetchAccount: 'Fetch an Account',
  	createAccount: 'Create an Account',
  	updateAccountReplaceData: 'Update Account and Replace Data',
  	validateAccount: 'Validate an Account',
  	addAccountContact: 'Add contact',
  	deleteAccountContact: 'Delete contact',
  	updateAccountContact: 'Update contact',
  	fetchAccountContacts: 'Fetch contacts',
  	fetchPoliciesForAccount: 'Fetch Policies for an Account',
  	fetchQuotesForAccount: 'Fetch Quotes for an Account',
  }}
/>

Fetch [#fetch]

Fetch an Account [#fetch-an-account]

<ApiEndpoint name="fetchAccount" title="Fetch an Account" />

<ApiSchema name="AccountResponse" />

Fetch Multiple Accounts [#fetch-multiple-accounts]

<ApiEndpoint name="fetchMultipleAccounts" />

<ApiSchema name="AccountListResponse" />

Account Creation [#account-creation]

Create an Account [#create-an-account]

<ApiEndpoint name="createAccount" title="Create an Account" />

<ApiSchema name="AccountCreateRequest" />

<ApiSchema name="ContactRoles" />

Updating [#updating]

Update Account [#update-account]

<ApiEndpoint name="updateAccount" />

<ApiSchema name="AccountUpdateRequest" />

Update Account and Replace Data [#update-account-and-replace-data]

<ApiEndpoint name="updateAccountReplaceData" title="Update Account and Replace Data" />

<Callout>
  This version of `updateAccount` replaces *all* [extension data](/configuration/data-extensions/overview) for the account, rather than just updating individual properties.
</Callout>

<ApiSchema name="AccountUpdateReplaceDataRequest" />

Validation [#validation]

Validate an Account [#validate-an-account]

<ApiEndpoint name="validateAccount" title="Validate an Account" />

<ApiSchema name="ValidationResult" />

<ApiSchema name="ValidationItemResponse" />

Contact Management [#contact-management]

Add contact [#add-contact]

<ApiEndpoint name="addAccountContact" title="Add contact" />

Delete contact [#delete-contact]

<ApiEndpoint name="deleteAccountContact" title="Delete contact" />

Update contact [#update-contact]

<ApiEndpoint name="updateAccountContact" title="Update contact" />

<ApiSchema name="ContactAssociationUpdateRequest" />

Fetch contacts [#fetch-contacts]

<ApiEndpoint name="fetchAccountContacts" title="Fetch contacts" />

Quotes and Policies [#quotes-and-policies]

Fetch Policies for an Account [#fetch-policies-for-an-account]

<ApiEndpoint name="fetchPoliciesForAccount" title="Fetch Policies for an Account" />

<ApiSchema name="PolicyResponse" />

Fetch Quotes for an Account [#fetch-quotes-for-an-account]

<ApiEndpoint name="fetchQuotesForAccount" title="Fetch Quotes for an Account" />

<ApiSchema name="QuoteResponse" />

Fetch Policy Snapshots For An Account [#fetch-policy-snapshots-for-an-account]

<ApiEndpoint name="fetchPolicySnapshotsForAnAccount" />

<ApiSchema name="PolicySnapshotResponse" />

Holds [#holds]

Fetch All Holds For An Account [#fetch-all-holds-for-an-account]

<ApiEndpoint name="fetchAllHoldsForAnAccount" />

<ApiSchema name="HoldResponse" />

Billing [#billing]

Update Billing Level For An Account [#update-billing-level-for-an-account]

<ApiEndpoint name="updateBillingLevelForAnAccount" />

<ApiSchema name="UpdateBillingLevelRequest" />

Numbering [#numbering]

Fetch Accounts With Number [#fetch-accounts-with-number]

<ApiEndpoint name="fetchAccountsWithNumber" />

Set Account Number [#set-account-number]

<ApiEndpoint name="setAccountNumber" />

Generate Account Number [#generate-account-number]

<ApiEndpoint name="generateAccountNumber" />


## API Reference

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

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

POST /policy/{tenantLocator}/accounts — createAccount
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
Request body (AccountCreateRequest):
Responses:
  200 AccountResponse — OK

PATCH /policy/{tenantLocator}/accounts/{locator} — updateAccount
Updates the account and individual data extensions.
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Request body (AccountUpdateRequest):
Responses:
  200 AccountResponse — OK

PUT /policy/{tenantLocator}/accounts/{locator} — updateAccountReplaceData
Updates the account and replaces all existing data extensions with the new data.
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Request body (AccountUpdateReplaceDataRequest):
Responses:
  200 AccountResponse — OK

PATCH /policy/{tenantLocator}/accounts/{locator}/validate — validateAccount
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 AccountResponse — OK

POST /policy/{tenantLocator}/accounts/{accountLocator}/contacts — addAccountContact
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  accountLocator (ulid, path, required)
Request body (ContactRoles):
Responses:
  200 AccountResponse — OK

DELETE /policy/{tenantLocator}/accounts/{accountLocator}/contacts/{contactLocator} — deleteAccountContact
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  accountLocator (ulid, path, required)
  contactLocator (ulid, path, required)
Responses:
  200 AccountResponse — OK

PATCH /policy/{tenantLocator}/accounts/{accountLocator}/contacts/{contactLocator} — updateAccountContact
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  accountLocator (ulid, path, required)
  contactLocator (ulid, path, required)
Request body (ContactAssociationUpdateRequest):
Responses:
  200 AccountResponse — OK

GET /policy/{tenantLocator}/accounts/{accountLocator}/contacts — fetchAccountContacts
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  accountLocator (ulid, path, required)
Responses:
  200 ContactRoles[] — OK

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

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

GET /policy/{tenantLocator}/accounts/{locator}/policies/snapshot/list — fetchPolicySnapshotsForAnAccount
Tags: accounts-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 PolicySnapshotListResponse — OK

GET /billing/{tenantLocator}/holds/accounts/{accountLocator}/list — fetchAllHoldsForAnAccount
Tags: holds-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  accountLocator (ulid, path, required)
  state (Enum draft | validated | active | discarded | released, query)
  offset (integer, query)
  count (integer, query)
  extended (boolean, query)
Responses:
  200 HoldListResponse — OK

PATCH /policy/{tenantLocator}/accounts/{locator}/billingLevel — updateBillingLevelForAnAccount
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Request body (UpdateBillingLevelRequest):
Responses:
  200 AccountResponse — OK

GET /policy/{tenantLocator}/accounts/numbers/{accountNumber} — fetchAccountsWithNumber
Tags: accounts-controller
Permissions: read, list
Parameters:
  tenantLocator (uuid, path, required)
  accountNumber (string, path, required)
Responses:
  200 AccountResponse[] — OK

POST /policy/{tenantLocator}/accounts/{locator}/number/set — setAccountNumber
Tags: accounts-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  accountNumber (string, query, required)
Responses:
  200 AccountResponse — OK

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

AccountResponse
Properties:
  locator (ulid, required)
  type (string, required) — One of the configured Account Types
  accountState (Enum draft | validated | discarded, required)
  data (map<string, object>, required)
  createdAt (datetime, required)
  createdBy (uuid, required)
  delinquencyPlanName (string)
  shortfallTolerancePlanName (string)
  autoRenewalPlanName (string)
  excessCreditPlanName (string)
  preferences (PreferencesResponse)
  validationResult (ValidationResult)
  billingLevel (Enum account | inherit | policy, required)
  invoicingPlanName (string)
  region (string)
  invoiceDocument (string)
  timezone (string)
  accountNumber (string, required)
  contacts (ContactRoles[], required)
  anonymizedAt (datetime)
  paymentExecutionRetryPlanName (string)
  state (Enum draft | validated | discarded, required) [deprecated]

AccountListResponse
Properties:
  listCompleted (boolean, required)
  items (AccountResponse[], required)

AccountCreateRequest
Properties:
  type (string, required) — One of the configured Account Types
  autoValidate (boolean)
  data (map<string, object>)
  delinquencyPlanName (string)
  shortfallTolerancePlanName (string)
  autoRenewalPlanName (string)
  excessCreditPlanName (string)
  preferences (PreferencesResponse)
  billingLevel (Enum account | inherit | policy)
  region (string)
  invoiceDocument (string)
  timezone (string)
  contacts (ContactRoles[])
  invoicingPlanName (string)
  paymentExecutionRetryPlanName (string)

ContactRoles
Properties:
  contactLocator (ulid, required)
  roles (string[], required)

AccountUpdateRequest
Properties:
  type (string, required) — One of the configured Account Types
  delinquencyPlanName (string, required)
  shortfallTolerancePlanName (string, required)
  autoRenewalPlanName (string, required)
  excessCreditPlanName (string, required)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)
  preferences (PreferencesResponse, required)
  billingLevel (Enum account | inherit | policy, required)
  invoiceDocument (string, required)
  timezone (string, required)
  invoicingPlanName (string, required)
  paymentExecutionRetryPlanName (string, required)
  autoValidate (boolean, required)

AccountUpdateReplaceDataRequest
Properties:
  type (string, required) — One of the configured Account Types
  autoValidate (boolean)
  data (map<string, object>)
  delinquencyPlanName (string)
  shortfallTolerancePlanName (string)
  autoRenewalPlanName (string)
  excessCreditPlanName (string)
  preferences (PreferencesResponse)
  billingLevel (Enum account | inherit | policy)
  region (string)
  invoiceDocument (string)
  timezone (string)
  contacts (ContactRoles[])
  invoicingPlanName (string)
  paymentExecutionRetryPlanName (string)

ValidationResult
Properties:
  validationItems (ValidationItemResponse[])
  success (boolean, required)

ValidationItemResponse
Properties:
  elementType (string, required)
  locator (ulid, required)
  errors (string[], required)

ContactAssociationUpdateRequest
Properties:
  addRoles (string[], required)
  removeRoles (string[], required)

PolicyResponse
Properties:
  locator (ulid, required)
  accountLocator (ulid, required)
  branchHeadTransactionLocators (ulid[]) — The locators of all the top-level transactions on the policy, one per branch
  issuedTransactionLocator (ulid, required) — The locator of the latest issued transaction for the policy.
  productName (string, required)
  timezone (string, required)
  currency (string, required)
  durationBasis (Enum years | months | weeks | days | hours, required)
  createdAt (datetime, required)
  createdBy (uuid, required)
  delinquencyPlanName (string)
  autoRenewalPlanName (string)
  startTime (datetime, required) — The start time, based on issued transactions only
  endTime (datetime, required) — The end time based on issued transactions only.
  latestTermLocator (ulid, required)
  billingLevel (Enum account | inherit | policy, required)
  region (string)
  policyNumber (string)
  latestSegmentLocator (ulid, required) — The last segment on the policy, based on issued transactions only
  contacts (ContactRoles[], required)
  statuses (Enum[], required)
  invoiceFeeAmount (number)
  anonymizedAt (datetime)
  coverageEndTime (datetime)
  moratoriumElections (map<string, string>, required)
  jurisdiction (string)
  producerCode (string)
  producerCodeOfRecord (string)
  static (map<string, object>, required)
  validationResult (ValidationResult)

QuoteResponse
Properties:
  locator (ulid, required)
  quoteState (Enum draft | validated | earlyUnderwritten | priced | underwritten | accepted | issued | underwrittenBlocked | declined | rejected | refused | discarded, required)
  productName (string, required)
  accountLocator (ulid, required)
  startTime (datetime)
  endTime (datetime)
  timezone (string)
  currency (string)
  underwritingStatus (string)
  expirationTime (datetime)
  element (ElementResponse, required) — The root element in the hierarchy
  preferences (PreferencesResponse) — Plan selections and setting overrides
  policyLocator (ulid)
  delinquencyPlanName (string)
  durationBasis (Enum years | months | weeks | days | hours)
  groupLocator (ulid)
  autoRenewalPlanName (string)
  billingLevel (Enum account | inherit | policy, required)
  region (string)
  quoteNumber (string)
  duration (number) — The duration of the prospective policy in units of durationBasis
  acceptedTime (datetime)
  issuedTime (datetime)
  validationResult (ValidationResult)
  quickQuoteLocator (ulid)
  contacts (ContactRoles[], required)
  anonymizedAt (datetime)
  invoiceFeeAmount (number)
  createdBy (uuid)
  createdAt (datetime)
  jurisdiction (string)
  producerCode (string)
  reservedPolicyNumber (string)
  static (map<string, object>)
  policyNumber (string)

PolicySnapshotResponse
Properties:
  locator (ulid, required)
  accountLocator (ulid, required)
  productName (string, required)
  timezone (string, required)
  currency (string, required)
  region (string, required)
  transaction (TransactionSnapshotResponse, required)
  delinquencyPlanName (string)
  static (map<string, object>, required)

HoldResponse
Properties:
  locator (ulid, required)
  accountLocator (ulid, required)
  targetType (Enum invoicing | delinquency, required)
  holdState (Enum draft | validated | active | discarded | released, required)
  createdAt (datetime, required)
  updatedAt (datetime, required)
  validationResult (ValidationResult)

UpdateBillingLevelRequest
Properties:
  billingLevel (Enum account | inherit | policy, required)