openapi: 3.0.1
info:
title: Smokeball API
version: '1.0'
description: REST API for integrating with Smokeball legal practice management software. Supports matters, contacts, documents,
time entries, billing, trust accounting, staff, webhooks, and law firm workflows across US, AU, and UK regions. Uses OAuth
2.0 (client credentials) authentication.
contact:
name: Smokeball Developer Support
url: https://docs.smokeball.com/docs/api-docs/1e13a13124aee-introduction
x-api-id: smokeball
x-audience: external-public
paths:
/activitycodes/{id}:
get:
tags:
- Activity Codes
summary: Get an activity code
description: Retrieves a specified activity code.
operationId: GetActivityCodeById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an 'Activity' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Activity'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When activity code with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When activity code with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Activity Codes
summary: Update an activity code
description: Updates an activity code.
operationId: UpdateActivityCode
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the activity code to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When activity code with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When activity code with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Activity Codes
summary: Delete an activity code
description: Deletes an activity code.
operationId: DeleteActivityCode
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the activity code to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When activity code with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When activity code with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/activitycodes:
get:
tags:
- Activity Codes
summary: Get activity codes
description: Returns a list of activity codes.
operationId: GetActivityCodes
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns expenses updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
responses:
'200':
description: When request is successful. Returns a paged collection of 'ActivityCode' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityPagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Activity Codes
summary: Create an activity code
description: Creates an activity code.
operationId: CreateActivityCode
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ActivityDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the activity code to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/groups:
get:
tags:
- Authorization
summary: Get authorization groups
description: Retrieves auhorization groups for the firm associated with the authenticated client.
operationId: GetGroups
responses:
'200':
description: When request is successful. Returns a list of authorization 'Group' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/GroupPagedCollection'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Authorization
summary: Create an authorization group
description: Creates an authorization group.
operationId: CreateGroup
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateGroupDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreateGroupDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateGroupDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the authorization group to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/groups/{id}:
get:
tags:
- Authorization
summary: Get an authorization group
description: Retrieves a specified authorization group.
operationId: GetGroup
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an authorization 'Group' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'404':
description: When authorization group does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Authorization
summary: Update an authorization group
description: Updates a specified authorization group.
operationId: UpdateGroup
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateGroupDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateGroupDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateGroupDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the authorization group to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
'404':
description: When authorization group does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Authorization
summary: Deletes an authorization group
description: Delete an authorization group.
operationId: DeleteGroup
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the authorization group to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies/{reference}:
get:
tags:
- Authorization
summary: Get an authorization policy
description: Retrieves a specified authorization policy.
operationId: GetPolicy
parameters:
- name: reference
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an authorization 'Policy' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Policy'
'404':
description: When authorization Policy does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Authorization
summary: Update an authorization policy
description: Updates a specified authorization policy.
operationId: UpdatePolicy
parameters:
- name: reference
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the authorization policy to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
'404':
description: When authorization policy does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/policies:
post:
tags:
- Authorization
summary: Create an authorization policy
description: Creates an authorization policy.
operationId: CreatePolicy
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PolicyDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the authorization policy to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}:
get:
tags:
- Bank Accounts
summary: Get a bank account
description: Retrieves a specified bank account.
operationId: GetBankAccountById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'BankAccount' object.
content:
application/json:
schema:
$ref: '#/components/schemas/BankAccount'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When bank account with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When bank account with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts:
get:
tags:
- Bank Accounts
summary: Get bank accounts
description: Returns a list of bank accounts.
operationId: GetBankAccounts
parameters:
- name: type
in: query
schema:
type: string
- name: matterId
in: query
schema:
type: string
responses:
'200':
description: When request is successful. Returns a collection of 'BankAccount' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/BankAccountCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}/matter-balances:
get:
tags:
- Bank Accounts
summary: Get bank account matter balances
description: Returns a list of bank account matter balances.
operationId: GetBankAccountMatterBalances
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: LastUpdated
in: query
description: Returns items updated since the specified date and time.
schema:
type: string
format: date-time
example: '2022-04-23T14:00:00Z'
example: '2022-04-23T14:00:00Z'
- name: MatterId
in: query
description: Filters items by the specified matter ID.
schema:
type: string
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
responses:
'200':
description: When request is successful. Returns a collection of 'BankAccountMatterBalance' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/BankAccountMatterBalancePagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}/protected-balances/{protectionId}:
get:
tags:
- Bank Accounts
summary: Get a protected bank account balance
description: Retrieves a specified protected account balance record.
operationId: GetProtectedAccountBalanceById
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: protectionId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'ProtectedAccountBalance' object.
content:
application/json:
schema:
$ref: '#/components/schemas/ProtectedAccountBalance'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When protected balance record is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When protected balance record does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}/protect-funds:
post:
tags:
- Bank Accounts
summary: Protect bank account funds
description: Protects funds in a trust bank account. Only trust accounts are supported.
operationId: ProtectFundsAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ProtectFundsDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProtectFundsDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ProtectFundsDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When bank account is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When bank account does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}/unprotect-funds/{protectionId}:
post:
tags:
- Bank Accounts
summary: Unprotect bank account funds
description: Unprotects funds in a trust bank account. Only trust accounts are supported.
operationId: UnprotectFundsAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: protectionId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UnprotectFundsDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UnprotectFundsDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UnprotectFundsDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When bank account is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When bank account or protection record does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{id}/requisitions:
post:
tags:
- Bank Accounts
summary: Create a requisition
description: "Creates a requisition against a trust account and supports the account approval workflow.\r\n\r\nWhether\
\ the requisition requires approval depends on the trust account configuration:\r\n- If approvals are enabled, firm\
\ owners can create requisitions without approval, while all other users require approval.\r\n- If approvals are disabled,\
\ the requisition is automatically approved upon creation."
operationId: CreateRequisitionAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RequisitionDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RequisitionDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RequisitionDto'
responses:
'202':
description: When request is accepted. Returns requisition status and balances.
content:
application/json:
schema:
$ref: '#/components/schemas/Requisition'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When bank account is not associated with authenticated client or client credentials are used.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When bank account does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{bankAccountId}/transactions:
get:
tags:
- Bank Accounts
summary: Get transactions
description: Retrieves a specified bank accounts transaction.
operationId: GetTransactions
parameters:
- name: bankAccountId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: LastUpdated
in: query
description: Returns items updated since the specified date and time.
schema:
type: string
format: date-time
example: '2022-04-23T14:00:00Z'
example: '2022-04-23T14:00:00Z'
- name: MatterId
in: query
description: Filters items by the specified matter ID.
schema:
type: string
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
responses:
'200':
description: When request is successful. Returns a 'Transaction' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When transaction with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When transaction with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Bank Accounts
summary: Create a transaction
description: Creates a transaction.
operationId: CreateTransactionForBankAccount
parameters:
- name: bankAccountId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/TransactionDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TransactionDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/TransactionDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the transaction to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When transaction with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When transaction with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/bankaccounts/{bankAccountId}/transactions/{id}:
get:
tags:
- Bank Accounts
summary: Get a transaction
description: Retrieves a specified bank account transaction.
operationId: GetTransactionById
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: bankAccountId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Transaction' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When transaction with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When transaction with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts/{contactId}/relations:
get:
tags:
- Contacts
summary: Get contact relations
description: Returns a list of relations for a specified contact if associated with the authenticated client.
operationId: GetRelations
parameters:
- name: contactId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a paged collection of 'Link' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/LinkPagedCollection'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Contacts
summary: Create a contact relation
description: Creates a relation for a specified contact.
operationId: CreateRelation
parameters:
- name: contactId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When related contact id is not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts/{contactId}/relations/{relatedContactId}:
get:
tags:
- Contacts
summary: Get a contact relation
description: Retrieves a relation for a specified contact if associated with the authenticated client.
operationId: GetRelationById
parameters:
- name: contactId
in: path
required: true
schema:
type: string
- name: relatedContactId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Contacts
summary: Update a contact relation
description: Updates a relation for a specified contact.
operationId: UpdateRelation
parameters:
- name: contactId
in: path
required: true
schema:
type: string
- name: relatedContactId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactRelationDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Contacts
summary: Delete a contact relation
description: Deletes a relation for a specified contact.
operationId: DeleteRelation
parameters:
- name: contactId
in: path
required: true
schema:
type: string
- name: relatedContactId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts:
get:
tags:
- Contacts
summary: Get contacts
description: Returns a list of contacts.
operationId: GetContacts
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns contacts updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
- name: ExcludeDeletedContacts
in: query
description: Excludes (filters out) deleted contacts if set to true.
schema:
type: boolean
example: true
example: true
- name: Type
in: query
description: "Filters result by one more contact types if set. Returns all contact types by default.\r\nPossible values:\
\ Staff, Person, Organisation, GroupOfPeople, Trust"
schema:
type: array
items:
type: string
- name: Search
in: query
description: ' Available fields: email, phone, name'
schema:
type: array
items:
type: string
- name: Sort
in: query
description: ' Available fields: lastUpdated'
schema:
type: string
- name: Fields
in: query
description: ' Available fields: passportDetails, deathDetails, citizenshipDetails, utbmsDetails, tags, executionOptions,
voiDetails'
schema:
type: string
responses:
'200':
description: When request is successful. Returns a paged collection of 'Contact' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/ContactPagedCollection'
post:
tags:
- Contacts
summary: Create a contact
description: Creates a contact.
operationId: CreateContact
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to create contacts.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts/{id}:
get:
tags:
- Contacts
summary: Get a contact
description: Retrieves a specified contact.
operationId: GetContactById
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Contact' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Contacts
summary: Update a contact
description: Updates a specified contact.
operationId: UpdateContact
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ContactDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Contacts
summary: Delete a contact
description: Deletes a specified contact.
operationId: DeleteContact
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts/{id}/tags:
get:
tags:
- Contacts
summary: Get contact tags
description: Retrieves a specified contacts tags.
operationId: GetContactTagsById
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a collection of 'Tag' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/TagCollection'
'403':
description: When contact with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Contacts
summary: Add tags to a contact
description: Adds tags to a contact.
operationId: AddContactTags
parameters:
- name: id
in: path
description: The contact ID
required: true
schema:
type: string
format: uuid
requestBody:
description: The list of tags to add
content:
application/json-patch+json:
schema:
type: array
items:
type: string
application/json:
schema:
type: array
items:
type: string
application/*+json:
schema:
type: array
items:
type: string
responses:
'201':
description: When request is successful. Returns a hypermedia 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/contacts/{id}/tags/{tagId}:
delete:
tags:
- Contacts
summary: Remove tags from a contact
description: Removes tags from a contact.
operationId: RemoveContactTags
parameters:
- name: id
in: path
description: The contact ID
required: true
schema:
type: string
format: uuid
- name: tagId
in: path
description: The tag ID (optional for bulk delete)
required: true
schema:
type: string
format: uuid
requestBody:
description: The list of tags for bulk delete
content:
application/json-patch+json:
schema:
type: array
items:
type: string
application/json:
schema:
type: array
items:
type: string
application/*+json:
schema:
type: array
items:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the contact tags.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When contact with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/events:
get:
tags:
- Events
summary: Get events
description: Returns a list of events.
operationId: GetEvents
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: "Filter by events updated since a specified time.\r\nSupported date formats are ISO YYYY-MM-DDThh:mm:ss\
\ or .net ticks representation of the UTC datetime."
schema:
type: string
example: 2000-01-01T20:00:00 OR 630823536000000000
example: 2000-01-01T20:00:00 OR 630823536000000000
- name: MatterId
in: query
description: Filter by events assigned to a specific MatterId.
schema:
type: string
- name: ExcludeDeletedEvents
in: query
description: 'Filter out any events that have been deleted, default: false'
schema:
type: boolean
example: false
example: false
- name: From
in: query
description: "Filter events from a specified UTC date and time.\r\nDefaults to the UTC datetime of the request.\r\n\
Dates should be provided in ISO format YYYY-MM-DDThh:mm:ss."
schema:
type: string
format: date-time
example: '2000-01-01T20:00:00'
example: '2000-01-01T20:00:00'
- name: To
in: query
description: "Filter events to a specified UTC date and time.\r\nIf no datetime is specified all future events will\
\ be returned.\r\nDates should be provided in ISO format YYYY-MM-DDThh:mm:ss."
schema:
type: string
format: date-time
example: '2000-01-01T20:00:00'
example: '2000-01-01T20:00:00'
responses:
'200':
description: When request is successful. Returns a paged collection of 'Event' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/EventPagedCollection'
post:
tags:
- Events
summary: Create event
description: Create new event.
operationId: CreateEvent
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the event to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
/events/{eventId}:
get:
tags:
- Events
summary: Get an event
description: Retrieves a specified event.
operationId: GetEventById
parameters:
- name: eventId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns an 'Event' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'403':
description: When the authenticated account does not access to the event.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When event with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Events
summary: Update event
description: Updates event details.
operationId: UpdateEvent
parameters:
- name: eventId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/EventDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the event to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When event does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Events
summary: Delete event
description: Deletes a specified event.
operationId: DeleteEvent
parameters:
- name: eventId
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the event to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When 'Event' does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/events/{eventId}/reminders:
get:
tags:
- Events
summary: Gets reminders for an event
description: Returns the collection of reminders for an event
operationId: GetReminders
parameters:
- name: eventId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns the collection of reminders.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReminderDto'
'403':
description: When the authenticated account does not have access to the event.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When event with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Events
summary: Create reminder for an event
description: Creates a new reminder for an event.
operationId: CreateReminder
parameters:
- name: eventId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When the authenticated account does not have access to the event.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When event with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/events/{eventId}/reminders/{reminderId}:
put:
tags:
- Events
summary: Update a reminder for an event
description: Updates an existing reminder for an event.
operationId: UpdateReminder
parameters:
- name: eventId
in: path
required: true
schema:
type: string
- name: reminderId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ReminderDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When the authenticated account does not have access to the event.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When event with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Events
summary: Delete reminder for an event
description: Deletes a specified event reminder.
operationId: DeleteReminder
parameters:
- name: eventId
in: path
required: true
schema:
type: string
- name: reminderId
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When the authenticated account does not have access to the event.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When event with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/expenses:
get:
tags:
- Expenses
summary: Get expenses
description: Returns a list of expenses for the specified matter.
operationId: GetExpenses
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns expenses updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
responses:
'200':
description: When request is successful. Returns a paged collection of 'Expense' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/ExpensePagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Expenses
summary: Create an expense
description: Creates an expense for the specified matter.
operationId: CreateExpense
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the expense to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/expenses/{id}:
get:
tags:
- Expenses
summary: Get an expense
description: Retrieves a specified expense.
operationId: GetExpenseById
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an 'Expense' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Expense'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When expense with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When expense with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Expenses
summary: Update an expense
description: Updates an expense for the specified matter.
operationId: UpdateExpense
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ExpenseDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the expense to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When expense with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When expense with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Expenses
summary: Patch an expense
description: Patches an expense for the specified matter.
operationId: PatchExpense
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/ExpenseDto'
application/json:
schema:
$ref: '#/components/schemas/ExpenseDto'
application/*+json:
schema:
$ref: '#/components/schemas/ExpenseDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the expense to be patched.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When expense with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When expense with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Expenses
summary: Delete an expense
description: Deletes an expense.
operationId: DeleteExpense
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the expense to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When expense with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When expense with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/fees:
get:
tags:
- Fees
summary: Get fees
description: Returns a list of fees for the specified matter.
operationId: GetFees
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns fees updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
responses:
'200':
description: When request is successful. Returns a paged collection of 'Fee' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FeePagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Fees
summary: Create a fee
description: Creates a fee for the specified matter.
operationId: CreateFee
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the fee to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/fees/{id}:
get:
tags:
- Fees
summary: Get a fee
description: Retrieves a specified fee.
operationId: GetFeeById
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Fee' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Fee'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When fee with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When fee with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Fees
summary: Update a fee
description: Updates a fee for the specified matter.
operationId: UpdateFee
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FeeDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the fee to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When fee with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When fee with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Fees
summary: Patch a fee
description: Patches a fee for the specified matter.
operationId: PatchFee
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/FeeDto'
application/json:
schema:
$ref: '#/components/schemas/FeeDto'
application/*+json:
schema:
$ref: '#/components/schemas/FeeDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the fee to be patched.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When fee with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When fee with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Fees
summary: Delete a fee
description: Deletes a fee.
operationId: DeleteFee
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the fee to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When fee with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When fee with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files:
get:
tags:
- Files
summary: Get files on a matter
description: "Returns a list of files associated with a matter. \r\nDefaults to ascending order of date created, i.e.\
\ oldest first, unless sort option is supplied.\r\nCustom sorting and searching options does not apply to cursor-based\
\ pagination."
operationId: GetFiles
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: Cursor
in: query
schema:
type: string
- name: Sort
in: query
description: ' Available fields: dateCreated'
schema:
type: string
- name: Search
in: query
description: ' Available fields: query, fileExtension'
schema:
type: array
items:
type: string
responses:
'200':
description: When request is successful. Returns a paged collection of 'File' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FilePagedCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Files
summary: Add file to a matter
description: Uploads a new file for the specified matter.
operationId: AddFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/AddFileDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/AddFileDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/AddFileDto'
required: true
responses:
'202':
description: When request is accepted. Returns an 'UploadFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/UploadFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}:
get:
tags:
- Files
summary: Get a file
description: Retrieves a specified file.
operationId: GetFileById
parameters:
- name: fileId
in: path
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'File' object.
content:
application/json:
schema:
$ref: '#/components/schemas/File'
'403':
description: When the requested file does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When file with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Files
summary: Upload/update version or metadata of a file
description: Updates the metadata for a file or uploads a new version of the file
operationId: UpdateFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/EditFileDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/EditFileDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/EditFileDto'
required: true
responses:
'202':
description: When request is accepted. Returns an 'UploadFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/UploadFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When file or matter with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Files
summary: Patch a file
description: Updates the metadata for a file or uploads a new version of the file
operationId: PatchFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/EditFileDto'
application/json:
schema:
$ref: '#/components/schemas/EditFileDto'
application/*+json:
schema:
$ref: '#/components/schemas/EditFileDto'
responses:
'202':
description: When request is accepted. Returns an 'UploadFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/UploadFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When file or matter with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Files
summary: Delete a file
description: Deletes a specified matter file.
operationId: DeleteFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: fileId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the requested file does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}/download:
get:
tags:
- Files
summary: Get download url for a file
description: Retrieves download details for a specified matter file.
operationId: DownloadFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
- name: versionId
in: query
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'DownloadFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/DownloadFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the requested file does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When file or matter with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}/upload:
get:
tags:
- Files
summary: Get upload url for a file
description: Retrieves upload details for a specified matter file.
operationId: UploadFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an 'UploadFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/UploadFileInfo'
'403':
description: When the requested file does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When file or matter with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}/history:
get:
tags:
- Files
summary: Get file history on a matter
description: Returns a list of history entries for the specified file
operationId: GetFileHistory
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a collection of 'FileFolderLogEntry' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FileFolderLogEntryCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/bulk:
post:
tags:
- Files
summary: Add files to a matter
description: Uploads a batch of files for the specified matter. Used for data migrations.
operationId: BulkAddFiles
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/AddFileDto'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AddFileDto'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/AddFileDto'
required: true
responses:
'202':
description: When request is accepted. Returns an array of 'UploadFileInfo' objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UploadFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}/preview:
get:
tags:
- Files
summary: Get preview info for a file
description: Returns info to preview a file.
operationId: GetPreview
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'PreviewFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the file is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the file name does not exist or isn't uploaded yet.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Files
summary: Create a preview request
description: Creates a preview for the specified file.
operationId: CreatePreview
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a 'PreviewFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the file is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the file name does not exist or isn't uploaded yet.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/files/{fileId}/preview/{documentVersionId}:
get:
tags:
- Files
summary: Get preview info for a file by document version
description: Returns info to preview a file by document version.
operationId: GetPreviewById
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: fileId
in: path
required: true
schema:
type: string
- name: documentVersionId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'PreviewFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the file is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the file name does not exist or isn't uploaded yet.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/firm:
get:
tags:
- Firm
summary: Get firm
description: Retrieves the details of the firm associated with the authenticated client.
operationId: GetFirm
responses:
'200':
description: When request is successful. Returns a 'Firm' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Firm'
'404':
description: When firm does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Firm
summary: Update firm
description: Updates firm details for the current authenticated client.
operationId: UpdateFirm
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateFirmDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateFirmDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateFirmDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the firm to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When firm does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Firm
summary: Create firm
description: Creates a firm for the current authenticated client and registers an existing user as a staff member and
firm owner.
operationId: CreateFirm
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateFirmDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreateFirmDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateFirmDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the firm to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When staff user does not exist or is already associated with another firm.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/firmusers:
get:
tags:
- Firm
summary: Get firm user mappings
description: Retrieves a list of user mappings in the firm associated with the authenticated client.
responses:
'200':
description: When request is successful. Returns an array of one or more 'FirmUser' objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FirmUser'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/firmusers/{id}:
get:
tags:
- Firm
summary: Get firm user mapping
description: Retrieves a user mapping (based on staff or user id parameter provided) in the firm associated with the
authenticated client.
operationId: GetFirmUserByIdAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'FirmUser' object.
content:
application/json:
schema:
$ref: '#/components/schemas/FirmUser'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Firm
summary: Update firm user mapping
description: Updates a user mapping in the firm associated with the authenticated client.
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FirmUserDto'
description: Represents a mapping between a user and a staff member in a firm.
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FirmUserDto'
description: Represents a mapping between a user and a staff member in a firm.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FirmUserDto'
description: Represents a mapping between a user and a staff member in a firm.
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the user to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When staff or user has not been provided.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When staff does not belong to the firm.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When 'FirmUser' does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Firm
summary: Delete firm user mapping
description: "Removes the user from the firm associated with the authenticated client.\r\n\r\nThe staff member is set\
\ as a former staff member and a former user. User access is also disabled."
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the user to be deleted.
'404':
description: When 'FirmUser' object does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/folders:
get:
tags:
- Folders
summary: Get folders/files under root folder
description: Returns a list of sub folders and files under the root folder of a matter.
operationId: GetFolders
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'FolderListing' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FolderListingPagedCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Folders
summary: Create a folder
description: Creates a new folder under the specified matter.
operationId: CreateRootFolder
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the folder to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When folder name is not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/folders/{folderId}:
get:
tags:
- Folders
summary: Get folders/files under a folder
description: Returns a list of sub folders and files under a specified folder of a matter.
operationId: GetFolderById
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: folderId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'FolderListing' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FolderListingPagedCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When folder with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Folders
summary: Update a folder
description: Updates a folder belonging to the specified matter.
operationId: UpdateFolder
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: folderId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FolderDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the folder to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When folder name is not provided or folder does not belong to the specified matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When folder with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Folders
summary: Patch a folder
description: Updates a folder belonging to the specified matter.
operationId: PatchFolder
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: folderId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/FolderDto'
application/json:
schema:
$ref: '#/components/schemas/FolderDto'
application/*+json:
schema:
$ref: '#/components/schemas/FolderDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the folder to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When folder name is not provided or folder does not belong to the specified matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When folder with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Folders
summary: Delete a folder
description: Deletes a folder belonging to the specified matter.
operationId: DeleteFolder
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: folderId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the folder to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When the folder does not belong to the specified matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/folders/{folderId}/path:
get:
tags:
- Folders
summary: Get folder path hierarchy
description: "Returns the full folder hierarchy (path) as a collection ordered from the root folder down to the supplied\
\ folder.\r\n\r\nThe root folder is not included in the response."
operationId: GetFolderPath
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: folderId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns the folder path hierarchy.
content:
application/json:
schema:
$ref: '#/components/schemas/FolderPathSegmentCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When folder with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/documents/folders/{folderId}/history:
get:
tags:
- Folders
summary: Get folder history on a matter
description: Returns a list of history entries for the specified folder.
operationId: GetFolderHistory
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: folderId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a collection of 'FileFolderLogEntry' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/FileFolderLogEntryCollection'
'403':
description: When the requested matter does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/intake/forms:
get:
tags:
- Intake
summary: Get intake forms for a matter type
operationId: GetFormsAsync
parameters:
- name: matterTypeId
in: query
description: The matter type to filter forms by.
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IntakeFormPagedCollection'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/intake/{matterId}/submissions:
get:
tags:
- Intake
summary: Get intake submissions for a matter
operationId: GetSubmissionsAsync
parameters:
- name: matterId
in: path
description: The matter to filter submissions by.
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IntakeSubmissionPagedCollection'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
post:
tags:
- Intake
summary: Create an intake submission for a matter
operationId: CreateSubmissionAsync
parameters:
- name: matterId
in: path
description: Matter to associate the submission with.
required: true
schema:
type: string
requestBody:
description: The submission payload including matter, form, delivery method, and recipient.
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateIntakeSubmissionRequestDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreateIntakeSubmissionRequestDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateIntakeSubmissionRequestDto'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/IntakeSubmissionCreated'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/intake/{matterId}/submissions/{submissionId}:
get:
tags:
- Intake
summary: Get an intake submission
operationId: GetSubmissionAsync
parameters:
- name: submissionId
in: path
description: The intake submission identifier.
required: true
schema:
type: string
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IntakeSubmissionDetail'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/matters/{matterId}/integrated-search/mapping:
get:
tags:
- Integrated Search
summary: Get mapping
description: "Retrieves integrated search mapping data associated with the authenticated client.\r\n \r\n\
Uses the integrated search provider used by the firm (e.g. InfoTrack)."
operationId: GetMappingAsync
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Mapping' object.
content:
application/json:
schema: {}
'400':
description: When matter type could not be found for the supplied matter id.
/matters/{matterId}/invoices:
get:
tags:
- Invoices
summary: Get invoices
description: Returns a list of invoices for the specified matter.
operationId: GetInvoices
parameters:
- name: matterId
in: path
description: The unique identifier of the matter that the invoice belongs to.
required: true
schema:
type: string
- name: LastUpdated
in: query
description: Returns items updated since the specified date and time.
schema:
type: string
format: date-time
example: '2022-04-23T14:00:00Z'
example: '2022-04-23T14:00:00Z'
- name: UpdatedSince
in: query
description: Returns items updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'Invoice' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/InvoicePagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/invoices/{invoiceId}:
get:
tags:
- Invoices
summary: Get an invoice
description: Retrieves a specified invoice.
operationId: GetInvoiceById
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: invoiceId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Invoice' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When invoice with specified id is not associated with authenticated client or matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/invoices/{invoiceId}/download:
get:
tags:
- Invoices
summary: Get download url for an invoice
description: Retrieves download details for a specified invoice.
operationId: DownloadInvoiceFile
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: invoiceId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an 'InvoiceFileInfo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceFileInfo'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the requested file does not belong to the account making the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When invoice with the specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/layouts:
get:
tags:
- Layout Designs
summary: Get layout designs
description: Returns a list of layout designs.
operationId: GetLayoutDesigns
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'LayoutDesignInfo' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/LayoutDesignInfoPagedCollection'
/layouts/{id}:
get:
tags:
- Layout Designs
summary: Get a layout design
description: Retrieves a specified layout design.
operationId: GetLayoutDesignById
parameters:
- name: id
in: path
description: Layout design Id
required: true
schema:
type: string
- name: matterTypeId
in: query
description: Matter type identifier (optional)
schema:
type: string
- name: state
in: query
description: State identifier (optional)
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'LayoutDesign' object.
content:
application/json:
schema:
$ref: '#/components/schemas/LayoutDesign'
'404':
description: When layout design with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/layouts:
get:
tags:
- Layout Matter Items
summary: Get layouts
description: Returns a collection of layout items on a specified matter.
operationId: GetLayoutMatterItems
parameters:
- name: matterId
in: path
description: Matter Id
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'LayoutMatterItemDataCollection' object.
content:
application/json:
schema:
$ref: '#/components/schemas/LayoutMatterItemDataCollection'
post:
tags:
- Layout Matter Items
summary: Add a new layout
description: Adds a new layout matter item to a matter.
operationId: AddLayout
parameters:
- name: matterId
in: path
description: Matter ID
required: true
schema:
type: string
format: uuid
- name: skipFieldValidation
in: query
schema:
type: boolean
default: false
requestBody:
description: Layout matter item to add
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemData'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemData'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemData'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the layout item to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When the new matter item contain invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the matter or a layout item with the specified ID does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/layouts/{itemId}:
get:
tags:
- Layout Matter Items
summary: Get a layout
description: Retrieves a layout item on a specified matter.
operationId: GetLayoutMatterItemById
parameters:
- name: matterId
in: path
description: Matter Id
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
description: Layout item Id
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'LayoutMatterItem' object.
content:
application/json:
schema:
$ref: '#/components/schemas/LayoutMatterItem'
'404':
description: When a layout item with the specified ID does not exist on the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Layout Matter Items
summary: Merge a layout
description: Merges layout data.
operationId: MergeLayout
parameters:
- name: matterId
in: path
description: Matter ID
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
description: Matter item Id
required: true
schema:
type: string
format: uuid
- name: skipFieldValidation
in: query
description: Used to skip the field validation, may be needed for Smokeball data split migrations
schema:
type: boolean
default: false
requestBody:
description: Data to merge into the existing layout
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemApiPatch'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemApiPatch'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutMatterItemApiPatch'
responses:
'202':
description: When the request is accepted. Returns a hypermedia 'Link' object of the layout item to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When the update payload does not contain an ID that matched the ID of the item requiring update.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the matter or a layout item with the specified ID does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Layout Matter Items
summary: Remove a layout
description: Removes a layout matter item from a matter.
operationId: RemoveLayout
parameters:
- name: matterId
in: path
description: Matter ID
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
description: Layout matter item ID to remove
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted.
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the matter or a layout item with the specified ID does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/layouts/{itemId}/contacts:
get:
tags:
- Layout Matter Items
summary: Get layout contacts
description: Returns a list of contacts on a specified layout.
operationId: GetLayoutMatterItemContacts
parameters:
- name: matterId
in: path
description: ''
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
description: ''
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a list of 'LayoutContact' objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LayoutContact'
'404':
description: When contacts do not exist for the layout item with specified id.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Layout Matter Items
summary: Add a contact to a layout
description: Adds a new contact on a specified layout.
operationId: AddLayoutMatterItemContact
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutContactData'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutContactData'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/LayoutContactData'
responses:
'202':
description: When request is accepted
'404':
description: When layout item with specified id does not exist on the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Layout Matter Items
summary: Remove a contact from a layout
description: Removes a contact from a specified layout, deleting the associated role or relationship from the matter.
operationId: RemoveLayoutMatterItemContact
parameters:
- name: matterId
in: path
description: Matter Id
required: true
schema:
type: string
format: uuid
- name: itemId
in: path
description: ItemId of the layout
required: true
schema:
type: string
format: uuid
- name: key
in: query
description: Layout contact key identifying the contact to remove.
schema:
type: string
responses:
'202':
description: When request is accepted.
'404':
description: When the layout item does not exist on the matter or no contact is assigned at the specified key.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/items:
get:
tags:
- Matter Items
summary: Get items on a matter
description: Returns a list of items on the specified matter.
operationId: GetMatterItems
parameters:
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'MatterItems' object containing a list of 'MatterItem' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterItems'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the matter is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/items/{id}:
get:
tags:
- Matter Items
summary: Get an item on a matter
description: Returns an item on the specified matter.
operationId: GetMatterItem
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'MatterItem' object.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterItem'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the matter is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified matter or item does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/mattertypes:
get:
tags:
- Matter Types
summary: Get matter types
description: "Returns a paginated list of matter types based on search criteria. Deleted matter types are not included.\r\
\n\r\nNote: If no `Location` is provided, all matter types from all locations will be returned."
operationId: GetMatterTypes
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: Name
in: query
description: Searches for partial match on matter type name
schema:
type: string
- name: Location
in: query
description: Return matter types from a specific location. In the US API this is the ANSI 2 letter state code (e.g.
IL, NY). In the AU API this is shorthand state code (e.g. NSW, ACT, etc)
schema:
type: string
- name: Category
in: query
description: Return matter types from a specific category.
schema:
type: string
- name: Type
in: query
description: "Return matter types by category type (i.e. MatterType or LeadType).\r\n \r\nPossible values:\
\ Matter Type = 0, Lead Type = 1."
schema:
allOf:
- $ref: '#/components/schemas/TypeCategory'
example: 0
example: 0
responses:
'200':
description: When request is successful. Returns a paged collection of 'MatterTypeInfo' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterTypeInfoPagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/mattertypes/{id}:
get:
tags:
- Matter Types
summary: Get a matter type
description: Retrieves a specified matter type.
operationId: GetMatterTypeById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'MatterType' object.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterType'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter type with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/mattertypes/categories:
get:
tags:
- Matter Types
summary: Get matter types categories
description: Returns a list of all the possible matter type categories.
operationId: GetCategories
responses:
'200':
description: When request is successful. Returns a collection of 'Categories'.
content:
application/json:
schema:
$ref: '#/components/schemas/StringCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/archive:
get:
tags:
- Matters
summary: Get the archive for a matter
description: Retrieves an archive for a matter.
operationId: GetArchiveForMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns an 'Archive' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Archive'
'404':
description: When the specified matter's archive does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Matters
summary: Update an archive for a matter.
description: Updates a specified matter's archive
operationId: UpdateArchive
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ArchiveDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ArchiveDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ArchiveDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Matters
summary: Patch an archive for a matter
description: Updates a specified matter's archive with patch operations.
operationId: PatchArchive
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/ArchiveDto'
application/json:
schema:
$ref: '#/components/schemas/ArchiveDto'
application/*+json:
schema:
$ref: '#/components/schemas/ArchiveDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/billingconfiguration:
get:
tags:
- Matters
summary: Get matter billing configuration
description: Retrieves the billing configuration for the specified matter.
operationId: GetBillingConfiguration
parameters:
- name: matterId
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'BillingConfiguration' object.
content:
application/json:
schema:
$ref: '#/components/schemas/BillingConfiguration'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the matter is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Matters
summary: Update matter billing configuration
description: Updates the billing configuration for the specified matter.
operationId: UpdateBillingConfigurationAsync
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/BillingConfigurationDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/BillingConfigurationDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/BillingConfigurationDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the billing configuration to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When matter with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters:
get:
tags:
- Matters
summary: Get matters
description: Returns a list of matters. To return leads, set the `isLead` search option to true.
operationId: GetMatters
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: Search
in: query
description: "Filter matters by specified search term.\r\nThis field is wide reaching, it is used to search by clients,\
\ othersides, description and matter numbers."
schema:
type: string
example: Bob
example: Bob
- name: MatterTypeId
in: query
description: Filter by matter type identifier.
schema:
type: string
example: 009f778f-83df-454a-b344-768a862a7e55
example: 009f778f-83df-454a-b344-768a862a7e55
- name: ContactId
in: query
description: Filter by the contact identifier.
schema:
type: string
example: 7fdbdd5b-0f5e-4095-af9e-ae5b055325c7
example: 7fdbdd5b-0f5e-4095-af9e-ae5b055325c7
- name: Status
in: query
description: "Filter by current status of the matter.\r\n\r\nPossible values: Open, Pending, Closed, Deleted or Cancelled."
schema:
type: array
items:
type: string
- name: IsLead
in: query
description: "Boolean flag to return 'Leads'. This is false by default.\r\n\r\nA Lead is a potential matter that has\
\ not yet been converted to a full matter. The data structure of a lead is similar to a matter, but with some small\
\ variances."
schema:
type: boolean
example: true
deprecated: true
example: true
- name: Type
in: query
description: "Type of matter to search for. This is set to Matters by default. \r\n \r\nA Lead is a potential\
\ matter that has not yet been converted to a full matter. The data structure of a lead is similar to a matter,\
\ but with some small variances.\r\n \r\nPossible values: \"Matters\", \"Leads\", \"Matters,Leads\"."
schema:
type: string
example: Leads
example: Leads
- name: UpdatedSince
in: query
description: "Filter by matters updated since a specified time (.net ticks representation of the UTC datetime). Cannot\
\ be used in conjunction with `LastUpdated`.\r\n\r\nThis field will not be supported in future, please use LastUpdated\
\ instead."
schema:
type: integer
format: int64
example: 637873555398585000
example: 637873555398585000
- name: LastUpdated
in: query
description: Filter by last updated date of matter. Cannot be used in conjunction with `UpdatedSince`.
schema:
type: string
format: date-time
example: '2022-04-23T14:00:00Z'
example: '2022-04-23T14:00:00Z'
- name: Sort
in: query
description: ' Available fields: status, lastUpdated'
schema:
type: string
- name: Fields
in: query
description: ' Available fields: items, tags'
schema:
type: string
responses:
'200':
description: When request is successful. Returns a paged collection of 'Matter' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterPagedCollection'
post:
tags:
- Matters
summary: Create a matter
description: "Creates a new matter.\r\n \r\nNote: This endpoint can also be used to create a `Lead`.\r\n\r\
\nWhen creating a `Lead` you MUST remember to set a valid lead specific `matterTypeId` field (see field description\
\ below for more details) and set the `isLead` field to true.\r\n\r\nThe `clientRole` and `otherSideRole` are optional\
\ and cannot be identical. They will be set to the default role(s) for the specified matter type - if not provided."
operationId: CreateMatter
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the matter to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made or a mandatory field - i.e. client, matter type, status - is not
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}:
get:
tags:
- Matters
summary: Get a matter
description: Retrieves a specified matter.
operationId: GetMatterById
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Matter' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Matter'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Matters
summary: Update a matter
description: "Updates a specified matter.\r\n \r\nThe following actions are currently not supported:\r\n\
\ \r\n- `clientIds` cannot be modified\r\n \r\n- `otherSideIds` cannot be modified\r\n\r\n-\
\ `Matter` cannot be converted back to `Lead`"
operationId: UpdateMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/MatterDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the matter to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- Matters
summary: Patch a matter
description: "Patches a specified matter.\r\n \r\nNote: This endpoint can also be used to update a `Lead`,\
\ convert `Lead` to `Matter` and change the `Lead`/`Matter` type.\r\n \r\nSee `Matters` documentation for\
\ more details on how to use this.\r\n\r\nThe following actions are not supported:\r\n\r\n- `items` cannot be updated\
\ where either `clientIds` and/or `otherSideIds` are being updated\r\n \r\n- `items` cannot be updated\
\ when converting a `Lead` to `Matter` or changing the `Lead`/`Matter` type\r\n \r\n- `clientRole` cannot\
\ be updated, unless converting a `Lead` to `Matter` or changing the `Lead`/`Matter` type\r\n \r\n- `Matter`\
\ cannot be converted back to `Lead`\r\n \r\n- `splitOriginatingStaffSettings` cannot be updated without\
\ also providing `originatingStaffIds` in the same PATCH request\r\n \r\n- `personAssistingStaffIds` cannot\
\ contain `personAssistingStaffId`\r\n \r\n- `originatingStaffIds` cannot contain `originatingStaffId`\r\
\n \r\n- If split originating staff settings are enabled, `originatingStaffIds` and `originatingStaffId`\
\ cannot be updated\r\n \r\n- When updating via `items`, client role items and their sub-items must contain\
\ at least one item (cannot be empty), while non-client role items and their sub-items can be empty arrays to remove\
\ all items"
operationId: PatchMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/MatterDto2'
application/json:
schema:
$ref: '#/components/schemas/MatterDto2'
application/*+json:
schema:
$ref: '#/components/schemas/MatterDto2'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the matter to be patched.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Matters
summary: Delete a matter
description: Deletes a specified matter.
operationId: DeleteMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the matter to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/tags:
get:
tags:
- Matters
summary: Get matter tags
operationId: GetMatterTagsByMatterId
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a collection of 'MatterTag' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterTagCollection'
'403':
description: When matter with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Matters
summary: Add tags to a matter
operationId: AddMatterTags
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
responses:
'201':
description: When request is successful. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/tags/{tagId}:
delete:
tags:
- Matters
summary: Remove tags from a matter
description: Removes the tag from the matter without deleting from the account.
operationId: DeleteMatterTag
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: tagId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/MatterTagDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When matter with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/memos:
get:
tags:
- Memos
summary: Get memos on a matter
description: Returns a list of memos on the specified matter.
operationId: GetMemos
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'Memo' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MemoPagedCollection'
post:
tags:
- Memos
summary: Create a memo on a matter
description: Creates a memo on the specified matter.
operationId: CreateMemo
parameters:
- name: matterId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/memos/{id}:
get:
tags:
- Memos
summary: Get a memo
description: Retrieves a specified memo.
operationId: GetMemoById
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Memo' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Memo'
'404':
description: When the specified memo does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Memos
summary: Update a memo
description: Updates a specified memo.
operationId: UpdateMemo
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/MemoDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified memo does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Memos
summary: Delete a memo
description: Deletes a specified memo.
operationId: DeleteMemo
parameters:
- name: matterId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the memo to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified memo does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/notifications/{id}:
get:
tags:
- Notifications
summary: Get a notification
description: Retrieves a specified notification.
operationId: GetNotificationById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Notification' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When notification with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When notification with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/notifications:
post:
tags:
- Notifications
summary: Create a notification
description: Creates a notification.
operationId: CreateNotification
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/NotificationDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/NotificationDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/NotificationDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/plugins/{pluginId}:
get:
tags:
- Plugins
summary: Get a plugin
description: Returns the plugin.
operationId: GetPlugin
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Plugin' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Plugin'
'404':
description: When plugin with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Plugins
summary: Update existing plugin
description: Updates a plugin with the specified plugin details.
operationId: UpdatePluginAsync
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to update plugins.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Plugins
summary: Delete existing plugin
description: Deletes an existing plugin by id.
operationId: DeletePluginAsync
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to delete plugins.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/plugins:
get:
tags:
- Plugins
summary: Get plugins
description: Returns existing plugins.
operationId: GetPlugins
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'Plugin' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/PluginPagedCollection'
post:
tags:
- Plugins
summary: Create a new plugin
description: Creates a new plugin with the specified plugin details.
operationId: CreatePluginAsync
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to create plugins.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When required resources are not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/plugins/{pluginId}/url:
post:
tags:
- Plugins
summary: Request plugin URL
description: "Requests a secure URL from the plugin's endpoint for invoking the plugin.\r\nAccepts additional key/value\
\ pairs to pass to the plugin endpoint.\r\nReserved keys (AccountId, UserId, UserEmail, MatterId, AppId, EmbedToken)\
\ cannot be included in AdditionalData."
operationId: RequestPluginUrlAsync
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginUrlRequestDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PluginUrlRequestDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PluginUrlRequestDto'
responses:
'200':
description: When request is successful. Returns the plugin URL.
content:
application/json:
schema:
type: string
'400':
description: When plugin does not return a valid URL or reserved keys are used.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: When request is not authenticated with client credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/plugins/{pluginId}/subscriptions/{id}:
get:
tags:
- Plugins
summary: Get a plugin subscription
description: Returns the plugin subscription.
operationId: GetPluginSubscription
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'PluginSubscription' object.
content:
application/json:
schema:
$ref: '#/components/schemas/PluginSubscription'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the plugin subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Plugins
summary: Unsubscribes account from plugin
description: Unsubscribes an account from the specified plugin.
operationId: DeletePluginSubscriptionAsync
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to unsubscribe from plugins.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/plugins/{pluginId}/subscriptions:
get:
tags:
- Plugins
summary: Get plugin subscriptions
description: Returns plugin subscriptions for the account.
operationId: GetPluginSubscriptions
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'PluginSubscription' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/PluginSubscriptionPagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to plugin subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When required resources are not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Plugins
summary: Subscribe account to plugin
description: Subscribes an account with the specified plugin.
operationId: CreatePluginSubscriptionAsync
parameters:
- name: pluginId
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to subscribe to plugins.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When plugin with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/portal/tasks:
post:
tags:
- Portal
summary: Creates a portal task
description: Creates a new client portal task associated with the specified matter.
operationId: CreatePortalTaskAsync
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PortalTaskDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PortalTaskDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PortalTaskDto'
required: true
responses:
'202':
description: When request is accepted. Returns the id of the task to be created.
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/portal/messages:
post:
tags:
- Portal
summary: Sends a portal message
description: "Sends a message to the specified contact on the client portal. \r\n\r\nWhen using the Client Credentials\
\ grant type, include the UserId header to impersonate\r\nthe lawyer in the firm who is sending the message."
operationId: SendPortalMessageAsync
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PortalMessageDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PortalMessageDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PortalMessageDto'
responses:
'202':
description: When request is accepted.
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/portal/tasks/{taskId}:
patch:
tags:
- Portal
summary: Patch a portal task
description: Updates a client portal task.
operationId: PatchPortalTaskAsync
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PatchPortalTaskDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PatchPortalTaskDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PatchPortalTaskDto'
responses:
'202':
description: When request is accepted. Returns the id of the task to be updated.
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the authenticated account does not have access to the matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/referraltypes:
get:
tags:
- Referral Types
summary: Get referral types
description: Returns referral types, including custom referral types.
operationId: GetReferralTypes
responses:
'200':
description: When request is successful. Returns a collection of 'ReferralType' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/ReferralTypeCollection'
/referraltypes/{id}:
get:
tags:
- Referral Types
summary: Get a referral type
description: Retrieves a specified referral type.
operationId: GetReferralTypeByIdOrName
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'ReferralType' object.
content:
application/json:
schema:
$ref: '#/components/schemas/ReferralType'
'404':
description: When referral type with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/roles/{roleId}/relationships:
get:
tags:
- Relationships
summary: Get relationships on a matter
description: Returns associated relationships for a specified matter and role group.
operationId: GetRelationshipsOnRole
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: roleId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'MatterRelationships' object.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterRelationships'
'404':
description: When the specified matter or role group does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Relationships
summary: Add relationship to a role
description: Appends a new relationship with an existing role in the specified matter.
operationId: AddAnotherRelationshipToRole
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: roleId
in: path
required: true
schema:
type: string
format: uuid
- name: Version
in: header
schema:
type: integer
format: int32
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the relationship to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an invalid relationship is provided for the specified role.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified matter or role does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/roles/{roleId}/relationships/{id}:
get:
tags:
- Relationships
summary: Get relationship on a role
description: Returns a relationship with a specified role in a matter.
operationId: GetRelationshipOnRole
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: roleId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Relationship' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Relationship'
'404':
description: When the specified matter, role group or role (within the specified role group) does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Relationships
summary: Update a relationship
description: Updates a specified relationship on a matter.
operationId: UpdateRelationship
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: roleId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RelationshipDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the relationship to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When the specified matter, role or relationship does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Relationships
summary: Remove relationship from a role in a matter.
description: Removes a relationship from a role in a matter.
operationId: RemoveRelationshipFromRole
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: roleId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: Version
in: header
schema:
type: integer
format: int32
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the relationship to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When matter, role or relationship does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/roles:
get:
tags:
- Roles
summary: Get roles on a matter
description: Returns associated roles for a specified matter.
operationId: GetRolesOnMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'MatterRoles' object.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterRoles'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Roles
summary: Add role to a matter
description: Appends a new role in the specified matter.
operationId: AddAnotherRoleToMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: Version
in: header
schema:
type: integer
format: int32
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the role to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an invalid role is provided for the specified matter.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/matters/{matterId}/roles/{id}:
get:
tags:
- Roles
summary: Get role on a matter
description: Returns a role in a specified matter.
operationId: GetRoleOnMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Role' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Roles
summary: Update role on a matter
description: Updates a specified role on a matter.
operationId: UpdateRole
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RoleDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the role to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When the specified matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Roles
summary: Remove role from a matter
description: Removes a specified role from a matter.
operationId: RemoveRoleFromMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: Version
in: header
schema:
type: integer
format: int32
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the role to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When matter does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/search/files:
post:
tags:
- Search
summary: Search files with advanced filters
description: Performs a full-account file search and returns files matching the provided query, paging options and filters.
operationId: SearchFilesAsync
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/FileSearchRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/FileSearchRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/FileSearchRequest'
responses:
'200':
description: Returns the matching files.
content:
application/json:
schema:
type: array
items: {}
'400':
description: When request body fields are invalid.
/staff:
get:
tags:
- Staff
summary: Search firm staff members
description: Retrieves a paginated list of staff members (filtered based on search parameters provided) in the firm
associated with the authenticated client.
operationId: GetStaff
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: Search
in: query
description: ' Available fields: email, name'
schema:
type: array
items:
type: string
- name: Fields
in: query
description: ' Available fields: rate'
schema:
type: string
responses:
'200':
description: When request is successful. Returns a paged collection of 'Staff' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/StaffPagedCollection'
post:
tags:
- Staff
summary: Create firm staff member
description: Creates a staff member in the firm associated with the authenticated client.
operationId: CreateStaff
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the staff member to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When request is invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/staff/{id}:
get:
tags:
- Staff
summary: Get firm staff member
description: Retrieves a staff member (based on staff id parameter provided) in the firm associated with the authenticated
client.
operationId: GetStaffById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Staff' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Staff'
'400':
description: When staff id parameter invalid or not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When staff member does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Staff
summary: Update firm staff member
description: Updates a staff member in the firm associated with the authenticated client.
operationId: UpdateStaff
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/StaffDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the staff member to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When staff member does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Staff
summary: Deletes a firm staff member
description: "Sets the staff member from the firm associated with the authenticated client as a former staff member.\r\
\n\r\nThe staff member is set as a former staff member and if they are a user, becomes a former user. User access\
\ is also disabled."
operationId: DeleteStaff
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the staff member to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When staff member does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/stages:
get:
tags:
- Stages
summary: Get stage to matter mappings in the firm
description: Returns a list of stage to matter mappings in the firm.
operationId: GetMatterStages
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns items updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
- name: LastUpdated
in: query
description: "Deprecated, use updatedSince\r\nReturns items updated since a specified time."
schema:
type: string
format: date-time
responses:
'200':
description: When request is successful. Returns a paged collection of 'MatterStage' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterStagePagedCollection'
/matters/{matterId}/stages:
get:
tags:
- Stages
summary: Get a matter stage information
description: Returns the specified matters stage information.
operationId: GetStagesOnMatter
parameters:
- name: matterId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'MatterStage' object.
content:
application/json:
schema:
$ref: '#/components/schemas/MatterStage'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the matter stage is not associated with the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When matter stage information with specified matter id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/stagesets:
get:
tags:
- Stages
summary: Get stage sets for the firm
description: Returns a list of stage sets for the firm.
operationId: GetStageSets
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: UpdatedSince
in: query
description: Returns items updated since a specified time (.net ticks representation of the UTC datetime).
schema:
type: integer
format: int64
- name: LastUpdated
in: query
description: "Deprecated, use updatedSince\r\nReturns items updated since a specified time."
schema:
type: string
format: date-time
responses:
'200':
description: When request is successful. Returns a paged collection of 'StageSet' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/StageSetPagedCollection'
/stagesets/{id}:
get:
tags:
- Stages
summary: Get a stage set
description: Returns the specified stage set.
operationId: GetStageSetById
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'StageSet' object.
content:
application/json:
schema:
$ref: '#/components/schemas/StageSet'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When stage set with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/stagesets/{stageSetId}/stages/{id}:
get:
tags:
- Stages
summary: Get a stage on a stage set
description: Return the specified stage on the stage set.
operationId: GetStageOnStageSet
parameters:
- name: stageSetId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Stage' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Stage'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When stage or stage set with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/subscriptions/paymentmethods:
get:
tags:
- Subscription Payments
summary: Get all customer payment methods
description: Returns all payment methods attached to the current account's payment customer.
operationId: GetCustomerPaymentMethodsAsync
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentMethodPagedCollection'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
x-excluded: true
post:
tags:
- Subscription Payments
summary: Add payment method
description: "Adds a new payment method to the account.\r\n\r\nImportant notes:\r\n* Can optionally set as default payment\
\ method for the entire account\r\n* Can force immediate charge for overdue invoices for all active subscriptions\r\
\n* Payment information format depends on payment system"
operationId: AddPaymentMethodAsync
requestBody:
description: Payment method details including system and payment information
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while adding payment method.
x-excluded: true
/subscriptions/{subscriptionId}/paymentmethods:
get:
tags:
- Subscription Payments
summary: Get payment methods
description: Returns the payment methods actively set on the specified subscription.
operationId: GetPaymentMethodsAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'PaymentMethod' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentMethodPagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving payment methods.
x-excluded: true
put:
tags:
- Subscription Payments
operationId: UpdateSubscriptionPaymentMethodAsync
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/SetDefaultPaymentMethodRequest'
description: Request to set or clear a subscription default payment method.
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SetDefaultPaymentMethodRequest'
description: Request to set or clear a subscription default payment method.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/SetDefaultPaymentMethodRequest'
description: Request to set or clear a subscription default payment method.
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
x-excluded: true
post:
tags:
- Subscription Payments
summary: Add payment method
description: "Adds a new payment method to the account and sets it for the specified subscription \r\n\r\nImportant\
\ notes:\r\n* Can optionally set as default payment method for the entire account, or the specified subscription\r\
\n* Can force immediate charge for overdue invoices for the specified subscription\r\n* Payment information format\
\ depends on payment system"
operationId: AddSubscriptionPaymentMethodAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
requestBody:
description: Payment method details including system and payment information
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/AddPaymentMethodRequest'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while adding payment method.
x-excluded: true
/subscriptions/{subscriptionId}/paymentmethods/{id}:
get:
tags:
- Subscription Payments
summary: Get payment method
description: Returns a specific payment method associated with a subscription.
operationId: GetPaymentMethodAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: id
in: path
description: The unique identifier of the payment method
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'PaymentMethod' object.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentMethod'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription or payment method with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving payment method.
x-excluded: true
delete:
tags:
- Subscription Payments
summary: Remove payment method
description: "Removes a payment method from a subscription.\r\n\r\nImportant notes:\r\n* Can optionally specify a new\
\ default payment method\r\n* Removing default without replacement may cause subscription to go OVERDUE"
operationId: RemovePaymentMethodAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: id
in: path
description: The ID of the payment method to remove
required: true
schema:
type: string
format: uuid
requestBody:
description: Optional request containing new default payment method ID
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/RemovePaymentMethodRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/RemovePaymentMethodRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/RemovePaymentMethodRequest'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: When subscription or payment method with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while removing payment method.
x-excluded: true
/subscriptions/paymentsystems:
get:
tags:
- Subscription Payments
summary: Get supported payment systems
description: "Returns all supported payment systems and their supported payment method types.\r\nCurrently supports:\r\
\n* STRIPE with CREDIT_CARD payment type"
operationId: GetSupportedPaymentSystemsAsync
responses:
'200':
description: When request is successful. Returns a collection of 'PaymentSystem' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentSystemCollection'
'500':
description: When an error occurs while retrieving supported payment systems.
x-excluded: true
/subscriptions/promotions:
get:
tags:
- Subscription Promotions
summary: Get all promotions
description: Returns all available promotions with their eligibility criteria and benefits.
operationId: GetPromotions
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'SubscriptionPromotion' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionPromotionPagedCollection'
'500':
description: When an error occurs while retrieving promotions.
x-excluded: true
/subscriptions/promotions/{id}:
get:
tags:
- Subscription Promotions
summary: Get promotion
description: Retrieves detailed information for a specific promotion.
operationId: GetPromotion
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'SubscriptionPromotion' object.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionPromotion'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving promotion.
x-excluded: true
/subscriptions/{subscriptionId}/promotions/{id}:
post:
tags:
- Subscription Promotions
summary: Apply promotion to subscription
description: "Applies a promotion to a subscription.\r\n\r\nImportant considerations:\r\n* Some promotions may have\
\ redemption limits per subscription\r\n* Some promotions may have duration limits\r\n* Signup promotions cannot be\
\ applied to an existing subscription\r\n* Trial promotions are tied to a single tier or add-on"
operationId: ApplyPromotionAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: id
in: path
description: The identifier of the promotion to apply
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription or promotion with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while applying promotion.
x-excluded: true
delete:
tags:
- Subscription Promotions
summary: Remove promotion from subscription
description: Removes a promotion from a subscription.
operationId: RemovePromotionAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: id
in: path
description: The identifier of the promotion to remove
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription or promotion with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while removing promotion.
x-excluded: true
/subscriptions/addons:
get:
tags:
- Subscriptions
summary: Get all add-ons
description: "Returns a list of all available add-ons with their features and pricing.\r\n\r\nUse this endpoint to display\
\ the complete catalog of available add-ons."
responses:
'200':
description: When request is successful. Returns a collection of 'AddOn' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/AddOnCollection'
'500':
description: When an error occurs while retrieving add-ons.
x-excluded: true
/subscriptions/addons/{id}:
get:
tags:
- Subscriptions
summary: Get an add-on
description: "Returns the specified product add-on with its features and pricing.\r\n\r\nUse this endpoint to retreive\
\ add-on information when only an id is available."
operationId: GetAddOnAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns an 'AddOn' object.
content:
application/json:
schema:
$ref: '#/components/schemas/AddOn'
'404':
description: When add-on with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving add-ons.
x-excluded: true
/{id}:
post:
tags:
- Subscriptions
summary: Add add-on
description: "Adds a specific add-on to a subscription.\r\n\r\nImportant considerations:\r\n* Add-ons must be compatible\
\ with the subscription's current tier\r\n* Billing will be prorated for the remaining period"
parameters:
- name: subscriptionId
in: query
description: The unique identifier of the subscription
schema:
type: string
- name: id
in: path
description: The identifier of the add-on to add
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription or add-on with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while adding the add-on.
x-excluded: true
delete:
tags:
- Subscriptions
summary: Remove add-on
description: "Removes a specific add-on from a subscription.\r\n\r\nImportant considerations:\r\n* Billing will be prorated\r\
\n* Dependent add-ons may also be removed"
parameters:
- name: subscriptionId
in: query
description: The unique identifier of the subscription
schema:
type: string
- name: id
in: path
description: The identifier of the add-on to remove
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription or add-on with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while removing the add-on.
x-excluded: true
/subscriptions/{subscriptionId}/charges:
get:
tags:
- Subscriptions
operationId: GetSubscriptionUsageCharges
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: From
in: query
description: Optional start date used to filter usage charges by created date.
schema:
type: string
format: date-time
example: '2022-04-01T00:00:00Z'
example: '2022-04-01T00:00:00Z'
- name: To
in: query
description: Optional end date used to filter usage charges by created date.
schema:
type: string
format: date-time
example: '2022-04-30T23:59:59Z'
example: '2022-04-30T23:59:59Z'
- name: Status
in: query
description: "Optional usage charge status filter.\r\n \r\nPossible values: Pending, Succeeded, Failed,\
\ Canceled, Refunded."
schema:
type: string
- name: MatterId
in: query
description: Optional matter id used to filter usage charges.
schema:
type: string
example: '123456'
example: '123456'
- name: UserId
in: query
description: Optional user id used to filter usage charges.
schema:
type: string
example: 3f44b470-5d39-41d0-a1ef-96e09e0eb5bb
example: 3f44b470-5d39-41d0-a1ef-96e09e0eb5bb
- name: ProductId
in: query
description: Optional internal product id used to filter usage charges.
schema:
type: string
example: 6b07d1fc-a7ea-4da7-966f-eaa971f0e72c
example: 6b07d1fc-a7ea-4da7-966f-eaa971f0e72c
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChargePagedCollection'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{subscriptionId}/usages/{usageId}/charges:
get:
tags:
- Subscriptions
operationId: GetUsageCharges
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: usageId
in: path
required: true
schema:
type: string
format: uuid
- name: From
in: query
description: Optional start date used to filter usage charges by created date.
schema:
type: string
format: date-time
example: '2022-04-01T00:00:00Z'
example: '2022-04-01T00:00:00Z'
- name: To
in: query
description: Optional end date used to filter usage charges by created date.
schema:
type: string
format: date-time
example: '2022-04-30T23:59:59Z'
example: '2022-04-30T23:59:59Z'
- name: Status
in: query
description: "Optional usage charge status filter.\r\n \r\nPossible values: Pending, Succeeded, Failed,\
\ Canceled, Refunded."
schema:
type: string
- name: MatterId
in: query
description: Optional matter id used to filter usage charges.
schema:
type: string
example: '123456'
example: '123456'
- name: UserId
in: query
description: Optional user id used to filter usage charges.
schema:
type: string
example: 3f44b470-5d39-41d0-a1ef-96e09e0eb5bb
example: 3f44b470-5d39-41d0-a1ef-96e09e0eb5bb
- name: ProductId
in: query
description: Optional internal product id used to filter usage charges.
schema:
type: string
example: 6b07d1fc-a7ea-4da7-966f-eaa971f0e72c
example: 6b07d1fc-a7ea-4da7-966f-eaa971f0e72c
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ChargePagedCollection'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
post:
tags:
- Subscriptions
operationId: CreateUsageChargeAsync
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: usageId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateUsageChargeRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CreateUsageChargeRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CreateUsageChargeRequest'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{subscriptionId}/charges/{id}:
get:
tags:
- Subscriptions
operationId: GetUsageCharge
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Charge'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{subscriptionId}/charges/{id}/cancel:
post:
tags:
- Subscriptions
operationId: CancelUsageChargeAsync
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CancelUsageChargeRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CancelUsageChargeRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CancelUsageChargeRequest'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/invoices:
get:
tags:
- Subscriptions
summary: Get subscription invoices
description: "Retrieves invoices for the account.\r\n \r\nInvoices are returned sorted by creation date with\
\ the most recent invoices appearing first."
operationId: GetSubscriptionInvoicesAsync
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: From
in: query
description: Search for invoices created on or after From (inclusive lower bound).
schema:
type: string
format: date-time
- name: To
in: query
description: Search for invoices created on or before To (inclusive upper bound).
schema:
type: string
format: date-time
- name: SubscriptionId
in: query
description: Search for invoices belonging to the specified internal subscription id.
schema:
type: string
responses:
'200':
description: When request is successful. Returns a collection of 'SubscriptionInvoice' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionInvoicePagedCollection'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving the subscription invoices.
x-excluded: true
/subscriptions/{subscriptionId}/invoices:
get:
tags:
- Subscriptions
summary: Get subscription invoices
description: "DEPRECATED - Use GET /subscriptions/invoices instead.\r\n\r\nRetrieves invoices for the specified subscription.\r\
\n \r\nInvoices are returned sorted by creation date with the most recent invoices appearing first."
operationId: GetSubscriptionInvoicesBackgroundsCompatibleAsync
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: limit
in: query
description: The maximum number of invoices to return.
schema:
type: integer
format: int32
default: 10
responses:
'200':
description: When request is successful. Returns a collection of 'SubscriptionInvoice' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionInvoiceCollection'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving the subscription invoices.
x-excluded: true
/subscriptions/invoices/{invoiceId}/download:
get:
tags:
- Subscriptions
summary: Download invoice PDF
description: Streams the invoice PDF retrieved from the payment provider as an attachment.
operationId: DownloadInvoiceAsync
parameters:
- name: invoiceId
in: path
description: The unique identifier of the invoice
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns the invoice PDF.
'404':
description: When the subscription or invoice does not exist, or the invoice has no PDF available (for example,
draft invoices).
content:
application/pdf:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while downloading the invoice.
x-excluded: true
/subscriptions/invoices/{invoiceId}/url:
get:
tags:
- Subscriptions
summary: Get invoice download URL
description: Returns a URL that can be used to download the invoice PDF directly from the payment provider.
operationId: GetInvoiceDownloadUrlAsync
parameters:
- name: invoiceId
in: path
description: The unique identifier of the invoice
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns an 'InvoiceDownloadUrl' object.
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceDownloadUrl'
'404':
description: When the subscription or invoice does not exist, or the invoice has no PDF available (for example,
draft invoices).
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving the invoice URL.
x-excluded: true
/subscriptions:
get:
tags:
- Subscriptions
summary: Get subscriptions
description: "Returns a list of all available subscriptions with their current status and details.\r\n\r\nThe response\
\ includes:\r\n* Subscription IDs\r\n* Current tier\r\n* Active add-ons\r\n* Subscription status"
operationId: GetSubscriptions
responses:
'200':
description: When request is successful. Returns a collection of 'Subscription' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionCollection'
'500':
description: When an error occurs while retrieving subscriptions.
x-excluded: true
/subscriptions/{id}:
get:
tags:
- Subscriptions
summary: Get subscription
description: "Retrieves detailed information for a specific subscription.\r\n\r\nThe response includes:\r\n* Current\
\ tier\r\n* Active add-ons\r\n* Subscription status"
operationId: GetSubscription
parameters:
- name: id
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns a 'Subscription' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving the subscription.
x-excluded: true
patch:
tags:
- Subscriptions
summary: Update subscription
description: "Updates a subscriptions tiers, add-ons, or interval.\r\n\r\nImportant considerations:\r\n* Updates cannot\
\ be made to canceled subscriptions\r\n* Billing will be prorated for the remaining period\r\n* Existing add-ons may\
\ need to be re-validated\r\n* Some features may be disabled if not available in new tier or add-ons"
operationId: UpdateSubscriptionAsync
parameters:
- name: id
in: path
description: The unique identifier of the subscription to update
required: true
schema:
type: string
requestBody:
description: The subscription update request
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateSubscriptionRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateSubscriptionRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateSubscriptionRequest'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while updating the subscription.
x-excluded: true
/subscriptions/settings:
get:
tags:
- Subscriptions
summary: Get subscription settings
description: Retrieves settings for a subscription.
operationId: GetSubscriptionSettings
responses:
'200':
description: When request is successful. Returns a 'SubscriptionSettings' object.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionSettings'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
patch:
tags:
- Subscriptions
summary: Patch subscription settings
description: Updates settings for a subscription.
operationId: PatchSubscriptionSettingsAsync
requestBody:
description: The subscription settings patch payload
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/SubscriptionSettingsDto'
application/json:
schema:
$ref: '#/components/schemas/SubscriptionSettingsDto'
application/*+json:
schema:
$ref: '#/components/schemas/SubscriptionSettingsDto'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{id}/promotions:
get:
tags:
- Subscriptions
summary: Get subscription promotions
description: Retrieves promotions available for the specified subscription.
operationId: GetSubscriptionPromotions
parameters:
- name: id
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'SubscriptionPromotion' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionPromotionPagedCollection'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while retrieving the subscription promotions.
x-excluded: true
/subscriptions/{id}/changes:
get:
tags:
- Subscriptions
summary: Get subscription changes
description: Returns a log of changes made to the subscription through the API.
operationId: GetSubscriptionChangesAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns a paged collection of 'SubscriptionAudit' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionAuditPagedCollection'
'500':
description: When an error occurs while retrieving subscription changes.
x-excluded: true
/subscriptions/{id}/preview:
post:
tags:
- Subscriptions
summary: Preview upcoming subscription charges
description: Returns a preview of upcoming subscription charges or refunds for any specified update to subscriptions
tiers, add-ons, or interval.
operationId: PreviewSubscriptionUpdateAsync
parameters:
- name: id
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
requestBody:
description: The subscription upcoming request
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/PreviewSubscriptionRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PreviewSubscriptionRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/PreviewSubscriptionRequest'
responses:
'200':
description: When request is successful. Returns a 'SubscriptionPreview' object.
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionPreview'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while updating the subscription.
x-excluded: true
/subscriptions/{id}/cancel:
patch:
tags:
- Subscriptions
summary: Cancel subscription
description: "Cancels a subscription using the supplied cancellation request.\r\n\r\nSupported cancellation types:\r\
\n* PeriodEnd - Cancel subscription at the end of the billing cycle\r\n* Immediate - Cancel subscription immediately\r\
\n* Date - Cancel at specified 'CancelAt' date\r\n\r\nIf not supplied, PeriodEnd is used and the subscription is cancelled\
\ at the end of the billing cycle.\r\n\r\nDefault behaviour:\r\n* If the subscription is trialing a tier, the tier\
\ is reverted to the previous tier at the end of the trials duration. This is only supported with PeriodEnd CancellationType.\r\
\n* If the subscription is trialing add-on(s), the add-on is removed at the end of the trials duration. This is only\
\ supported with PeriodEnd CancellationType.\r\n\r\nImportant considerations:\r\n* If 'cancelSubscription' is specified\
\ and set to 'true', the default behaviour specified above is ignored and the cancellation is applied directly on\
\ the subscription."
operationId: CancelSubscriptionAsync
parameters:
- name: id
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/CancelSubscriptionRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CancelSubscriptionRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/CancelSubscriptionRequest'
responses:
'200':
description: When request is successful. Returns a 'CancellationResponse' object.
content:
application/json:
schema:
$ref: '#/components/schemas/CancellationResponse'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while canceling the subscription.
x-excluded: true
/subscriptions/{id}/resume:
patch:
tags:
- Subscriptions
summary: Resume subscription
description: "Resumes a subscription that is pending cancellation or is already canceled.\r\n\r\nIf the subscription\
\ is in a CANCELED state:\r\n * An immediate charge for the subscription amount will be trigered.\r\n * If the charge\
\ is unsuccessful, the subscription will be moved to PASTDUE status until a charge is successful.\r\n * If all charge\
\ retry attempts fail, the subscription will be become CANCELED once again.\r\nIf the subscription is in the PENDING\
\ cancellation state:\r\n * The existing billing cycle will remain in place"
operationId: ResumeSubscriptionAsync
parameters:
- name: id
in: path
description: The unique identifier of the subscription
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/ResumeSubscriptionRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResumeSubscriptionRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ResumeSubscriptionRequest'
responses:
'202':
description: When request is accepted. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subscription with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: When an error occurs while resuming the subscription.
x-excluded: true
/subscriptions/tiers:
get:
tags:
- Subscriptions
summary: Get all tiers
description: "Returns a list of all available product tiers with their features and pricing.\r\n\r\nUse this endpoint\
\ to:\r\n* Display available tiers to customers\r\n* Show pricing information"
responses:
'200':
description: Successfully retrieved the list of product tiers
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tier'
'500':
description: Internal server error occurred while retrieving tiers
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/tiers/{id}:
get:
tags:
- Subscriptions
summary: Get a tier
description: "Returns the specified product tier with its features and pricing.\r\n\r\nUse this endpoint to retreive\
\ tier information when only an id is available."
operationId: GetTierAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successfully retrieved the list of product tiers
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tier'
'500':
description: Internal server error occurred while retrieving tiers
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/tiers/{id}/addons:
get:
tags:
- Subscriptions
summary: Get tier add-ons
description: "Lists all available add-ons for a specific product tier.\r\n\r\nThe response includes:\r\n* Add-on details\
\ and pricing\r\n* Compatibility information\r\n* Usage limits\r\n* Dependencies or prerequisites\r\n\r\nUse this\
\ endpoint to show customers which add-ons are available for their tier."
parameters:
- name: id
in: path
description: The identifier of the product tier
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successfully retrieved the list of available add-ons
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AddOn'
'404':
description: Tier not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal server error occurred while retrieving add-ons
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{subscriptionId}/tiers/{id}:
patch:
tags:
- Subscriptions
summary: Switch product tier
description: "Changes a subscription's product tier to the specified tier.\r\n\r\nImportant considerations:\r\n* Tier\
\ changes take effect immediately\r\n* Billing will be prorated for the remaining period\r\n* Existing add-ons may\
\ need to be re-validated\r\n* Some features may be disabled if not available in new tier"
parameters:
- name: subscriptionId
in: path
description: The unique identifier of the subscription to update
required: true
schema:
type: string
- name: id
in: path
description: The identifier of the target product tier
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/SetSubscriptionTierRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SetSubscriptionTierRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/SetSubscriptionTierRequest'
responses:
'200':
description: Successfully switched the product tier
'202':
description: Accepted
'404':
description: Subscription or tier not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal server error occurred while switching tiers
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/usages:
get:
tags:
- Subscriptions
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UsageCollection'
x-excluded: true
/subscriptions/usages/{id}:
get:
tags:
- Subscriptions
operationId: GetUsageAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Usage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/subscriptions/{subscriptionId}/usages/{id}:
post:
tags:
- Subscriptions
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/SubscribeUsageRequest'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SubscribeUsageRequest'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/SubscribeUsageRequest'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
delete:
tags:
- Subscriptions
parameters:
- name: subscriptionId
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-excluded: true
/tasks/{taskId}/subtasks/{id}:
get:
tags:
- Tasks
summary: Get a subtask
description: Retrieves a specified subtask.
operationId: GetSubTaskById
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'SubTask' object.
content:
application/json:
schema:
$ref: '#/components/schemas/SubTask'
'403':
description: When subtask with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subtask with specified task id and subtask id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Tasks
summary: Update a subtask
description: Updates a specified subtask of a specified task.
operationId: UpdateSubTask
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the subtask to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When subtask with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subtask with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Tasks
summary: Delete a subtask
description: Deletes a specified subtask of a specified task.
operationId: DeleteSubTask
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the subtask to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When subtask with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subtask with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/tasks/{taskId}/subtasks:
get:
tags:
- Tasks
summary: Get subtasks
description: Returns a list of subtasks for a specified task if associated with the authenticated client.
operationId: GetSubTasks
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a list of 'SubTask' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/SubTaskCollection'
'403':
description: When subtask with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When subtask with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Tasks
summary: Create a subtask
description: Creates a subtask for a specified task.
operationId: CreateSubTask
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/SubTaskDto'
description: Data transfer object for a subtask.
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the subtask to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When a subtask cannot be created for the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/tasks/{taskId}/documents:
get:
tags:
- Tasks
summary: Get task documents
description: Returns a list of document links for the specified task, if associated with the authenticated client.
operationId: GetTaskDocuments
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a list of 'Link' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/TaskDocumentCollection'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Tasks
summary: Create a task document
description: Links the specified document to the specified task.
operationId: CreateTaskDocument
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDocumentDto'
description: Data transfer object for a task document.
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDocumentDto'
description: Data transfer object for a task document.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDocumentDto'
description: Data transfer object for a task document.
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the link to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified task id and/or document id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/tasks/{taskId}/documents/{id}:
get:
tags:
- Tasks
summary: Get a task document
description: Retrieves the specified task document for the specified task.
operationId: GetTaskDocumentById
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Link' object.
content:
application/json:
schema:
$ref: '#/components/schemas/TaskDocument'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified task id and/or document id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Tasks
summary: Delete a task document
description: Unlinks the specified document from the specified task.
operationId: DeleteTaskDocument
parameters:
- name: taskId
in: path
required: true
schema:
type: string
format: uuid
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the task document to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified task id and/or document id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/tasks/{id}:
get:
tags:
- Tasks
summary: Get a task
description: Retrieves a specified task.
operationId: GetTaskById
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'Task' object.
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Tasks
summary: Update a task
description: Updates a specified task.
operationId: UpdateTask
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the task to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Tasks
summary: Delete a task
description: Deletes a specified task.
operationId: DeleteTask
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the task to be deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'403':
description: When task with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When task with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/tasks:
get:
tags:
- Tasks
summary: Get tasks
description: Returns a list of tasks.
operationId: GetTasks
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
- name: MatterId
in: query
description: Filter by tasks that are assigned to the specified matter id..
schema:
type: string
example: 1bf55840-cba3-4f8a-8c0f-66082692e493
example: 1bf55840-cba3-4f8a-8c0f-66082692e493
- name: IsCompleted
in: query
description: Filter by tasks tasks that have been completed. Leave blank if
schema:
type: boolean
example: true
example: true
- name: UpdatedSince
in: query
description: "Filter by tasks updated since a specified time (.net ticks representation of the UTC datetime). Cannot\
\ be used in conjunction with `LastUpdated`.\r\n\r\nThis field will not be supported in future, please use LastUpdated\
\ instead."
schema:
type: integer
format: int64
example: 637873555398585000
example: 637873555398585000
- name: LastUpdated
in: query
description: Filter by last updated date of a task. Cannot be used in conjunction with `UpdatedSince`.
schema:
type: string
format: date-time
example: '2022-04-23T14:00:00Z'
example: '2022-04-23T14:00:00Z'
responses:
'200':
description: When request is successful. Returns a list of 'Task' objects.
content:
application/json:
schema:
$ref: '#/components/schemas/TaskPagedCollection'
'403':
description: When tasks cannot be returned for the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Tasks
summary: Create a task
description: Creates a task.
operationId: CreateTask
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/TaskDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the task to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When a task cannot be created for the authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/users/{id}:
get:
tags:
- Users
summary: Get a user
description: Retrieves a specified user.
operationId: GetUserByIdAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: When request is successful. Returns a 'User' object.
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When user with specified id is not associated with authenticated client.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: When user with specified id does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Users
summary: Remove a user
description: "Removes a user.\r\n \r\nUser must belong to the specified account."
operationId: DeleteUserAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the user to be removed.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the user is not associated to the specified account.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/users:
post:
tags:
- Users
summary: Create a user
description: "Creates a user.\r\n\r\nSends an email with a generated password if the password is missing."
operationId: CreateUserAsync
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UserDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UserDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the user to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When user or password validation fails.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/users/{id}/invite:
post:
tags:
- Users
summary: Resend a user invitation
description: "Resends an invitation email with a temporary password for the specified user.\r\n\r\nThe user must exist\
\ and belong to the specified account when specifying id.\r\nOptionally invite a user using a email address instead\
\ of user id. Use a default id of all zeros when posting email address payload.\r\nEmail address invites are only\
\ available to client credential grants."
operationId: InviteUserAsync
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/InviteUserDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/InviteUserDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/InviteUserDto'
responses:
'202':
description: When request is accepted. Returns a hypermedia 'Link' object of the user to be invited.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When the user is not associated to the specified account.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/webhooks/types:
get:
tags:
- Webhooks
summary: Get event types
description: Returns the available webhook event types.
operationId: GetEventTypes
responses:
'200':
description: When request is successful. Returns the available event types.
content:
application/json:
schema:
$ref: '#/components/schemas/StringCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/webhooks:
get:
tags:
- Webhooks
summary: Get webhook subscriptions
description: Returns existing webhook subscriptions.
operationId: GetSubscriptions
parameters:
- name: Offset
in: query
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
- name: Limit
in: query
schema:
maximum: 500
minimum: 1
type: integer
format: int32
responses:
'200':
description: When request is successful. Returns existing webhook subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSubscriptionPagedCollection'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
post:
tags:
- Webhooks
summary: Create new webhook subscription
description: Creates a new webhook subscription with the specified subscription details.
operationId: CreateSubscription
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
responses:
'200':
description: When request is successful. Returns the new webhook subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSubscription'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/webhooks/{id}:
get:
tags:
- Webhooks
summary: Get a webhook subscription
description: Returns the webhook subscription.
operationId: GetSubscription
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Returns the webhook subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSubscription'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- Webhooks
summary: Update a webhook subscription
description: Updates a webhook subscription with the specified subscription details.
operationId: UpdateSubscription
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
application/json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/WebhookSubscriptionDto'
responses:
'200':
description: When request is successful. Returns updated webhook subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSubscription'
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: When webhook subscription with specified id is not associated with authenticated client.
'404':
description: When the webhook subscription is not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
delete:
tags:
- Webhooks
summary: Deletes a webhook subscription
description: Deletes and unsubscribes from the specified webhook subscription.
operationId: DeleteSubscription
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Deletes the webhook subscription.
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/webhooks/{id}/notify:
post:
tags:
- Webhooks
summary: Notify a webhook subscription
description: "Notifies a webhook subscription with a 'noop' event type.\r\n \r\nUsed for testing purposes."
operationId: Notify
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: When request is successful. Notifies the webhook subscription.
'400':
description: When an unsupported request is made.
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
components:
schemas:
AccountState:
enum:
- 0
- 1
type: integer
format: int32
BankAccount:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the bank account.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
type:
type: string
description: The type of the bank account (Operating, Trust, Credit, ControlledMoney).
example: Trust
status:
allOf:
- $ref: '#/components/schemas/AccountState'
description: The status of the account (Open, Closed).
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: "The Matter associated to the account. \r\n\r\nApplies to 'ControlledMoney' accounts only."
nullable: true
accountType:
type: integer
description: "The type of the bank account (Operating = 0, Trust = 1, Credit = 2, ControlledMoney = 3).\r\n\r\n\
This field is deprecated and scheduled for removal - use the Type field instead."
format: int32
example: 0
accountName:
type: string
description: Account Name.
nullable: true
example: John Smith
accountNumber:
type: string
description: Account Number.
nullable: true
example: '10436489'
bankName:
type: string
description: Bank Name.
nullable: true
example: Commonwealth Bank
branchNumber:
type: string
description: Branch Number.
nullable: true
example: '062201'
branchName:
type: string
description: Branch Name.
nullable: true
example: Sydney
balance:
type: number
description: Total balance of the bank account.
format: double
example: 1000
contactBalances:
type: array
items:
$ref: '#/components/schemas/BankAccountContactBalance'
description: "List of contact balances.\r\n\r\nIf balances are stored by matter, not by contact, then there can\
\ be\r\na contact balance with no contact id. In this case, MatterBalances are used instead.\r\n\r\nOnly supported\
\ in US."
nullable: true
matterBalances:
type: array
items:
$ref: '#/components/schemas/BankAccountMatterBalance'
description: "List of matter balances.\r\n\r\nA matter balance will be equal to the sum of all contact balances\
\ with the same MatterId."
nullable: true
additionalProperties: false
BankAccountCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/BankAccount'
nullable: true
additionalProperties: false
BankAccountContactBalance:
type: object
properties:
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated matter.
nullable: true
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated contact.
nullable: true
balance:
type: number
description: The balance belonging for the specified matter contact.
format: double
example: 1000
protectedBalance:
type: number
description: The protected balance for the specified matter and contact.
format: double
example: 1000
availableBalance:
type: number
description: "The available balance for the specified matter and contact.\r\n \r\nThis value is calculated\
\ as the total balance minus the protected balance."
format: double
example: 1000
lastUpdated:
type: string
description: Date and time that the balance was last updated.
format: date-time
nullable: true
additionalProperties: false
BankAccountMatterBalance:
type: object
properties:
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated matter.
nullable: true
balance:
type: number
description: The balance belonging for the specified matter.
format: double
example: 1000
protectedBalance:
type: number
description: The protected balance for the specified matter.
format: double
example: 1000
availableBalance:
type: number
description: "The available balance for the specified matter.\r\n \r\nThis value is calculated as the\
\ total balance minus the protected balance."
format: double
example: 1000
unpresentedChequesBalance:
type: number
description: "Balance of the unpresented cheques for this matter. A cheque is considered \r\nunpresented if the\
\ related transaction has not been reconciled. If this balance is not zero,\r\nsome actions on the matter are\
\ restricted (e.g. closing or cancelling the matter)."
format: double
example: 0
lastUpdated:
type: string
description: Date and time that the balance was last updated.
format: date-time
nullable: true
additionalProperties: false
BankAccountMatterBalancePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/BankAccountMatterBalance'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Link:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
additionalProperties: false
ProblemDetails:
type: object
properties:
type:
type: string
nullable: true
title:
type: string
nullable: true
status:
type: integer
format: int32
nullable: true
detail:
type: string
nullable: true
instance:
type: string
nullable: true
additionalProperties: {}
ProtectFundsDto:
required:
- amount
- effectiveDate
- matterId
type: object
properties:
matterId:
minLength: 1
type: string
description: Unique identifier of the associated matter. Required.
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
contactId:
type: string
description: Unique identifier of the associated contact. Required in US only.
nullable: true
example: 18c05819-c321-4907-800c-d5a608729c5a
reason:
type: string
description: Reason for protecting the funds.
nullable: true
example: Court order requiring protection of funds
effectiveDate:
type: string
description: Date of protecting the funds.
format: date-time
amount:
minimum: 0.01
type: number
description: The amount to protect in dollars. Limited to 2 decimal places (cents).
format: double
example: 100.5
additionalProperties: false
ProtectedAccountBalance:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the protection record.
nullable: true
example: p1
bankAccount:
allOf:
- $ref: '#/components/schemas/Link'
description: The bank account where the protection was applied.
nullable: true
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated matter.
nullable: true
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated contact (US only).
nullable: true
amount:
type: number
description: The amount protected in dollars. Limited to 2 decimal places (cents).
format: double
example: 100.5
reason:
type: string
description: Reason for protecting the funds.
nullable: true
example: Court order requiring protection of funds
effectiveDate:
type: string
description: Date the protection took effect.
format: date-time
example: '2024-01-15T00:00:00Z'
timestamp:
type: string
description: Timestamp when the protection was created.
format: date-time
example: '2024-01-15T10:30:00Z'
isProtected:
type: boolean
description: True if the funds are currently protected.
example: true
userId:
type: string
description: Unique identifier of the user who protected the funds.
nullable: true
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
unprotectingUserId:
type: string
description: Unique identifier of the user who unprotected the funds (if applicable).
nullable: true
example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
lastUpdated:
type: string
description: Timestamp when the protection was last updated (e.g. protected or unprotected).
format: date-time
example: '2024-01-15T10:30:00Z'
additionalProperties: false
Requisition:
type: object
properties:
id:
type: string
description: Requisition ID if requisition requires approval.
nullable: true
example: 18c05819-c321-4907-800c-d5a608729c5a
status:
type: string
description: Status of the requisition (e.g., Pending, Approved).
example: Approved
protectedBalance:
type: number
description: Protected balance after the requisition.
format: double
example: 1000
availableBalance:
type: number
description: Available balance after the requisition.
format: double
example: 5000
totalBalance:
type: number
description: Total balance after the requisition.
format: double
example: 6000
pdfPaymentDetail:
type: string
description: Link to the PDF payment detail document.
nullable: true
additionalProperties: false
RequisitionDto:
required:
- amount
- matterId
- payeeId
- source
type: object
properties:
matterId:
minLength: 1
type: string
description: Unique identifier of the associated matter. Required.
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
approverUserId:
type: string
description: "Approver user ID.\r\n\r\nCannot be the same user ID as the user making the requisition request. If\
\ provided, must be a valid user ID in the system.\r\n\r\nOptional. If not provided, default approver will be\
\ used."
nullable: true
example: 18c05819-c321-4907-800c-d5a608729c5a
payorId:
type: string
description: Unique identifier of the Payor/Contact ID. Required in US region only.
nullable: true
example: 18c05819-c321-4907-800c-d5a608729c5a
payeeId:
minLength: 1
type: string
description: Unique identifier of the person or organisation being paid. Required.
example: 18c05819-c321-4907-800c-d5a608729c5a
source:
minLength: 1
type: string
description: "Payment source. Required.\r\nPossible values:\r\n- \"Bank Transfer\" - always available\r\n- \"Bank\
\ Check\" - available in AU and UK only\r\n- \"Trust Check\" - available in AU and UK only\r\n- \"Direct Debit\"\
\ - available in AU and UK only\r\n- \"Check\" - available in US only"
example: Bank Transfer
reference:
type: string
description: Payment reference.
nullable: true
example: REF123456
amount:
minimum: 0.01
type: number
description: The payment amount in dollars. Limited to 2 decimal places (cents).
format: double
example: 100.5
effectiveDate:
type: string
description: Date of requisition.
format: date-time
accountName:
type: string
description: Account name. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and
transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).
nullable: true
example: John Doe
bsb:
type: string
description: BSB (Bank State Branch). Required when Source is an electronic payment ('Bank Transfer' or 'Direct
Debit') and transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).
nullable: true
example: '123456'
accountNumber:
type: string
description: Account number. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and
transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).
nullable: true
example: '12345678'
organizationOrCompanyName:
type: string
description: Organization or company name. Required when Source is an electronic payment ('Bank Transfer' or 'Direct
Debit') and transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).
nullable: true
example: ACME Corporation
billerCode:
type: string
description: Biller code. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and
transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).
nullable: true
example: '12345'
billerReference:
type: string
description: Biller reference. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit')
and transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).
nullable: true
example: REF123456
reason:
type: string
description: Reason for the payment. Free format string.
nullable: true
example: Payment for services rendered
internalNote:
type: string
description: Internal note. Free format string.
nullable: true
example: Internal note about this payment
additionalProperties: false
Transaction:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the transaction.
nullable: true
example: 64818ee0-c7b4-46ec-862e-514d8b29540a
payorName:
type: string
description: The name of the associated contact.
nullable: true
example: John Smith
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated matter.
nullable: true
payor:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated contact that paid the funds.
nullable: true
bankAccount:
allOf:
- $ref: '#/components/schemas/Link'
description: The bank account where the transaction took place.
nullable: true
type:
type: string
description: "The type of the transaction.\r\n\r\nPossible values:\r\n Deposit, DepositReversal, InvoicePayment,\
\ InvoicePaymentReversal, \r\n VendorPayment, VendorPaymentReversal Transfer, \r\n BankFees, BankFeesReversal,\
\ Interest, InterestReversal."
nullable: true
example: Deposit
amount:
type: number
description: The amount of the transaction in dollars. Limited to 2 decimal places (cents).
format: double
example: 102.65
enteredDate:
type: string
description: Date the transaction was entered.
format: date-time
effectiveDate:
type: string
description: Date the transaction took effect.
format: date-time
reference:
type: string
description: Reference for the transaction.
nullable: true
reason:
type: string
description: Reason for the transaction.
nullable: true
description:
type: string
description: Description of the transaction.
nullable: true
note:
type: string
description: Note for the transaction (for internal use).
nullable: true
reversed:
type: boolean
description: True if this transaction has been reversed.
example: true
reversedToTransaction:
allOf:
- $ref: '#/components/schemas/Link'
description: The transaction that was created as a result of reversing this transaction.
nullable: true
reversedFromTransaction:
allOf:
- $ref: '#/components/schemas/Link'
description: The transaction that was recversed to create this transaction.
nullable: true
additionalProperties: false
TransactionDto:
type: object
properties:
matterId:
type: string
description: Unique identifier of the associated matter.
nullable: true
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
payorId:
type: string
description: Unique identifier of the associated contact.
nullable: true
type:
type: string
description: "The type of the transaction.\r\n\r\nPossible values: Deposit."
nullable: true
example: Deposit
amount:
type: number
description: The amount of the transaction in dollars. Limited to 2 decimal places (cents).
format: double
example: 102.65
effectiveDate:
type: string
description: Date of the transaction.
format: date-time
reference:
type: string
description: Reference for the transaction.
nullable: true
reason:
type: string
description: Reason for the transaction.
nullable: true
description:
type: string
description: Description of the transaction.
nullable: true
note:
type: string
description: Note for the transaction (for internal use).
nullable: true
additionalProperties: false
UnprotectFundsDto:
type: object
properties:
amount:
minimum: 0.01
type: number
description: "The amount to unprotect in dollars. Limited to 2 decimal places (cents).\r\n \r\nThis value\
\ must exactly match the originally protected amount.\r\nPartial unprotect is not supported - the full protected\
\ amount must be unprotected.\r\n \r\nIf not specified, the full protected amount will be unprotected\
\ automatically.\r\nSpecifying this value provides validation to ensure you're unprotecting the expected amount."
format: double
nullable: true
example: 50.25
additionalProperties: false
Activity:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the activity.
nullable: true
example: 23d2a4bc-8529-462e-8560-dfbf4fa24e49
versionId:
type: string
description: Unique version identifier of the activity.
nullable: true
example: 23d2a4bc-8529-462e-8560-dfbf4fa24e49
updatedByUserId:
type: string
description: Unique identifier of the user that last updated the activity.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
type:
allOf:
- $ref: '#/components/schemas/EntryType'
description: "Type of the activity.\r\n\r\nPossible values: Fixed = '0', Time = '1', Expense = '2'"
example: 0
description:
type: string
description: Description of the activity.
nullable: true
example: Contract review
code:
type: string
description: Code of the activity.
nullable: true
example: CR
isBillable:
type: boolean
description: True if the activity is billable.
example: true
rateType:
allOf:
- $ref: '#/components/schemas/ActivityRateType'
description: "The activity rate type.\r\n\r\nPossible values: UseDefaultStaffRate = '0', OverrideRateForAllStaff\
\ = '1', OverrideRatePerStaff = '2'"
example: 2
rate:
type: number
description: "Rate of the activity in dollars.\r\n\r\nIf set, rate type must be OverrideRateForAllStaff"
format: double
example: 23.2
quantity:
type: number
description: "Quantity of the activity. This is the default value used when creating an expense or time-based fee.\r\
\n\r\nFor type 'Expense', this field represents the quantity of the expense in units.\r\nFor type 'Time', this\
\ field represents the duration of in minutes, divided by 100,\r\ne.g. for 1 hour duration, quantity is 0.6, which\
\ is 60 minutes divided by 100.\r\n\r\nApplies only for 'Time' and 'Expense' types. Not applicable for activity\
\ type 'Fixed'."
format: double
example: 0.6
taxInclusive:
type: boolean
description: "If true, the amount is GST inclusive, otherwise GST exclusive. Only applicable in AU.\r\n\r\nGST inclusive\
\ means: Amount exc. GST = Amount - GST, Amount inc. GST = Amount.\r\n\r\nGST exclusive means: Amount exc. GST\
\ = Amount, Amount inc. GST = Amount + GST."
example: true
taxExempt:
type: boolean
description: Sets tax rate to 0 for the entry (e.g. expense).
example: true
taxZeroRated:
type: boolean
description: Indicates the entry is zero-rated for tax purposes. Mutually exclusive with other tax settings.
example: false
taxOutOfScope:
type: boolean
description: Indicates the entry is out of scope for tax purposes. Mutually exclusive with other tax settings.
example: false
isDeleted:
type: boolean
description: True if the activity is deleted.
example: true
inputTaxRate:
type: number
description: Input tax rate of the activity percentage accurate to two decimal places.
format: double
nullable: true
example: 45.63
outputTaxRate:
type: number
description: Output tax rate of the activity percentage accurate to two decimal places.
format: double
nullable: true
example: 45.63
additionalProperties: false
ActivityDto:
type: object
properties:
updatedByUserId:
type: string
description: "Unique identifier of the user updating the activity.\r\n\r\nThis field is reserved for server-to-server\
\ operations."
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
type:
allOf:
- $ref: '#/components/schemas/EntryType'
description: "Type of the activity.\r\n\r\nPossible values: Fixed = '0', Time = '1', Expense = '2'"
example: 0
description:
type: string
description: Description of the activity.
nullable: true
example: Review contract
code:
type: string
description: Code of the activity. Cannot be longer than 20 characters.
nullable: true
example: RC
isBillable:
type: boolean
description: True if the activity is billable.
example: false
rateType:
allOf:
- $ref: '#/components/schemas/ActivityRateType'
description: "The activity rate type.\r\n \r\nPossible values: UseDefaultStaffRate = '0', OverrideRateForAllStaff\
\ = '1', OverrideRatePerStaff = '2'"
example: 0
rate:
type: number
description: "Rate of the activity in dollars.\r\n\r\nIf set, rateType must be OverrideRateForAllStaff"
format: double
nullable: true
example: 23.21
quantity:
type: number
description: "Quantity of the activity. This is the default value used when creating an expense or time-based fee.\r\
\n\r\nFor type 'Expense', this field represents the quantity of the expense in units.\r\nFor type 'Time', this\
\ field represents the duration of in minutes, divided by 100,\r\ne.g. for 1 hour duration, quantity is 0.6, which\
\ is 60 minutes divided by 100.\r\n\r\nApplies only for 'Time' and 'Expense' types. Not applicable for activity\
\ type 'Fixed'."
format: double
nullable: true
example: 0.6
taxInclusive:
type: boolean
description: "If true, the amount is tax inclusive, otherwise tax exclusive. Only applicable in AU and UK regions.\r\
\n\r\nTax inclusive means: Amount exc. tax = Amount - Tax, Amount inc. tax = Amount.\r\n\r\nTax exclusive means:\
\ Amount exc. tax = Amount, Amount inc. tax = Amount + Tax."
example: false
taxExempt:
type: boolean
description: "True if the activity is exempt from tax.\r\n\r\nThis field is mutually exclusive with TaxZeroRated\
\ and TaxOutOfScope."
example: false
taxZeroRated:
type: boolean
description: "True if the activity is zero-rated for tax purposes. Only supported in UK regions.\r\n\r\nThis field\
\ is mutually exclusive with TaxOutOfScope and TaxExempt."
example: false
taxOutOfScope:
type: boolean
description: "True if the activity is out of scope for tax purposes. Only supported in UK regions.\r\n\r\nThis field\
\ is mutually exclusive with TaxZeroRated and TaxExempt."
example: false
inputTaxRate:
type: number
description: "Input tax rate of the activity in a percentage accurate to two decimal places.\r\ne.g: 45.63"
format: double
nullable: true
outputTaxRate:
type: number
description: "Output tax rate of the activity percentage accurate to two decimal places.\r\ne.g: 45.63"
format: double
nullable: true
additionalProperties: false
ActivityPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Activity'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
ActivityRateType:
enum:
- 0
- 1
- 2
type: integer
description: "The activity rate type.\r\n\r\nPossible values: UseDefaultStaffRate = '0', OverrideRateForAllStaff = '1',\
\ OverrideRatePerStaff = '2'"
format: int32
EntryType:
enum:
- 0
- 1
- 2
type: integer
description: "Type of the activity.\r\n\r\nPossible values: Fixed = '0', Time = '1', Expense = '2'"
format: int32
Archive:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Matter Id.
nullable: true
example: f489b750-544e-4aa7-962e-f388b775bc14
archivedDate:
type: string
description: Date the matter was archived.
format: date-time
example: '2022-04-23T14:00:00Z'
archiveBoxNumber:
type: string
description: Archive box number.
nullable: true
example: '24'
archiveComments:
type: string
description: Archive comments.
nullable: true
example: Lot 1
archivedLocation:
type: string
description: Archived location.
nullable: true
example: Box
destroyDate:
type: string
description: Date the files of the matter were destroyed.
format: date-time
example: '2022-04-29T14:00:00Z'
isArchived:
type: boolean
description: Flag indicating if the matter is archived.
example: true
additionalProperties: false
ArchiveDto:
required:
- isArchived
type: object
properties:
archivedDate:
type: string
description: Date the matter was archived.
format: date-time
example: '2022-04-23T14:00:00Z'
archiveBoxNumber:
type: string
description: Archive box number.
nullable: true
example: '24'
archiveComments:
type: string
description: Archive comments.
nullable: true
example: Lot 1
archivedLocation:
type: string
description: Archived location.
nullable: true
example: Box
destroyDate:
type: string
description: Date the files of the matter were destroyed.
format: date-time
example: '2022-04-29T14:00:00Z'
isArchived:
type: boolean
description: Flag indicating if the matter is archived.
example: true
additionalProperties: false
BillingConfiguration:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the billing configuration.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
billingType:
allOf:
- $ref: '#/components/schemas/BillingTypeEnum'
description: "The billing type.\r\n\r\nPossible values: None = 0, Fixed Fee = 1, Fixed Fee per Appearance = 2, Time\
\ Based = 3, Contingency Dollars = 4, Contingency Percent = 5, Not Billable = 6"
example: 1
amount:
type: number
description: "The amount (currency).\r\n\r\nOnly applicable when BillingType is 'Fixed Fee', 'Fixed Fee per Apperance'\
\ or 'Time Based'."
format: double
example: 142.31
disbursementAmount:
type: number
description: "The disbursement amount (currency). \r\n\r\nOnly applicable when BillingType is 'Fixed Fee', 'Fixed\
\ Fee per Apperance' or 'Time Based'.\r\n\r\nOnly supported in AU and the UK."
format: double
example: 160
contingencyAmount:
type: number
description: "The contingency amount (percentage). \r\n\r\nOnly applicable when BillingType is 'Contingency Percent'."
format: double
example: 32
debtors:
type: array
items:
$ref: '#/components/schemas/Link'
description: The matter debtors.
nullable: true
rateSetId:
type: string
description: "The rate set id.\r\n\r\nOnly supported in AU and the UK."
nullable: true
example: '100558'
isUtbmsEnabled:
type: boolean
description: "True if Uniform Task Based Management (UTBMS) is enabled for this matter.\r\n\r\nOnly supported in\
\ the US."
example: true
ledesFirmId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) firm.\r\n\r\nOnly supported in the\
\ US."
nullable: true
example: '100558'
ledesMatterId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) matter.\r\n\r\nOnly supported in the\
\ US."
nullable: true
example: '100558'
ledesClientMatterId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) client matter.\r\n\r\nOnly supported\
\ in the US."
nullable: true
example: '100558'
ledesTimekeeperClassificationType:
allOf:
- $ref: '#/components/schemas/TimekeeperClassificationType'
description: "The associated Legal Electronic Data Exchange Standard (LEDES) classification type.\r\n \
\ \r\nPossible values: Length6 = 0, Length2 = 1, UseFirmDefault = 2.\r\n \r\nOnly supported in the\
\ US."
example: 0
additionalProperties: false
BillingConfigurationDto:
type: object
properties:
billingType:
allOf:
- $ref: '#/components/schemas/BillingTypeEnum'
description: "The billing type.\r\n\r\nPossible values: \r\nNone = 0, \r\nFixed Fee = 1, \r\nFixed Fee per Appearance\
\ = 2, \r\nTime Based = 3, \r\nContingency Dollars = 4, \r\nContingency Percent = 5, \r\nNot Billable = 6,\r\n\
ConditionalFeeAgreement = 7"
example: 1
amount:
type: number
description: "The amount (currency).\r\n\r\nOnly applicable when BillingType is 'Fixed Fee', 'Fixed Fee per Apperance',\
\ 'Contingency ($)' or 'Time Based'."
format: double
example: 142.31
contingencyAmount:
type: number
description: "The contingency amount (percentage). \r\n\r\nOnly applicable when BillingType is 'Contingency Percent'."
format: double
example: 32
disbursementAmount:
type: number
description: "The disbursement amount (currency).\r\n\r\nOnly applicable when BillingType is 'Fixed Fee', 'Fixed\
\ Fee per Apperance', 'Contingency ($)' or 'Time Based'.\r\n\r\nOnly supported in the UK."
format: double
example: 520.67
debtorIds:
type: array
items:
type: string
description: The matter debtors. Must be valid contact id(s) and a maximum of 3 debtors can be set.
nullable: true
isUtbmsEnabled:
type: boolean
description: "True if Uniform Task Based Management (UTBMS) is enabled for this matter.\r\n\r\nOnly supported in\
\ the US."
example: true
ledesFirmId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) firm.\r\n\r\nOnly supported in the\
\ US."
nullable: true
example: '100558'
ledesMatterId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) matter.\r\n\r\nOnly supported in the\
\ US."
nullable: true
example: '100558'
ledesClientMatterId:
type: string
description: "The associated Legal Electronic Data Exchange Standard (LEDES) client matter.\r\n\r\nOnly supported\
\ in the US."
nullable: true
example: '100558'
ledesTimekeeperClassificationType:
allOf:
- $ref: '#/components/schemas/TimekeeperClassificationType'
description: "The associated Legal Electronic Data Exchange Standard (LEDES) classification type.\r\n \
\ \r\nPossible values: Length6 = 0, Length2 = 1, UseFirmDefault = 2.\r\n \r\nOnly supported in the\
\ US."
example: 0
rateSetId:
type: string
description: "The RateSet Id.\r\n\r\nOnly supported in the UK."
nullable: true
example: '100558'
additionalProperties: false
BillingTypeEnum:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
type: integer
description: "The billing type.\r\n\r\nPossible values: \r\nNone = 0, \r\nFixed Fee = 1, \r\nFixed Fee per Appearance\
\ = 2, \r\nTime Based = 3, \r\nContingency Dollars = 4, \r\nContingency Percent = 5, \r\nNot Billable = 6,\r\nConditionalFeeAgreement\
\ = 7"
format: int32
TimekeeperClassificationType:
enum:
- 0
- 1
- 2
type: integer
description: "The associated Legal Electronic Data Exchange Standard (LEDES) classification type.\r\n \r\n\
Possible values: Length6 = 0, Length2 = 1, UseFirmDefault = 2.\r\n \r\nOnly supported in the US."
format: int32
Address:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: "Unit type in address (if applicable). Accepts custom values.\r\n\r\ne.g. Apartment, Unit, Flat, Villa,\
\ Suite."
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: "Street type. Accepts custom values.\r\n\r\ne.g. Street, Road, Avenue, Lane."
nullable: true
example: Street
addressLine1:
type: string
description: First line of address.
nullable: true
example: Level 1/10
addressLine2:
type: string
description: Second line of address (if applicable).
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
locality:
type: string
description: "Locality.\r\n\r\nOnly supported in the UK."
nullable: true
example: Dunkirk
county:
type: string
description: "County.\r\n\r\nOnly supported in the US and UK."
nullable: true
example: New York
country:
type: string
description: Country.
nullable: true
example: United States
poBox:
allOf:
- $ref: '#/components/schemas/PoBoxAddress'
description: PO Box details (if applicable).
nullable: true
additionalProperties: false
AddressDto:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: "Unit type in address (if applicable). Accepts custom values.\r\n\r\ne.g. Apartment, Unit, Flat, Villa,\
\ Suite."
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: "Street type. Accepts custom values.\r\n\r\ne.g. Street, Road, Avenue, Lane."
nullable: true
example: Street
addressLine1:
type: string
description: "First line of address.\r\n\r\nOnly supported in the US."
nullable: true
example: Level 1/10
addressLine2:
type: string
description: "Second line of address (if applicable).\r\n\r\nOnly supported in the US."
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
locality:
type: string
description: "Locality.\r\n\r\nOnly supported in the UK."
nullable: true
example: Dunkirk
county:
type: string
description: "County.\r\n\r\nOnly supported in the US and UK."
nullable: true
example: New York
country:
type: string
description: Country.
nullable: true
example: United States
poBox:
allOf:
- $ref: '#/components/schemas/PoBoxAddressDto'
description: "PO Box details.\r\n\r\nOnly supported in AU."
nullable: true
additionalProperties: false
AddressWithDxAddress:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: "Unit type in address (if applicable). Accepts custom values.\r\n\r\ne.g. Apartment, Unit, Flat, Villa,\
\ Suite."
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: "Street type. Accepts custom values.\r\n\r\ne.g. Street, Road, Avenue, Lane."
nullable: true
example: Street
addressLine1:
type: string
description: First line of address.
nullable: true
example: Level 1/10
addressLine2:
type: string
description: Second line of address (if applicable).
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
locality:
type: string
description: "Locality.\r\n\r\nOnly supported in the UK."
nullable: true
example: Dunkirk
county:
type: string
description: "County.\r\n\r\nOnly supported in the US and UK."
nullable: true
example: New York
country:
type: string
description: Country.
nullable: true
example: United States
poBox:
allOf:
- $ref: '#/components/schemas/PoBoxAddress'
description: PO Box details (if applicable).
nullable: true
dxAddress:
allOf:
- $ref: '#/components/schemas/DxAddress'
description: DX address details (only applicable for AUS).
nullable: true
additionalProperties: false
AddressWithDxAddressDto:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: "Unit type in address (if applicable). Accepts custom values.\r\n\r\ne.g. Apartment, Unit, Flat, Villa,\
\ Suite."
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: "Street type. Accepts custom values.\r\n\r\ne.g. Street, Road, Avenue, Lane."
nullable: true
example: Street
addressLine1:
type: string
description: "First line of address.\r\n\r\nOnly supported in the US."
nullable: true
example: Level 1/10
addressLine2:
type: string
description: "Second line of address (if applicable).\r\n\r\nOnly supported in the US."
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
locality:
type: string
description: "Locality.\r\n\r\nOnly supported in the UK."
nullable: true
example: Dunkirk
county:
type: string
description: "County.\r\n\r\nOnly supported in the US and UK."
nullable: true
example: New York
country:
type: string
description: Country.
nullable: true
example: United States
poBox:
allOf:
- $ref: '#/components/schemas/PoBoxAddressDto'
description: "PO Box details.\r\n\r\nOnly supported in AU."
nullable: true
dxAddress:
allOf:
- $ref: '#/components/schemas/DxAddressDto'
description: DX address of the company (only applicable for AUS).
nullable: true
additionalProperties: false
CitizenshipDetails:
type: object
properties:
countryOfCitizenship:
type: string
description: Country of citizenship
nullable: true
example: USA
nationality:
type: string
description: Nationality
nullable: true
example: American
languageOfInterpreter:
type: string
description: Language of interpreter
nullable: true
example: French
additionalProperties: false
CitizenshipDetailsDto:
type: object
properties:
countryOfCitizenship:
type: string
description: Country of citizenship
nullable: true
example: USA
nationality:
type: string
description: Nationality
nullable: true
example: American
languageOfInterpreter:
type: string
description: Language of interpreter
nullable: true
example: French
additionalProperties: false
Company:
type: object
properties:
name:
type: string
description: Company's name.
nullable: true
example: Brown LLC
type:
type: string
description: "Company's type.\r\n\r\nPossible values for US: 'Corporation', 'Government Agency', 'Limited Liability\
\ Company', 'Sole Proprietor', 'Partnership', 'Not-for-Profit'\r\n\r\nPossible values for AU: 'Company', 'Sole\
\ Proprietor', 'Partnership', 'Government Department'\r\n\r\nPossible values for UK: 'Company', 'Sole Trader',\
\ 'Partnership', 'Limited Liability Partnership', 'Government Department'"
nullable: true
example: Corporation
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Company's phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Company's fax details.
nullable: true
email:
type: string
description: Company's email address.
nullable: true
example: contact@brown.com
website:
type: string
description: Company's website URL.
nullable: true
example: https://www.brownllc.com
notes:
type: string
description: Additional notes for company (if applicable).
nullable: true
example: Construction company
abn:
type: string
description: "For AU: Australian Company Number (ABN) of the firm.\r\n\r\nFor UK: Company Registration Number (CRN)\
\ of the firm.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: '1234567890'
companyNumberType:
type: string
description: "Company's Australian company number type.\r\n\r\nAccepted values - ACN, ARBN\r\n\r\nOnly supported\
\ in AU."
nullable: true
example: ACN
companyNumber:
type: string
description: "Company's Australian Company Number.\r\n \r\nOnly supported in AU."
nullable: true
example: '234567890'
doingBusinessAsName:
type: string
description: "Doing Business As (DBA) name.\r\n \r\nOnly supported in US."
nullable: true
example: Brown Holdings
tradingAs:
type: string
description: "Trading As type (e.g. 'Trading As', 'Doing Business As').\r\n \r\nOnly supported in AU."
nullable: true
example: Trading As
tradingName:
type: string
description: "Trading name of the organisation.\r\n \r\nOnly supported in AU and UK."
nullable: true
example: Brown Trading Co
mailingAddress:
allOf:
- $ref: '#/components/schemas/Address'
description: Company's mailing address details.
nullable: true
businessAddress:
allOf:
- $ref: '#/components/schemas/AddressWithDxAddress'
description: Company's business address details.
nullable: true
staff:
type: array
items:
$ref: '#/components/schemas/Link'
description: Company's staff hypermedia links.
nullable: true
readOnly: true
directors:
type: array
items:
$ref: '#/components/schemas/Link'
description: Company's directors hypermedia links.
nullable: true
readOnly: true
staffIds:
type: array
items:
type: string
description: Deprecated - use Staff instead. This field may not be supported in future.
nullable: true
readOnly: true
executionOptions:
allOf:
- $ref: '#/components/schemas/ExecutionOptions'
description: "Company's execution options for document signing and VOI details.\r\n\r\nOnly supported in AU."
nullable: true
additionalProperties: false
CompanyDto:
type: object
properties:
name:
type: string
description: Company's name.
nullable: true
example: Brown LLC
type:
type: string
description: "Company's type.\r\n\r\nPossible values for US: 'Corporation', 'Government Agency', 'Limited Liability\
\ Company', 'Sole Proprietor', 'Partnership', 'Not-for-Profit'\r\n\r\nPossible values for AU: 'Company', 'Sole\
\ Proprietor', 'Partnership', 'Government Department'\r\n\r\nPossible values for UK: 'Company', 'Sole Trader',\
\ 'Partnership', 'Limited Liability Partnership', 'Government Department'"
nullable: true
example: Corporation
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Company's phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Company's fax details.
nullable: true
email:
type: string
description: Company's email address.
nullable: true
example: contact@brown.com
website:
type: string
description: Company's website URL.
nullable: true
example: https://www.brownllc.com
notes:
type: string
description: Additional notes for company (if applicable).
nullable: true
example: Recently merged with Cyberdyne Inc.
businessAddress:
allOf:
- $ref: '#/components/schemas/AddressWithDxAddressDto'
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Only applicable for USA.
nullable: true
abn:
type: string
description: "For AU: Australian Company Number (ABN) of the company.\r\n\r\nFor UK: Company Registration Number\
\ (CRN) of the company.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: '1234567890'
companyNumberType:
type: string
description: "Company's Australian company number type.\r\n\r\nPossible values: 'ACN', 'ARBN'\r\n\r\nOnly supported\
\ in AU."
nullable: true
example: ACN
companyNumber:
type: string
description: "Company's Australian Company Number.\r\n\r\nOnly supported in AU."
nullable: true
example: '234567890'
doingBusinessAsName:
type: string
description: "Doing Business As (DBA) name.\r\n \r\nOnly supported in US."
nullable: true
example: Brown Holdings
tradingAs:
type: string
description: "Trading As type (e.g. 'Trading As', 'Doing Business As').\r\n \r\nOnly supported in AU."
nullable: true
example: Trading As
tradingName:
type: string
description: "Trading name of the organisation.\r\n \r\nOnly supported in AU and UK."
nullable: true
example: Brown Trading Co
staffIds:
type: array
items:
type: string
description: List of Staff IDs for this company.
nullable: true
example:
- 73481c13-b7f8-4610-b221-aaccbf7aaade
- 18cd6029-4a9e-4b99-bae5-710a7d79a19b
directorIds:
type: array
items:
type: string
description: List of Director IDs for this company.
nullable: true
example:
- 73481c13-b7f8-4610-b221-aaccbf7aaade
- 18cd6029-4a9e-4b99-bae5-710a7d79a19b
executionOptions:
allOf:
- $ref: '#/components/schemas/ExecutionOptionsDto'
description: "Company's execution options for document signing and VOI details.\r\n\r\nOnly supported in AU."
nullable: true
additionalProperties: false
Contact:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the contact.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
externalSystemId:
type: string
description: External system id for the contact.
nullable: true
example: EXT01
versionId:
type: string
description: Version id of the record.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
person:
allOf:
- $ref: '#/components/schemas/Person'
description: Contact person details (if applicable).
nullable: true
company:
allOf:
- $ref: '#/components/schemas/Company'
description: Contact company details (if applicable).
nullable: true
trust:
allOf:
- $ref: '#/components/schemas/Trust'
description: "Contact trust details (if applicable).\r\n\r\nNote that Trust is only supported in the US. It is not\
\ available in other regions."
nullable: true
groupOfPeople:
allOf:
- $ref: '#/components/schemas/GroupOfPeople'
description: Contact group details (if applicable).
nullable: true
isDeleted:
type: boolean
description: Returns true if the contact is deleted.
example: true
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
description: Set of contact's tags.
nullable: true
additionalProperties: false
ContactDto:
type: object
properties:
externalSystemId:
type: string
description: External system id for the contact.
nullable: true
example: EXT01
person:
allOf:
- $ref: '#/components/schemas/PersonDto'
description: Contact person details (if applicable).
nullable: true
company:
allOf:
- $ref: '#/components/schemas/CompanyDto'
description: Contact company details (if applicable).
nullable: true
trust:
allOf:
- $ref: '#/components/schemas/TrustDto'
description: "Contact trust details (if applicable).\r\n\r\nOnly supported in US."
nullable: true
groupOfPeople:
allOf:
- $ref: '#/components/schemas/GroupOfPeopleDto'
description: "Contact group details (if applicable).\r\n\r\nOnly supported in US and AU."
nullable: true
isDeleted:
type: boolean
description: Contact can be restored by setting this to false.
example: false
additionalProperties: false
ContactPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Contact'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
ContactRelationDto:
type: object
properties:
relatedContactId:
type: string
description: Unique identifier of the related contact.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
businessRole:
type: string
description: "Business role of related contact.\r\n\r\nOnly applicable for companies (not trusts)."
nullable: true
example: Bookkeeper
additionalProperties: false
DeathDetails:
type: object
properties:
deathDate:
type: string
description: Contact person's date of death.
format: date-time
nullable: true
example: '2020-08-01'
isDeathDateUnknown:
type: boolean
description: Whether the person's exact date of death is known.
example: false
deathDateFrom:
type: string
description: Starting range for person's possible date of death.
format: date-time
nullable: true
example: '2020-08-01'
deathDateTo:
type: string
description: Ending range for person's possible date of death.
format: date-time
nullable: true
example: '2020-08-01'
deathPlace:
type: string
description: Contact person's place of death.
nullable: true
example: Chicago
deathState:
type: string
description: "Contact person's death state.\r\n \r\nOnly supported in AU and US."
nullable: true
example: IL
deathCountry:
type: string
description: Contact person's death country.
nullable: true
example: USA
deathCounty:
type: string
description: "Contact person's death county.\r\n \r\nOnly supported in US."
nullable: true
example: San Bernardino County
additionalProperties: false
DeathDetailsDto:
type: object
properties:
deathDate:
type: string
description: Contact person's date of death.
format: date-time
nullable: true
example: '2020-08-01'
isDeathDateUnknown:
type: boolean
description: Whether the person's exact date of death is known.
example: false
deathDateFrom:
type: string
description: Starting range for person's possible date of death.
format: date-time
nullable: true
example: '2020-08-01'
deathDateTo:
type: string
description: Ending range for person's possible date of death.
format: date-time
nullable: true
example: '2020-08-01'
deathPlace:
type: string
description: Contact person's place of death.
nullable: true
example: Chicago
deathState:
type: string
description: "Contact person's death state.\r\n \r\nOnly supported in AU and US."
nullable: true
example: IL
deathCountry:
type: string
description: Contact person's death country.
nullable: true
example: USA
deathCounty:
type: string
description: "Contact person's death county.\r\n \r\nOnly supported in US."
nullable: true
example: San Bernardino County
additionalProperties: false
DxAddress:
type: object
properties:
number:
type: string
description: Direct Exchange number (if applicable).
nullable: true
example: '376'
exchange:
type: string
description: Direct Exchange name.
nullable: true
example: DX
state:
type: string
description: State, province, or region.
nullable: true
example: NSW
additionalProperties: false
DxAddressDto:
type: object
properties:
number:
type: string
nullable: true
exchange:
type: string
nullable: true
state:
type: string
nullable: true
additionalProperties: false
ExecutionOptions:
type: object
properties:
person1:
allOf:
- $ref: '#/components/schemas/ExecutionPerson'
description: First authorized person for execution
nullable: true
person2:
allOf:
- $ref: '#/components/schemas/ExecutionPerson'
description: Second authorized person for execution
nullable: true
executingUnder127:
type: boolean
description: Indicates if executing under section 127
nullable: true
executingAuthority:
type: string
description: Executing authority details
nullable: true
sealType:
type: string
description: Seal type for execution.
nullable: true
example: WithSeal
authorisedDepositTakingInstitution:
type: boolean
description: Indicates if organization is an Authorised Deposit Taking Institution
nullable: true
poaRegistrationNumber:
type: string
description: Power of Attorney registration number
nullable: true
attorneyNames:
type: array
items:
type: string
description: List of attorney names
nullable: true
executionType:
type: string
description: Execution type.
nullable: true
example: JointDirectors
additionalProperties: false
description: "Execution options for organizations\r\n\r\nOnly supported in AU."
ExecutionOptionsDto:
type: object
properties:
person1:
allOf:
- $ref: '#/components/schemas/ExecutionPersonDto'
description: First authorized person for execution
nullable: true
person2:
allOf:
- $ref: '#/components/schemas/ExecutionPersonDto'
description: Second authorized person for execution
nullable: true
executingUnder127:
type: boolean
description: Indicates if executing under section 127
nullable: true
executingAuthority:
type: string
description: Executing authority details
nullable: true
sealType:
type: string
description: "Seal type for execution.\r\n\r\nPossible values: 'WithSeal', 'WithoutSeal', 'Unset'"
nullable: true
example: WithSeal
authorisedDepositTakingInstitution:
type: boolean
description: Indicates if organization is an Authorised Deposit Taking Institution
nullable: true
poaRegistrationNumber:
type: string
description: Power of Attorney registration number
nullable: true
attorneyNames:
type: array
items:
type: string
description: List of attorney names
nullable: true
example:
- John Smith
- Jane Doe
executionType:
type: string
description: "Execution type.\r\n\r\nPossible values: 'Individual', 'SoleDirector', 'JointDirectors', 'Director',\
\ 'Secretary', 'Authorised', 'Other', 'Unset', 'None'"
nullable: true
example: JointDirectors
additionalProperties: false
description: "Execution options for organizations (Company, Partnership, Sole Proprietor)\r\n\r\nOnly supported in AU."
ExecutionPerson:
type: object
properties:
name:
type: string
description: Person's full name
nullable: true
example: John Smith
address:
allOf:
- $ref: '#/components/schemas/Address'
description: Person's address
nullable: true
personType:
type: string
description: "Person type for execution.\r\n\r\nOnly supported in AU."
nullable: true
example: Director
selectedOfficeHeld:
type: string
description: Office held by the person.
nullable: true
example: Director
voiDetails:
allOf:
- $ref: '#/components/schemas/VoiDetails'
description: Verification of identity details for this person
nullable: true
additionalProperties: false
description: "Represents an authorized person for organization execution\r\n\r\nOnly supported in AU."
ExecutionPersonDto:
type: object
properties:
name:
type: string
description: Person's full name
nullable: true
example: John Smith
address:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Person's address
nullable: true
personType:
type: string
description: "Person type for execution.\r\n\r\nPossible values: 'Director', 'Secretary', 'SoleDirectorAndSecretary',\
\ 'AuthorisedSignatory', 'Other', 'Unset'"
nullable: true
example: Director
selectedOfficeHeld:
type: string
description: "Office held by the person.\r\n\r\nPossible values: 'Director', 'Secretary', 'SoleDirectorAndSecretary',\
\ 'Partner', 'AuthorisedRepresentative', 'Other', 'Unset'"
nullable: true
example: Director
additionalProperties: false
description: "Represents an authorized person for organization execution\r\n\r\nOnly supported in AU."
GroupOfPeople:
type: object
properties:
people:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of contact person hypermedia links.
nullable: true
residentialAddress:
allOf:
- $ref: '#/components/schemas/Address'
description: Contact group's residential address details.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/Address'
description: "Contact group's mailing address details.\r\n \r\nOnly supported in the US."
nullable: true
name:
type: string
description: Names of the people in the group. Limited to the first 5 names.
nullable: true
example: John Smith & Jane Citizen
additionalProperties: false
GroupOfPeopleDto:
type: object
properties:
peopleIds:
type: array
items:
type: string
description: List of contact person Ids.
nullable: true
example:
- b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
- 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
residentialAddress:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Contact group's residential address details.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: "Contact group's mailing address details.\r\n \r\nOnly supported in the US."
nullable: true
additionalProperties: false
IdentificationDetailsDto:
type: object
properties:
alienNumber:
type: string
description: "Alien number\r\nOnly supported in the US."
nullable: true
registrationAuthority:
type: string
description: "Registration authority\r\nOnly supported in the US."
nullable: true
registrationNumber:
type: string
description: "Registration number\r\nOnly supported in the US."
nullable: true
driversLicenseNumber:
type: string
description: Driver's license number
nullable: true
driversLicenseState:
type: string
description: "Driver's licence state\r\nILNSW"
nullable: true
medicareNumber:
type: string
description: Medicare number
nullable: true
nhsNumber:
type: string
description: "NHS (National Health Service) number\r\nOnly supported in UK."
nullable: true
additionalProperties: false
LinkPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Link'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
PassportDetails:
type: object
properties:
passportNumber:
type: string
description: Contact person's passport number.
nullable: true
example: AB123456
passportIssueDate:
type: string
description: Contact person's passport issue date.
format: date-time
nullable: true
example: '2010-08-01'
passportExpireDate:
type: string
description: Contact person's passport expiry date.
format: date-time
nullable: true
example: '2030-08-01'
passportIssueCountry:
type: string
description: Contact person's passport country of issue.
nullable: true
example: USA
passportIssueAuthority:
type: string
description: "Contact person's passport issuing authority.\r\n \r\nOnly supported in the UK."
nullable: true
example: HM Passport Office
additionalProperties: false
PassportDetailsDto:
type: object
properties:
passportNumber:
type: string
description: Contact person's passport number.
nullable: true
example: AB123456
passportIssueDate:
type: string
description: Contact person's passport issue date.
format: date-time
nullable: true
example: '2010-08-01'
passportExpireDate:
type: string
description: Contact person's passport expiry date.
format: date-time
nullable: true
example: '2030-08-01'
passportIssueCountry:
type: string
description: Contact person's passport country of issue.
nullable: true
example: USA
passportIssueAuthority:
type: string
description: "Contact person's passport issuing authority.\r\n \r\nOnly supported in the UK."
nullable: true
example: HM Passport Office
additionalProperties: false
Person:
type: object
properties:
title:
type: string
description: "Contact person's title. Accepts custom values.\r\n\r\ne.g. Mr, Mrs, Miss, Honourable, Judge."
nullable: true
example: Mr
firstName:
type: string
description: Contact person's first name.
nullable: true
example: John
middleName:
type: string
description: Contact person's middle name (if applicable).
nullable: true
example: Michael
lastName:
type: string
description: Contact person's last name.
nullable: true
example: Smith
nameSuffix:
type: string
description: Contact person's name suffix (if applicable).
nullable: true
example: PhD
customName:
type: string
description: Contact person's custom name to be used in letters (if applicable).
nullable: true
example: Johnny
residentialAddress:
allOf:
- $ref: '#/components/schemas/Address'
description: Contact person's residential address details.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/Address'
description: "Contact person's mailing address details.\r\n\r\nOnly supported in the US."
nullable: true
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Contact person's phone details.
nullable: true
phone2:
allOf:
- $ref: '#/components/schemas/PhoneNumberWithExtension'
description: Contact person's alternate phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: "Contact person's fax details. \r\n\r\nOnly supported in the US."
nullable: true
cell:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Contact person's mobile details.
nullable: true
email:
type: string
description: Contact person's email address.
nullable: true
example: john.smith@brown.com
notes:
type: string
description: Additional notes about contact (if applicable).
nullable: true
example: Prefers to answer work phone.
occupation:
type: string
description: Contact person's occupation.
nullable: true
example: Bookkeeper
gender:
type: string
description: "Contact person's gender.\r\n\r\nAccepted values - Male, Female, Other as well as any free text."
nullable: true
example: Male
maritalStatus:
type: string
description: "Contact person's marital status. Accepts custom values.\r\n\r\ne.g. Single, Married, Separated, Divorced,\
\ Widowed, De facto."
nullable: true
example: Single
specialNeeds:
type: string
description: "Brief description of any special needs (if applicable).\r\n\r\nOnly supported in Australia."
nullable: true
example: Wheelchair access
birthDate:
type: string
description: Contact person's date of birth.
format: date-time
nullable: true
example: '1980-07-01'
birthPlace:
type: string
description: Contact person's place of birth.
nullable: true
example: Chicago
birthState:
type: string
description: Contact person's birth state.
nullable: true
example: Illinois
birthCountry:
type: string
description: Contact person's birth country.
nullable: true
example: USA
identificationNumberType:
type: string
description: Contact person's type of identification.
nullable: true
example: Passport
identificationNumber:
type: string
description: Contact person's identification number.
nullable: true
example: PP123456789
birthFirstName:
type: string
description: Contact person's first name at birth.
nullable: true
example: James
birthMiddleName:
type: string
description: Contact person's middle name at birth.
nullable: true
example: Thomas
birthLastName:
type: string
description: Contact person's last name at birth.
nullable: true
example: Jones
previousNames:
type: string
description: Contact person's previous names.
nullable: true
example: Jane Smith
passportDetails:
allOf:
- $ref: '#/components/schemas/PassportDetails'
description: Contact person's passport details.
nullable: true
deathDetails:
allOf:
- $ref: '#/components/schemas/DeathDetails'
description: Contact person's death details.
nullable: true
correctionsReferenceNumber:
type: string
description: "Contact person's corrections reference number.\r\n\r\nOnly supported in Australia."
nullable: true
centrelinkReferenceNumber:
type: string
description: "Contact person's centrelink reference number.\r\n\r\nOnly supported in Australia."
nullable: true
citizenshipDetails:
allOf:
- $ref: '#/components/schemas/CitizenshipDetails'
description: Contact person's citizenship details.
nullable: true
utbmsDetails:
allOf:
- $ref: '#/components/schemas/UtbmsDetails'
description: "Contact's UTBMS Details.\r\n\r\nOnly supported in the US."
nullable: true
executionOptions:
allOf:
- $ref: '#/components/schemas/PersonExecutionOptions'
description: "Person's execution options including Power of Attorney and VOI details.\r\n\r\nOnly supported in AU."
nullable: true
voiDetails:
allOf:
- $ref: '#/components/schemas/VoiDetails'
description: "Person's verification of identity details.\r\n\r\nOnly supported in AU."
nullable: true
additionalProperties: false
PersonDto:
type: object
properties:
title:
type: string
description: "Contact person's title. Accepts custom values.\r\n\r\ne.g. Mr, Mrs, Miss, Honourable, Judge."
nullable: true
example: Mr
firstName:
type: string
description: Contact person's first name.
nullable: true
example: John
middleName:
type: string
description: Contact person's middle name (if applicable).
nullable: true
example: Michael
lastName:
type: string
description: Contact person's last name.
nullable: true
example: Smith
nameSuffix:
type: string
description: Contact person's name suffix (if applicable).
nullable: true
example: PhD
customName:
type: string
description: Contact person's custom name to be used in letters (if applicable).
nullable: true
example: Johnny
residentialAddress:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Contact person's residential address details.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: "Contact person's mailing address details.\r\n\r\nOnly supported in the US."
nullable: true
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Contact person's phone details.
nullable: true
phone2:
allOf:
- $ref: '#/components/schemas/PhoneNumberWithExtensionDto'
description: Contact person's alternate phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: "Contact person's fax details.\r\n\r\nOnly supported in the US."
nullable: true
cell:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Contact person's mobile details.
nullable: true
email:
type: string
description: Contact person's email address.
nullable: true
example: john.smith@brown.com
notes:
type: string
description: Additional notes about contact (if applicable).
nullable: true
example: Prefers to answer work phone.
occupation:
type: string
description: Contact person's occupation.
nullable: true
example: Bookkeeper
birthDate:
type: string
description: Contact person's date of birth.
format: date-time
nullable: true
example: '1980-07-01'
birthPlace:
type: string
description: Contact person's place of birth.
nullable: true
example: Chicago
birthState:
type: string
description: Contact person's birth state.
nullable: true
example: Illinois
birthCountry:
type: string
description: Contact person's birth country.
nullable: true
example: Australia
identificationNumberType:
type: string
description: "Contact person's type of identification.\r\n\r\ne.g. SSN, ITIN\r\n\r\nOnly supported in the US."
nullable: true
example: SSN
identificationNumber:
type: string
description: "Contact person's identification number.\r\n\r\nOnly supported in the US."
nullable: true
example: PP123456789
passportDetails:
allOf:
- $ref: '#/components/schemas/PassportDetailsDto'
description: Contact person's passport details.
nullable: true
deathDetails:
allOf:
- $ref: '#/components/schemas/DeathDetailsDto'
description: Contact person's death details.
nullable: true
gender:
type: string
description: "Contact person's gender.\r\n\r\nAccepted values - Male, Female, Other as well as any free text."
nullable: true
example: Male
maritalStatus:
type: string
description: "Contact person's marital status. Accepts custom values.\r\n\r\ne.g. Single, Married, Separated, Divorced,\
\ Widowed, De facto."
nullable: true
example: Single
specialNeeds:
type: string
description: Brief description of an special needs (if applicable).
nullable: true
example: Wheelchair access
birthFirstName:
type: string
description: Contact person's first name at birth.
nullable: true
example: James
birthMiddleName:
type: string
description: Contact person's middle name at birth.
nullable: true
example: Thomas
birthLastName:
type: string
description: Contact person's last name at birth.
nullable: true
example: Jones
previousNames:
type: string
description: Contact person's previous names.
nullable: true
example: Jane Smith
correctionsReferenceNumber:
type: string
description: "Contact person's corrections reference number.\r\n\r\nOnly supported in Australia."
nullable: true
centrelinkReferenceNumber:
type: string
description: "Contact person's centrelink reference number.\r\n\r\nOnly supported in Australia."
nullable: true
identificationDetails:
allOf:
- $ref: '#/components/schemas/IdentificationDetailsDto'
description: Contact person's identification details.
nullable: true
citizenshipDetails:
allOf:
- $ref: '#/components/schemas/CitizenshipDetailsDto'
description: Contact person's citizenship details.
nullable: true
utbmsDetails:
allOf:
- $ref: '#/components/schemas/UtbmsDetailsDto'
description: "Contact's UTBMS Details\r\n\r\nOnly supported in the US."
nullable: true
executionOptions:
allOf:
- $ref: '#/components/schemas/PersonExecutionOptionsDto'
description: "Person's execution options including Power of Attorney and VOI details.\r\n\r\nOnly supported in AU."
nullable: true
additionalProperties: false
PersonExecutionOptions:
type: object
properties:
poaType:
type: string
description: Power of Attorney type.
nullable: true
example: Enduring
poaDate:
type: string
description: Date the Power of Attorney was executed
format: date-time
nullable: true
example: '2023-05-15'
attorneyName:
type: string
description: Name of the attorney
nullable: true
example: Jane Doe
address:
allOf:
- $ref: '#/components/schemas/Address'
description: Attorney's address
nullable: true
poaRegisteredBook:
type: string
description: Power of Attorney registration book reference
nullable: true
poaRegisteredNumber:
type: string
description: Power of Attorney registration number
nullable: true
executionType:
type: string
description: Person execution type.
nullable: true
example: PowerOfAttorney
poaVoiDetails:
allOf:
- $ref: '#/components/schemas/VoiDetails'
description: Verification of identity details for the attorney (Power of Attorney)
nullable: true
additionalProperties: false
description: "Execution options for individual persons (Power of Attorney)\r\n\r\nOnly supported in AU."
PersonExecutionOptionsDto:
type: object
properties:
poaType:
type: string
description: "Power of Attorney type.\r\n\r\nPossible values: 'None', 'General', 'Enduring', 'Medical', 'Financial',\
\ 'Other', 'Unset'"
nullable: true
example: Enduring
poaDate:
type: string
description: Date the Power of Attorney was executed
format: date-time
nullable: true
example: '2023-05-15'
attorneyName:
type: string
description: Name of the attorney
nullable: true
example: Jane Doe
address:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Attorney's address
nullable: true
poaRegisteredBook:
type: string
description: Power of Attorney registration book reference
nullable: true
poaRegisteredNumber:
type: string
description: Power of Attorney registration number
nullable: true
executionType:
type: string
description: "Person execution type.\r\n\r\nPossible values: 'Individual', 'PowerOfAttorney', 'Other', 'Unset',\
\ 'None'"
nullable: true
example: PowerOfAttorney
additionalProperties: false
description: "Execution options for individual persons (Power of Attorney)\r\n\r\nOnly supported in AU."
PhoneNumber:
type: object
properties:
areaCode:
type: string
description: Phone area code.
nullable: true
example: '555'
number:
type: string
description: Phone number (excluding area code).
nullable: true
example: '1234567'
additionalProperties: false
PhoneNumberDto:
type: object
properties:
areaCode:
type: string
description: Phone area code.
nullable: true
example: '555'
number:
type: string
description: Phone number (excluding area code).
nullable: true
example: '1234567'
additionalProperties: false
PhoneNumberWithExtension:
type: object
properties:
areaCode:
type: string
description: "Phone area code.\r\n\r\nOnly supported in the US."
nullable: true
example: '555'
number:
type: string
description: Phone number (excluding area code).
nullable: true
example: '1234567'
extension:
type: string
description: Phone number extension.
nullable: true
example: '103'
additionalProperties: false
PhoneNumberWithExtensionDto:
type: object
properties:
areaCode:
type: string
description: "Phone area code. \r\n\r\nOnly supported in the US."
nullable: true
example: '555'
number:
type: string
description: Phone number (excluding area code).
nullable: true
example: '1234567'
extension:
type: string
description: Phone number extension. Accepts numeric characters only.
nullable: true
example: '103'
additionalProperties: false
PoBoxAddress:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
poBoxType:
type: string
description: "PO Box type. Accepts custom values.\r\n \r\ne.g. Care PO, PO Box, Locked Bag, RMS."
nullable: true
example: Locked Bag
poBoxNumber:
type: string
description: PO Box number.
nullable: true
example: '12345'
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
additionalProperties: false
PoBoxAddressDto:
type: object
properties:
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: John Smith
poBoxType:
type: string
description: "PO Box type. Accepts custom values.\r\n \r\ne.g. Care PO, PO Box, Locked Bag, RMS."
nullable: true
example: Locked Bag
poBoxNumber:
type: string
description: PO Box number.
nullable: true
example: '12345'
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
additionalProperties: false
description: PO Box address.
Tag:
type: object
properties:
id:
type: string
description: Identifier of the tag. Role tags do not have an identifier.
nullable: true
name:
type: string
description: Name of tag.
nullable: true
type:
type: string
description: Type of tag. Accepted values are 'Role' or 'Custom'
example: Custom
additionalProperties: false
description: Represents a tag with an identifier, name, and type.
TagCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Tag'
nullable: true
additionalProperties: false
Trust:
type: object
properties:
name:
type: string
description: Trust's name.
nullable: true
example: Trinity Trust
status:
type: string
description: "Trust's status.\r\n\r\nStandard values are: as Trustee of, as Trustees of, as Co-Trustees of, as an\
\ Individual and as Trustee of, as Successor Trustee of.\r\nA custom value can be supplied instead."
nullable: true
example: as Trustee of
trustNumber:
type: string
description: Trust's number.
nullable: true
example: '12345678'
executedDate:
type: string
description: Date trust was executed.
format: date-time
nullable: true
example: '1980-07-01'
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Trust's phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Trust's fax details.
nullable: true
address:
allOf:
- $ref: '#/components/schemas/Address'
description: Trust's address.
nullable: true
trustees:
type: array
items:
$ref: '#/components/schemas/Trustee'
description: List of trustees.
nullable: true
example:
- Name: John Smith
Type: Individual
- Name: Smithfield Steel
Type: Company
contacts:
type: array
items:
$ref: '#/components/schemas/Link'
description: Trust's contacts hypermedia links.
nullable: true
readOnly: true
additionalProperties: false
TrustDto:
type: object
properties:
name:
type: string
description: Trust's name.
nullable: true
example: Trinity Trust
status:
type: string
description: "Trust's status.\r\n\r\nStandard values are: as Trustee of, as Trustees of, as Co-Trustees of, as an\
\ Individual and as Trustee of, as Successor Trustee of.\r\n\r\nA custom value can be supplied instead."
nullable: true
example: as Trustee of
trustNumber:
type: string
description: Trust's number.
nullable: true
example: '12345678'
executedDate:
type: string
description: Date trust was executed.
format: date-time
nullable: true
example: '1980-07-01'
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Trust's phone details.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Trust's fax details.
nullable: true
address:
allOf:
- $ref: '#/components/schemas/AddressDto'
description: Trust's address.
nullable: true
trustees:
type: array
items:
$ref: '#/components/schemas/TrusteeDto'
description: List of trustees.
nullable: true
example:
- Name: John Smith
Type: Individual
- Name: Smithfield Steel
Type: Company
additionalProperties: false
Trustee:
type: object
properties:
name:
type: string
description: Trustee's name.
nullable: true
example: John Smith
type:
type: string
description: "Type of trustee.\r\n\r\nStandard values are: Company, Individual.\r\nA custom value can be supplied\
\ instead."
nullable: true
example: Individual
additionalProperties: false
TrusteeDto:
type: object
properties:
name:
type: string
description: Trustee's name.
nullable: true
example: John Smith
type:
type: string
description: "Type of trustee.\r\n\r\nStandard values are: Company, Individual.\r\n\r\nA custom value can be supplied\
\ instead."
nullable: true
example: Individual
additionalProperties: false
UtbmsDetails:
type: object
properties:
ledesClientId:
type: string
description: LEDES client Id
nullable: true
additionalProperties: false
description: Utbms Details
UtbmsDetailsDto:
type: object
properties:
ledesClientId:
type: string
description: LEDES client Id
nullable: true
additionalProperties: false
description: Utbms Details
VoiDetails:
type: object
properties:
isCompleted:
type: boolean
description: Indicates if VOI has been completed
example: true
completedDateTime:
type: string
description: Date and time when VOI was completed
format: date-time
nullable: true
example: '2024-01-15T10:30:00Z'
reference:
type: string
description: Reference number or order ID from the VOI service
nullable: true
example: '12345678'
source:
type: string
description: Source/provider of the VOI service
nullable: true
example: InfoTrackID
status:
type: string
description: Current status of the VOI check
nullable: true
example: Complete
additionalProperties: false
description: "Verification of Identity (VOI) details\r\n\r\nOnly supported in AU."
AddFileDto:
required:
- fileName
type: object
properties:
fileName:
maxLength: 256
minLength: 0
type: string
description: Full name of the file including the file extension
example: court filing.pdf
folderId:
type: string
description: Unique identifier of the folder to add the file to. If null it will be placed in the root folder
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
userId:
type: string
description: Unique identifier of the file owner. If null it will fallback to the authenticated user
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
folderPath:
type: string
description: Path of the folder to add the file to. If null then the FolderId will be used
nullable: true
example: Court Filings/2023/January
fileAdditionalData:
type: object
additionalProperties:
nullable: true
description: Collection of KeyValuePair(string, string) to update File meta data.
nullable: true
dateCreated:
type: string
description: The original datetime that the file was created. If null the current datetime will be used
format: date-time
nullable: true
example: '2023-04-23T14:00:00Z'
dateModified:
type: string
description: The initial datetime that the file was last modified. If null the current datetime will be used
format: date-time
nullable: true
example: '2023-04-24T14:00:00Z'
additionalProperties: false
DownloadFileInfo:
type: object
properties:
fileId:
type: string
description: Unique identifier of the requested file
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
name:
type: string
description: Name of the file, excluding file extension.
nullable: true
example: court filing
fileExtension:
type: string
description: Extension of the file.
nullable: true
example: .pdf
downloadUrl:
type: string
description: Temporary Link to download file
nullable: true
example: ''
expiry:
type: string
description: Expiry date/time when the download link is no longer accessible
format: date-time
example: '2022-04-23T14:30:00Z'
sizeBytes:
type: integer
description: Size of the requested file (in bytes)
format: int64
example: 19104768
additionalProperties: false
EditFileDto:
required:
- fileName
type: object
properties:
fileName:
maxLength: 256
minLength: 0
type: string
description: Full name of the file including the file extension
example: court filing.pdf
folderId:
type: string
description: Unique identifier of the folder to add the file to. If null it will be placed in the root folder
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
userId:
type: string
description: Unique identifier of the user modifying the file. If null it will fallback to the authenticated user
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
fileAdditionalData:
type: object
additionalProperties:
nullable: true
description: Collection of KeyValuePair(string, string) to update File meta data.
nullable: true
isFavorite:
type: boolean
description: Flag indicating whether this file is a favorite. If null it will be ignored
nullable: true
additionalProperties: false
File:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the file.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
versionId:
type: string
description: Unique identifier of the file's current version.
nullable: true
folder:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the folder to which the file belongs.
nullable: true
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the matter to which the file belongs.
nullable: true
name:
type: string
description: Name of the file, excluding file extension.
nullable: true
example: court filing
fileExtension:
type: string
description: Extension of the file.
nullable: true
example: .pdf
ownerId:
type: string
description: Unique identifier of the user who created/uploaded this file.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
to:
type: string
description: The 'To' or recipients' email address (only applicable for email files).
nullable: true
example: recipient@email.com
from:
type: string
description: The 'From' or sender's email address (only applicable for email files).
nullable: true
example: sender@email.com
dateCreated:
type: string
description: The original datetime that the file was created.
format: date-time
example: '2022-04-23T14:00:00Z'
dateModified:
type: string
description: The datetime that the file was last modified.
format: date-time
example: '2022-04-25T17:00:00Z'
sizeBytes:
type: integer
description: Size of the file (in bytes).
format: int64
example: 19104768
downloadInfo:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link to the download details of the file.
nullable: true
additionalData:
type: object
additionalProperties:
nullable: true
description: Collection of file meta data as KeyValuePair(string, object).
nullable: true
isFavorite:
type: boolean
description: Flag indicating whether this file is a favorite
example: false
isUploaded:
type: boolean
description: Flag indicating whether the file contents are uploaded to the server.
example: false
isCancelled:
type: boolean
description: Flag indicating whether the file upload has been cancelled.
example: false
isDuplicate:
type: boolean
description: Flag indicating whether the file data is duplicated. Applies to emails only for now.
isDeleted:
type: boolean
description: Flag indicating whether the file has been deleted.
example: false
additionalProperties: false
FileFolderLogEntry:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of this log entry.
nullable: true
example: 3f2b1f2a-1d5f-48a4-8f3c-7a7a3c2b5e1a
type:
type: string
description: The type of entity this log entry refers to.
example: File
changeType:
type: string
description: The type of change that occurred.
example: Move
timestamp:
type: string
description: When the client recorded the action (UTC).
format: date-time
example: '2025-08-27T04:12:45Z'
file:
allOf:
- $ref: '#/components/schemas/Link'
description: Link to the file affected by this entry (only populated when Type is File).
nullable: true
folder:
allOf:
- $ref: '#/components/schemas/Link'
description: Link to the folder affected by this entry (only populated when Type is Folder).
nullable: true
oldName:
type: string
description: Old name prior to a rename operation (when applicable).
nullable: true
example: Draft Response
newName:
type: string
description: New name after a rename operation (when applicable).
nullable: true
example: Final Response
oldMatterId:
type: string
description: Previous matter identifier (for move/copy across matters).
nullable: true
example: f9e1a9d5-1d2b-4bd2-9a72-6a6e7b5c2f01
newMatterId:
type: string
description: New matter identifier (for move/copy across matters).
nullable: true
example: 1c0b8a31-0a05-4601-8b87-2d7b1d0caa9a
oldFolderId:
type: string
description: Previous folder identifier (for move within/between matters).
nullable: true
example: 6a5c3b2e-0f1e-4c7e-90e2-2ad3c3e8b0b9
newFolderId:
type: string
description: New folder identifier (for move within/between matters).
nullable: true
example: 9b7a2c4d-2e1f-4b6a-8e01-1f2a3b4c5d6e
copySourceFileId:
type: string
description: For copy operations, the source file's identifier when copying a file.
nullable: true
example: bb3a6c1d-1e2f-4a7b-9c01-0d9a8c7b6e5f
copySourceFolderId:
type: string
description: For copy operations, the source folder's identifier when copying a folder.
nullable: true
example: aa2b5c1e-7f8a-4d9e-8c01-1a2b3c4d5e6f
documentVersionId:
type: string
description: "Identifier of the document version involved (only for version replace/revert scenarios).\r\nCan be\
\ used to download particular file versions."
nullable: true
example: 2d97e267-0618-4822-a515-281cd4f31ae8-72324ca30d263b32bb38a481cc5f7a0b
userId:
type: string
description: The user who is responsible for this change.
nullable: true
additionalProperties: false
description: Represents a single file/folder activity (rename, move, delete, etc.).
FileFolderLogEntryCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/FileFolderLogEntry'
nullable: true
additionalProperties: false
FilePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/File'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Folder:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the folder
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
parentId:
type: string
description: Unique identifier of the parent folder
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
name:
type: string
description: Name of the folder
nullable: true
example: Property Documents
additionalProperties: false
FolderDto:
required:
- name
type: object
properties:
name:
maxLength: 256
minLength: 1
type: string
description: Name of the folder
example: Property Documents
parentFolderId:
type: string
description: Unique identifier of the parent folder
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
userId:
type: string
description: Unique identifier of the user modifying the folder. If null it will fallback to the authenticated user
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
additionalProperties: false
FolderListing:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
folders:
type: array
items:
$ref: '#/components/schemas/Folder'
description: List of folders
nullable: true
readOnly: true
files:
type: array
items:
$ref: '#/components/schemas/File'
description: List of files
nullable: true
readOnly: true
additionalProperties: false
FolderListingPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/FolderListing'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
parentId:
type: string
description: Unique identifier of the parent folder
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
name:
type: string
description: Name of the folder
nullable: true
example: Property Documents
additionalProperties: false
FolderPathSegment:
type: object
properties:
id:
type: string
description: Unique identifier of the folder
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
name:
type: string
description: Name of the folder
nullable: true
example: Property Documents
parentId:
type: string
description: Unique identifier of the parent folder
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
depth:
type: integer
description: "The depth of the folder in the folder path hierarchy.\r\n\r\n0 indicates the root folder, 1 indicates\
\ a direct child of that folder, and so on."
format: int32
example: 2
additionalProperties: false
FolderPathSegmentCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/FolderPathSegment'
nullable: true
additionalProperties: false
PreviewFileInfo:
type: object
properties:
fileId:
type: string
description: Unique identifier of the requested file
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
documentVersionId:
type: string
nullable: true
downloadUrl:
type: string
description: Temporary Link to download file
nullable: true
example: ''
expiry:
type: string
description: Expiry date/time when the download link is no longer accessible
format: date-time
nullable: true
example: '2022-04-23T14:30:00Z'
additionalProperties: false
UploadFileInfo:
type: object
properties:
fileId:
type: string
description: Unique identifier of the file.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
uploadUrl:
type: string
description: "Temporary Link to upload file.\r\n\r\nImportant note: When uploading to this URL, set the 'Content-Type'\
\ header to an empty value.\r\n\r\nExample cURL: curl --location --request PUT 'URL_GOES_HERE' \\ --header 'Content-Type:\
\ \"\"' \\ --data '@/C:/dir/test.pdf'"
nullable: true
example: ''
expiry:
type: string
description: Expiry date/time when the upload link is no longer accessible.
format: date-time
example: '2022-04-23T14:30:00Z'
additionalProperties: false
Event:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the event.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated matter.
nullable: true
attendees:
type: array
items:
$ref: '#/components/schemas/Link'
description: Hypermedia link of all the attendees.
nullable: true
externalAttendees:
type: array
items:
$ref: '#/components/schemas/Link'
description: Hypermedia link of all the contacts of the external or third party attendees.
nullable: true
eventType:
allOf:
- $ref: '#/components/schemas/EventType'
description: "**Deprecated.** Use `type` instead.\n\nThe type of the event.\r\n\r\nPossible values: Non Recurring\
\ Event = 0, Recurring Pattern Series = 1, Single Recurring Occurrence = 2, Modified Recurring Occurrence = 3,\
\ Deleted Recurring Occurrence = 4"
example: '0'
deprecated: true
type:
allOf:
- $ref: '#/components/schemas/EventType'
description: "The type of the event.\r\n\r\nPossible values: Normal, Pattern, Occurrence, ChangedOccurrence, DeletedOccurrence"
example: Normal
subject:
type: string
description: Subject of event.
nullable: true
example: Subject
description:
type: string
description: Description of event.
nullable: true
example: Description
location:
type: string
description: Location of event.
nullable: true
example: Location
allDay:
type: boolean
description: Whether or not the event is all day.
example: false
nonBillable:
type: boolean
description: "Whether or not the event is billable.\r\nNote events with a duration greater than 12 hours automatically\
\ become non-billable."
example: false
startTime:
type: string
description: "Start date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date\
\ and time will correlate with the time zone provided."
format: date-time
example: '2000-01-01T20:00:00'
endTime:
type: string
description: "End date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date\
\ and time will correlate with the time zone provided."
format: date-time
example: '2000-01-01T20:00:00'
timeZone:
type: string
description: "Time zone of the event for determining the start time and end time.\r\nTime zones will be in the IANA\
\ time zone format."
nullable: true
example: Australia/Sydney
lastUpdated:
type: string
description: "The last date and time the event was updated.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss."
format: date-time
example: '2000-01-01T20:00:00'
additionalData:
type: object
additionalProperties:
type: string
nullable: true
description: Any additional data provided for the event.
nullable: true
isDeleted:
type: boolean
description: Whether the event has been deleted.
example: false
additionalProperties: false
EventDto:
type: object
properties:
matterId:
type: string
description: Matter Id.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
subject:
type: string
description: Subject of event.
nullable: true
example: Subject
description:
type: string
description: Description of event.
nullable: true
example: Description
location:
type: string
description: Location of event.
nullable: true
example: Location
allDay:
type: boolean
description: Whether or not the event is all day.
example: false
nonBillable:
type: boolean
description: "Whether or not the event is billable.\r\nNote events with a duration greater than 12 hours automatically\
\ become non-billable."
example: false
type:
allOf:
- $ref: '#/components/schemas/EventType'
description: "The type of the event.\r\n\r\nWe currently support create and updates requests for non recurring events\
\ (type = Normal)."
nullable: true
example: Normal
eventType:
allOf:
- $ref: '#/components/schemas/EventType'
description: "**Deprecated.** Use `type` instead.\n\nThe type of the event.\r\n\r\nWe currently support create and\
\ updates requests for non recurring events (EventType = 0)."
nullable: true
example: '0'
deprecated: true
attendees:
type: array
items:
type: string
description: The staff Ids of the attendees of the event.
nullable: true
externalAttendees:
type: array
items:
type: string
description: "The contact Ids of the external or third party attendees of the event.\r\n\r\nThe contacts must be\
\ of Person type and must be part of the matter."
nullable: true
startTime:
type: string
description: "Start date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date\
\ and time will correlate with the time zone provided."
format: date-time
example: '2000-01-01T20:00:00'
endTime:
type: string
description: "End date and time of the event.\r\nSupported date format is ISO YYYY-MM-DDThh:mm:ss.\r\nNote: date\
\ and time will correlate with the time zone provided."
format: date-time
example: '2000-01-01T20:00:00'
timeZone:
type: string
description: "Time zone of the event for determining the start time and end time.\r\nTime zones are expected in\
\ the IANA time zone format.\r\nFor a list of valid time zones, see https://nodatime.org/TimeZones."
nullable: true
example: Australia/Sydney
additionalData:
type: object
additionalProperties:
type: string
nullable: true
description: Collection of key value pairs to update file meta data.
nullable: true
additionalProperties: false
EventPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Event'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
EventType:
enum:
- Normal
- Pattern
- Occurrence
- ChangedOccurrence
- DeletedOccurrence
type: string
description: "The type of the event.\r\n\r\nPossible values: Non Recurring Event = 0, Recurring Pattern Series = 1,\
\ Single Recurring Occurrence = 2, Modified Recurring Occurrence = 3, Deleted Recurring Occurrence = 4"
ReminderDto:
type: object
properties:
offset:
type: integer
format: int32
offsetTypeId:
type: integer
format: int32
isAllDayReminder:
type: boolean
userIds:
type: array
items:
type: string
nullable: true
additionalProperties: false
Expense:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Unique version identifier of the expense.
nullable: true
example: 23d2a4bc-8529-462e-8560-dfbf4fa24e49
createdByUserId:
type: string
description: Unique identifier of the user that created the expense.
nullable: true
example: 8a7f40ea-4123-4ebe-bb05-e9b4b666e706
staff:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member associated to the expense.
nullable: true
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The matter associated to the expense.
nullable: true
invoice:
allOf:
- $ref: '#/components/schemas/Link'
description: The invoice associated to the expense.
nullable: true
staffId:
type: string
description: Deprecated, use Staff.
nullable: true
matterId:
type: string
description: Deprecated, use Matter.
nullable: true
invoiceId:
type: string
description: Unique identifier of the associated invoice.
nullable: true
example: fdb766bc-eb20-4bc1-9417-08b51a7b2286
origin:
type: string
description: Where the expense originated from.
nullable: true
activityCode:
type: string
description: The activity code associated to the expense.
nullable: true
example: PRT
utbmsTaskCode:
type: string
description: The UTBMS task code associated to the expense, where UTBMS is enabled. Only applicable in US.
nullable: true
example: E101
subject:
type: string
description: The subject - this should be a short description of the expense.
nullable: true
example: Review contract
description:
type: string
description: Optional detailed description of the expense.
nullable: true
example: Print documents
expenseDate:
type: string
description: The date of the expense.
format: date-time
example: '2022-07-01'
costType:
type: string
description: "The cost type of the expense.\r\n\r\n* Hard - Direct cost such as travel, accommodation, or materials.\r\
\n\r\n* Soft - Indirect cost such as administrative fees or overhead."
example: Hard
quantity:
type: number
description: "The quantity of the expense in units (if not applicable, use 1).\r\n\r\nThe expense amount will be\
\ calculated as Quantity * Price."
format: double
example: 3
price:
type: number
description: "The price of the expense in dollars. Limited to 2 decimal places (cents).\r\n\r\nThe expense amount\
\ will be calculated as Quantity * Price."
format: double
example: 350.32
amount:
type: number
description: "Total amount of the expense. Calculated as Price * Quantity.\r\n\r\nThis amount ignores GST (if applicable).\
\ See AmountExcTax and AmountIncTax."
format: double
example: 900.21
amountExcTax:
type: number
description: "Amount excluding tax. Calculated from Amount and Tax depending on the TaxInclusive property.\r\n\r\
\nIf tax is not applicable (outside AU), this will be the same as Amount."
format: double
example: 810.01
amountIncTax:
type: number
description: "Amount including tax. Calculated from Amount and Tax depending on the TaxInclusive property.\r\n\r\
\nIf tax is not applicable (outside AU), this will be the same as Amount."
format: double
example: 900.21
tax:
type: number
description: GST amount of the expense in dollars. Only applicable in AU.
format: double
example: 90
outputTax:
type: number
description: "Output tax amount of the expense in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope\
\ or TaxZeroRated is true, this value must be 0.\r\nWhen TaxExempt is true, this value can be greater than 0."
format: double
example: 85
taxInclusive:
type: boolean
description: "If true, the amount is GST inclusive, otherwise GST exclusive. Only applicable in AU.\r\n\r\nGST inclusive\
\ means: Amount exc. GST = Amount - GST, Amount inc. GST = Amount.\r\n\r\nGST exclusive means: Amount exc. GST\
\ = Amount, Amount inc. GST = Amount + GST.\r\n(Amount = Price * Quantity, GST = value of the Tax field)"
example: false
taxZeroRated:
type: boolean
description: True if the expense is zero-rated for tax purposes.
example: false
taxOutOfScope:
type: boolean
description: True if the expense is out of scope for tax purposes.
example: false
taxExempt:
type: boolean
description: True if the expense is exempt from tax.
example: false
finalized:
type: boolean
description: True if the expense has been finalized.
example: false
isWrittenOff:
type: boolean
description: "True if the expense is written off. True only allowed if IsBillable is true. \r\n\r\nWritten off expenses\
\ will show on an invoice with their amount, but will not be counted in the invoice total."
example: false
isBillable:
type: boolean
description: True if the expense is billable. Non-billable expense will, by default, not be shown on invoices (and,
if shown, the amount will be 0).
example: false
isInvoicedExternally:
type: boolean
description: True if the expense is invoiced externally.
example: false
isDeleted:
type: boolean
description: True if the expense is deleted.
example: false
additionalProperties: false
ExpenseDto:
type: object
properties:
updatedByUserId:
type: string
description: "Unique identifier of the user updating the expense.\r\n\r\nThis field is reserved for server-to-server\
\ operations."
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
staffId:
type: string
description: "Unique identifier of the associated staff member.\r\n\r\nWhen StaffId is not provided, the API will\
\ attempt to match your User Id to a Staff Id automatically."
nullable: true
example: 47efff74-3e4b-45b3-bddf-affc6649db0b
invoiceId:
type: string
description: Unique identifier of the associated invoice.
nullable: true
example: fdb766bc-eb20-4bc1-9417-08b51a7b2286
expenseDate:
type: string
description: The date of the expense.
format: date-time
example: '2022-07-01'
activityCode:
type: string
description: The activity code associated to the expense.
nullable: true
example: PRT
subject:
type: string
description: The subject - this should be a short description of the expense.
nullable: true
example: Review contract
description:
type: string
description: Optional detailed description of the expense.
nullable: true
example: Print documents
costType:
type: string
description: "The cost type of the expense.\r\n\r\n* Hard - Direct cost such as travel, accommodation, or materials.\r\
\n\r\n* Soft - Indirect cost such as administrative fees or overhead."
example: Hard
quantity:
type: number
description: "The quantity of the expense in units (if not applicable, use 1).\r\n\r\nThe expense amount will be\
\ calculated as Quantity * Price."
format: double
example: 3
price:
type: number
description: "The price of the expense in dollars. Limited to 2 decimal places (cents).\r\n\r\nThe expense amount\
\ will be calculated as Quantity * Price."
format: double
example: 350.32
tax:
type: number
description: "Tax amount of the expense in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope\
\ or TaxExempt is true, this value must be 0.\r\nWhen TaxZeroRated is true, this value can be greater than 0."
format: double
nullable: true
example: 90
outputTax:
type: number
description: "Output tax amount of the expense in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope\
\ or TaxZeroRated is true, this value must be 0.\r\nWhen TaxExempt is true, this value can be greater than 0."
format: double
nullable: true
example: 85
taxInclusive:
type: boolean
description: "If true, the amount is tax inclusive, otherwise tax exclusive. Only applicable in AU and UK regions.\r\
\n\r\nTax inclusive means: Amount exc. tax = Amount - Tax, Amount inc. tax = Amount.\r\n\r\nTax exclusive means:\
\ Amount exc. tax = Amount, Amount inc. tax = Amount + Tax.\r\n(Amount = Price * Quantity, Tax = value of the\
\ Tax field)\r\n\r\nThis field is mutually exclusive with TaxZeroRated, TaxOutOfScope and TaxExempt."
example: false
taxZeroRated:
type: boolean
description: "True if the expense is zero-rated for tax purposes. Only supported in UK regions.\r\n\r\nThis field\
\ is mutually exclusive with TaxInclusive, TaxOutOfScope and TaxExempt.\r\nWhen true, OutputTax must be 0."
example: false
taxOutOfScope:
type: boolean
description: "True if the expense is out of scope for tax purposes. Only supported in UK regions.\r\n\r\nThis field\
\ is mutually exclusive with TaxInclusive, TaxZeroRated and TaxExempt.\r\nWhen true, both Tax and OutputTax must\
\ be 0."
example: false
taxExempt:
type: boolean
description: "True if the expense is exempt from tax.\r\n\r\nThis field is mutually exclusive with TaxInclusive,\
\ TaxZeroRated and TaxOutOfScope.\r\nWhen true, Tax must be 0 but OutputTax can be greater than 0."
example: false
finalized:
type: boolean
description: True if the expense has been finalized.
example: false
isWrittenOff:
type: boolean
description: "True if the expense is written off. True only allowed if IsBillable is true. \r\n\r\nWritten off expenses\
\ will show on an invoice with their amount, but will not be counted in the invoice total."
example: false
isBillable:
type: boolean
description: True if the expense is billable. Non-billable expense will, by default, not be shown on invoices (and,
if shown, the amount will be 0).
example: false
isInvoicedExternally:
type: boolean
description: True if the expense is invoiced externally.
example: false
assignToFirmOwner:
type: boolean
description: "Assigns expense to a firm owner if true. Ignored if a StaffId is provided.\r\n\r\nNote: If there are\
\ multiple firm owners, it is not guaranteed that the same firm owner will be assigned everytime."
additionalProperties: false
ExpensePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Expense'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Fee:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the fee.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
versionId:
type: string
description: Unique version identifier of the fee.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: The matter associated to the fee.
nullable: true
staff:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member associated to the fee.
nullable: true
matterId:
type: string
description: Deprecated, use Matter.
nullable: true
staffId:
type: string
description: Deprecated, use Staff.
nullable: true
createdByUserId:
type: string
description: Unique identifier of the user that created the fee.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
createdDate:
type: string
description: Date the fee was created.
format: date-time
example: '2026-04-13T11:00:00Z'
lastUpdatedByUserId:
type: string
description: Unique identifier of the user that updated the fee.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
invoiceId:
type: string
description: Unique identifier of the associated invoice.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
activityCode:
type: string
description: The activity code associated to the fee.
nullable: true
example: PRT
utbmsTaskCode:
type: string
description: The UTBMS task code associated to the fee, where UTBMS is enabled. Only applicable in US.
nullable: true
example: L110
subject:
type: string
description: The subject - this should be a short description of the fee.
nullable: true
example: Review contract
description:
type: string
description: Optional detailed description of the fee.
nullable: true
example: Print documents
feeDate:
type: string
description: The date of the fee.
format: date-time
example: '2022-07-01'
feeType:
allOf:
- $ref: '#/components/schemas/FeeType'
description: The type of the fee (Fixed = 0, Time = 1).
example: 0
finalized:
type: boolean
description: True if the fee has been finalized.
example: false
isInvoicedExternally:
type: boolean
description: True if the fee is invoiced externally.
example: false
isWrittenOff:
type: boolean
description: "True if the fee is written off. True only allowed if IsBillable is true.\r\n\r\nWritten off fee will\
\ show on an invoice with their amount, but will not be counted in the invoice total."
example: false
isBillable:
type: boolean
description: True if the fee is billable. Non-billable fee will, by default, not be shown on invoices (and, if shown,
the amount will be 0).
nullable: true
example: false
tax:
type: number
description: GST amount of the fee in dollars. Only applicable in AU.
format: double
example: 35
taxInclusive:
type: boolean
description: "If true, the amount is GST inclusive, otherwise GST exclusive. Only applicable in AU.\r\n\r\nGST inclusive\
\ means: Amount exc. GST = Amount - GST, Amount inc. GST = Amount.\r\n\r\nGST exclusive means: Amount exc. GST\
\ = Amount, Amount inc. GST = Amount + GST."
example: false
taxExempt:
type: boolean
description: True if the fee is tax exempt. In that case, Tax will always be 0.
example: false
taxOutOfScope:
type: boolean
description: True if the fee is out of scope for tax. In that case, Tax will always be 0.
example: false
duration:
type: integer
description: The duration billed - in minutes.
format: int64
example: 60
durationWorked:
type: integer
description: The duration worked - in minutes.
format: int64
nullable: true
example: 50
rate:
type: number
description: The rate of the fee in dollars.
format: double
example: 350
amount:
type: number
description: "Total amount of the fee in dollars. Calculated using Rate and Duration depending on the fee type.\r\
\n\r\nThis amount includes tax depending on the TaxInclusive property. See AmountExcTax and AmountIncTax."
format: double
example: 350
amountExcTax:
type: number
description: "Amount excluding tax in dollars. Calculated from Amount and Tax depending on the TaxInclusive property.\r\
\n\r\nIf tax is not applicable (outside AU), this will be the same as Amount."
format: double
example: 315
amountIncTax:
type: number
description: "Amount including tax in dollars. Calculated from Amount and Tax depending on the TaxInclusive property.\r\
\n\r\nIf tax is not applicable (outside AU), this will be the same as Amount."
format: double
example: 350
billableAmountExcTax:
type: number
description: "Billable amount excluding tax in dollars. If fee is billable, value will be the same as AmountExcTax.\
\ If it's non-billable,\r\nvalue will be 0.\r\n\r\nIf the fee is partially billable (i.e. has source items, some\
\ of which are billable and some not),\r\nthis value will contain the amount calculated from billable items only."
format: double
example: 315
billableTax:
type: number
description: "Billable tax in dollars. If fee is billable, value will be the same as Tax. If it's non-billable,\r\
\nvalue will be 0.\r\n\r\nIf the fee is partially billable (i.e. has source items, some of which are billable\r\
\nand some not), this value will contain the tax calculated from billable items only.\r\nIn all other cases, the\
\ value will be the same as Tax."
format: double
example: 35
isDeleted:
type: boolean
description: True if the fee is deleted.
example: false
sourceItems:
type: array
items:
$ref: '#/components/schemas/FeeSourceItem'
description: The source items on the fee.
nullable: true
createdFromActivityId:
type: string
description: Unique identifier of the Activity used to create the fee, if applicable.
nullable: true
example: 504b9f77-20c7-4dee-8227-d3007c8f6cea
additionalProperties: false
FeeDto:
required:
- feeDate
- subject
type: object
properties:
updatedByUserId:
type: string
description: "Unique identifier of the user updating the fee.\r\n\r\nThis field is reserved for server-to-server\
\ operations."
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
staffId:
type: string
description: "Unique identifier of the associated staff member.\r\n\r\nWhen StaffId is not provided, the API will\
\ attempt to match your User Id to a Staff Id automatically."
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
invoiceId:
type: string
description: Unique identifier of the associated invoice.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
activityCode:
type: string
description: The activity code associated to the fee.
nullable: true
example: PRT
feeType:
allOf:
- $ref: '#/components/schemas/FeeType'
description: The type of the fee (Fixed = 0, Time = 1).
example: 0
feeDate:
type: string
description: The date of the fee.
format: date-time
example: '2022-07-01'
subject:
minLength: 1
type: string
description: The subject - this should be a short description of the fee.
example: Review contract
description:
type: string
description: Optional detailed description of the fee.
nullable: true
example: Print documents
duration:
type: integer
description: The duration billed - in minutes. This duration is used if there are no sub activities.
format: int64
example: 60
durationWorked:
type: integer
description: The duration worked - in minutes. This duration is used if there are no sub activities.
format: int64
nullable: true
example: 50
rate:
type: number
description: The rate of the fee in dollars.
format: double
example: 350
tax:
type: number
description: "Tax amount of the fee in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope\
\ or TaxExempt is true, this value must be 0."
format: double
nullable: true
example: 35
taxInclusive:
type: boolean
description: "If true, the amount is tax inclusive, otherwise tax exclusive. Only applicable in AU and UK regions.\r\
\n\r\nTax inclusive means: Amount exc. tax = Amount - Tax, Amount inc. tax = Amount.\r\n\r\nTax exclusive means:\
\ Amount exc. tax = Amount, Amount inc. tax = Amount + Tax.\r\n\r\n(Amount = Rate for fixed fees, or Rate * Duration\
\ for time fees, Tax = value of the Tax field)"
example: false
taxExempt:
type: boolean
description: "True if the fee is exempt from tax.\r\n\r\nThis field is mutually exclusive with TaxOutOfScope.\r\n\
When true, Tax must be 0."
example: false
taxOutOfScope:
type: boolean
description: "True if the fee is out of scope for tax purposes. Only supported in UK regions.\r\n\r\nThis field\
\ is mutually exclusive with TaxExempt.\r\nWhen true, Tax must be 0."
example: false
finalized:
type: boolean
description: True if the fee has been finalized.
example: false
isWrittenOff:
type: boolean
description: "True if the fee is written off. True only allowed if IsBillable is true.\r\n\r\nWritten off fee will\
\ show on an invoice with their amount, but will not be counted in the invoice total."
example: false
isBillable:
type: boolean
description: True if the fee is billable. Non-billable fee will, by default, not be shown on invoices (and, if shown,
the amount will be 0).
example: false
isInvoicedExternally:
type: boolean
description: True if the fee is invoiced externally.
example: false
sourceItems:
type: array
items:
$ref: '#/components/schemas/FeeSourceItemDto'
description: The source items on the fee.
nullable: true
createdFromActivityId:
type: string
description: "Associates an existing activity id to a fee.\r\nOnly valid for Fee creation. \r\nValue is supplied\
\ by Smokeball for some partners."
nullable: true
example: 504b9f77-20c7-4dee-8227-d3007c8f6cea
additionalProperties: false
FeePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Fee'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
FeeSourceItem:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
description:
type: string
description: The description.
nullable: true
duration:
type: integer
description: The duration in minutes.
format: int64
isBillable:
type: boolean
description: True if the fee source item is billable.
additionalProperties: false
FeeSourceItemDto:
type: object
properties:
description:
type: string
description: The description.
nullable: true
example: Print document
duration:
type: integer
description: The duration in minutes.
format: int64
example: 5
isBillable:
type: boolean
description: True if the fee source item is billable.
example: false
additionalProperties: false
FeeType:
enum:
- 0
- 1
type: integer
description: The type of the fee (Fixed = 0, Time = 1).
format: int32
CreateFirmDto:
type: object
properties:
productId:
type: string
description: "The product/tier the firm is subscribed to. Must be set when creating the firm and is optional when\
\ updating the firm.\r\n\r\nThe supported products are listed in order below, the identifier (in brackets) must\
\ be used.\r\n\r\n* Bill (SMK001)\r\n\r\n* Boost (SMK004)\r\n\r\n* Grow (SMK002)\r\n\r\n* Prosper + (SMK003)\r\
\n\r\nPossible values: SMK001, SMK004, SMK002, SMK003"
nullable: true
example: SMK001
addOnIds:
uniqueItems: true
type: array
items:
type: string
description: "The optional add-ons the firm is subscribed to. Must be specified with an accompanying productId.\r\
\n\r\nThe supported add-ons are listed below, the identifier (listed in brackets) must be used.\r\n\r\n* Intake\
\ (ADD001)\r\n\r\n* AutoTime (ADD003)\r\n\r\n* FamilyPro (ADD004)\r\n\r\n* Api (ADD005)\r\n\r\n* Workflows (ADD006)\r\
\n\r\n* PowerBI (ADD007)\r\n\r\n* Archie (ADD008)\r\n\r\n* SSO (ADD010)\r\n\r\nPossible values: ADD01, ADD003,\
\ ADD004, ADD005, ADD006, ADD007, ADD008, ADD010"
nullable: true
example:
- ADD01
- ADD003
name:
type: string
description: The name of the firm.
nullable: true
example: Brown LLC
email:
type: string
description: "The email of the firm.\r\n\r\nOnly supported in AU."
nullable: true
example: john.smith@law.com
abn:
type: string
description: "Represents a different field depending on the region.\r\n\r\n* For AU: Australian Business Number\
\ (ABN) of the firm.\r\n\r\n* For UK: Value-added Tax Number (VAT) of the firm.\r\n\r\nOnly supported in AU and\
\ UK."
nullable: true
example: '1234567890'
acn:
type: string
description: "Represents a different field depending on the region.\r\n\r\n* For AU: Australian Company Number (ACN)\
\ of the firm.\r\n\r\n* For UK: Company Registration Number (CRN) of the firm.\r\n\r\nOnly supported in AU and\
\ UK."
nullable: true
example: '1234567890'
streetAddress:
allOf:
- $ref: '#/components/schemas/FirmAddressDto'
description: Street address of the firm.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/FirmAddressDto'
description: Mailing address of the firm.
nullable: true
dxAddress:
allOf:
- $ref: '#/components/schemas/FirmDxAddressDto'
description: "DX address of the firm.\r\n\r\nOnly supported in AU."
nullable: true
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Phone number of the firm.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Fax number of the firm.
nullable: true
isInternal:
type: boolean
description: Whether firm is being created for internal use. Internal firms will not be subscribed for payment processing
and will not be charged.
example: false
staff:
allOf:
- $ref: '#/components/schemas/StaffDto'
description: The staff member that will be created with the firm. This staff member will become the firm owner.
nullable: true
subscription:
allOf:
- $ref: '#/components/schemas/FirmSubscriptionDto'
description: Optional subscription details that will be used when creating the firm.
nullable: true
additionalProperties: false
Firm:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the firm.
nullable: true
example: f4ff1eff-b7fe-4d46-4e46-01d985838d76
versionId:
type: string
description: Version id of the record.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
owner:
type: string
description: "The owner/white-label partner used by the firm.\r\n\r\nPossible values: Smokeball, PracticeEvolve,\
\ TriConvey."
nullable: true
example: Smokeball
name:
type: string
description: The name of the firm.
nullable: true
example: Brown LLC
status:
allOf:
- $ref: '#/components/schemas/FirmStatus'
description: The status of the firm.
nullable: true
productId:
type: string
description: "The product/tier the firm is subscribed to. Must be set when creating the firm and is optional when\
\ updating the firm.\r\n\r\nThe supported products are listed in order below, the identifier (in brackets) must\
\ be used.\r\n\r\n* Bill (SMK001)\r\n\r\n* Boost (SMK004)\r\n\r\n* Grow (SMK002)\r\n\r\n* Prosper + (SMK003)\r\
\n\r\nPossible values: SMK001, SMK004, SMK002, SMK003"
nullable: true
example: SMK001
addOnIds:
type: array
items:
type: string
description: "The optional add-ons the firm is subscribed to. Must be specified with an accompanying productId.\r\
\n\r\nThe supported add-ons are listed below, the identifier (listed in brackets) must be used.\r\n\r\n* Intake\
\ (ADD001)\r\n\r\n* AutoTime (ADD003)\r\n\r\n* FamilyPro (ADD004)\r\n\r\n* Api (ADD005)\r\n\r\n* Workflows (ADD006)\r\
\n\r\n* PowerBI (ADD007)\r\n\r\n* Archie (ADD008)\r\n\r\n* SSO (ADD010)\r\n\r\n* PracticeEvolve (ADD011)\r\n\r\
\n* CustomReporting (ADD012)\r\n\r\nPossible values: ADD001, ADD003, ADD004, ADD005, ADD006, ADD007, ADD008, ADD010,\
\ ADD011, ADD012"
nullable: true
example:
- ADD001
- ADD003
email:
type: string
description: "The email of the firm.\r\n\r\nOnly supported in AUS."
nullable: true
example: john.smith@law.com
abn:
type: string
description: "For AU: Australian Business Number (ABN) of the firm.\r\n\r\nFor UK: Value-added Tax Number (VAT)\
\ of the firm.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: '1234567890'
acn:
type: string
description: "For AU: Australian Company Number (ACN) of the firm.\r\n\r\nFor UK: Company Registration Number (CRN)\
\ of the firm.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: '1234567890'
streetAddress:
allOf:
- $ref: '#/components/schemas/FirmAddress'
description: Street address of the firm.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/FirmAddress'
description: Mailing address of the firm.
nullable: true
dxAddress:
allOf:
- $ref: '#/components/schemas/DxAddress'
description: "DX address of the firm.\r\n\r\nOnly supported in AUS."
nullable: true
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Phone number of the firm.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Fax number of the firm.
nullable: true
logo:
type: string
description: Logo of the firm.
nullable: true
example: https://example-logo-url.com/image
stylingDetails:
allOf:
- $ref: '#/components/schemas/StylingDetails'
description: Styling details of the firm.
nullable: true
licenceNumbers:
type: array
items:
$ref: '#/components/schemas/LicenceNumber'
description: Licence numbers of the firm.
nullable: true
createdDate:
type: string
description: The date when the firm was created in UTC.
format: date-time
nullable: true
example: '2024-01-15T10:30:00Z'
additionalProperties: false
FirmAccountStatus:
enum:
- Active
- Warning
- Suspended
type: string
FirmAddress:
type: object
properties:
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: Unit type (e.g. Unit,Flat,Villa,Suite,etc.) in address (if applicable).
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: Street type (e.g. Street,Road,Avenue,Lane,etc.) in address.
nullable: true
example: Street
addressLine1:
type: string
description: First line of address.
nullable: true
example: Level 1/10
addressLine2:
type: string
description: Second line of address (if applicable).
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region.
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
county:
type: string
description: County (if applicable)
nullable: true
example: Berkshire
locality:
type: string
description: Locality (if applicable)
nullable: true
example: Windsor
country:
type: string
description: Country.
nullable: true
example: United States
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
readOnly: true
example: ''
poBoxType:
type: string
description: PO box type in address (if applicable).
nullable: true
readOnly: true
example: ''
poBoxNumber:
type: string
description: PO box Number in address (if applicable).
nullable: true
readOnly: true
example: ''
additionalProperties: false
FirmAddressDto:
type: object
properties:
buildingLevel:
type: string
description: Building level in address (if applicable).
nullable: true
example: Level 1
unitNumber:
type: string
description: Unit number in address (if applicable).
nullable: true
example: '10'
unitType:
type: string
description: Unit type (e.g. Unit,Flat,Villa,Suite,etc.) in address (if applicable).
nullable: true
example: Suite
streetNumber:
type: string
description: Street number in address.
nullable: true
example: '100'
streetName:
type: string
description: Street name in address.
nullable: true
example: Broad
streetType:
type: string
description: Street type (e.g. Street,Road,Avenue,Lane,etc.) in address.
nullable: true
example: Street
addressLine1:
type: string
description: First line of address.
nullable: true
example: Level 1/10
addressLine2:
type: string
description: Second line of address (if applicable).
nullable: true
example: 100 Broad Street
city:
type: string
description: City, district, suburb, town, or village.
nullable: true
example: Chicago
state:
type: string
description: State, province, or region (if applicable).
nullable: true
example: IL
zipCode:
type: string
description: Zip or post code.
nullable: true
example: '60606'
county:
type: string
description: County (if applicable).
nullable: true
example: ''
locality:
type: string
description: Locality (if applicable).
nullable: true
example: ''
country:
type: string
description: Country.
nullable: true
example: United States
careOf:
type: string
description: Care of the addressee (if applicable).
nullable: true
example: ''
poBoxType:
type: string
description: PO box type in address (if applicable).
nullable: true
example: ''
poBoxNumber:
type: string
description: PO box Number in address (if applicable).
nullable: true
example: ''
additionalProperties: false
FirmDxAddressDto:
type: object
properties:
number:
type: string
description: Direct Exchange number (if applicable).
nullable: true
example: '376'
exchange:
type: string
description: Direct Exchange name.
nullable: true
example: DX
state:
type: string
description: State, province, or region.
nullable: true
example: NSW
additionalProperties: false
FirmStatus:
type: object
properties:
status:
allOf:
- $ref: '#/components/schemas/FirmAccountStatus'
description: The status of the firm.
example: Active
statusMessage:
type: string
description: The status message of the firm.
nullable: true
additionalProperties: false
description: The status of the firm.
FirmStatusDto:
type: object
properties:
status:
allOf:
- $ref: '#/components/schemas/FirmAccountStatus'
description: The status of the firm account.
example: Active
statusMessage:
type: string
description: The status message of the firm. If left blank, an appropriate message is set depending on the status.
nullable: true
additionalProperties: false
description: The status of the firm.
FirmSubscriptionDto:
type: object
properties:
productSuite:
type: string
description: "Optional product suite to use when creating the firm.\r\n\r\nUse 'SMOKEBALL' to use the new product\
\ suite."
nullable: true
promotionId:
type: string
description: Optional promotion ID that will be used when the firm is subscribed.
nullable: true
interval:
type: string
description: "Optional interval to register the account subscription with.\r\n\r\nPossible values: Monthly, Yearly"
nullable: true
additionalProperties: false
description: The subscription details for the firm.
FirmUser:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
staffId:
type: string
description: Unique identifier of the staff member.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
userId:
type: string
description: Unique identifier of the user.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
isFormerUser:
type: boolean
description: Returns true if this user is a former user.
example: false
additionalProperties: false
FirmUserDto:
type: object
properties:
userId:
type: string
description: Unique identifier of the associated user.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
staffId:
type: string
description: Unique identifier of the associated staff member..
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
additionalProperties: false
description: Represents a mapping between a user and a staff member in a firm.
LicenceNumber:
type: object
properties:
state:
type: string
description: State associated to the licence.
nullable: true
example: IL
type:
type: string
description: Type of the licence.
nullable: true
example: ''
number:
type: string
description: Licence number.
nullable: true
additionalProperties: false
OutOfOffice:
type: object
properties:
startDate:
type: string
description: Out-of-office start date.
format: date-time
endDate:
type: string
description: Out-of-office end date.
format: date-time
additionalProperties: false
Staff:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the staff member.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
versionId:
type: string
description: Version id of the record.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
title:
type: string
description: Staff member's title.
nullable: true
example: Mr
firstName:
type: string
description: Staff member's first name.
nullable: true
example: John
middleName:
type: string
description: Staff member's middle name (if applicable).
nullable: true
example: ''
lastName:
type: string
description: Staff member's last name.
nullable: true
example: Smith
initials:
type: string
description: Staff member's initials.
nullable: true
example: JS
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Staff member's phone details.
nullable: true
cell:
allOf:
- $ref: '#/components/schemas/PhoneNumber'
description: Staff member's mobile details.
nullable: true
email:
type: string
description: Staff member's email address.
nullable: true
example: john.smith@brown.com
role:
type: string
description: Staff member's role.
nullable: true
example: Bookkeeper
rate:
type: number
description: Staff member's hourly rate in dollars.
format: double
nullable: true
example: 150
avatar:
type: string
description: Staff member's avatar.
nullable: true
example: https://example-avatar-url.com/image
former:
type: boolean
description: Whether he/she is a former member.
example: false
enabled:
type: boolean
description: Whether staff member is enabled.
example: true
userId:
type: string
description: Staff member's User Id, if enabled.
nullable: true
example: 14b5dd57-3681-420e-a483-4823424eef45
colorFill:
type: string
description: Staff member's fill color hex code.
nullable: true
example: '#797d85'
colorStroke:
type: string
description: Staff member's stroke color hex code.
nullable: true
example: '#64666a'
licenceNumbers:
type: array
items:
$ref: '#/components/schemas/LicenceNumber'
description: Licence numbers of the staff member.
nullable: true
outOfOffice:
allOf:
- $ref: '#/components/schemas/OutOfOffice'
description: Staff member's Out-of-office period, if enabled.
nullable: true
additionalProperties: false
StaffDto:
type: object
properties:
userId:
type: string
description: "Unique identifier of the associated user. Used to map staff member to the specified user id and ignored\
\ if left blank.\r\nUse the FirmUsers API to remove a staff/user mapping."
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
title:
type: string
description: Staff member's title.
nullable: true
example: Mr
firstName:
type: string
description: Staff member's first name.
nullable: true
example: John
middleName:
type: string
description: Staff member's middle name (if applicable).
nullable: true
example: ''
lastName:
type: string
description: Staff member's last name.
nullable: true
example: Smith
initials:
type: string
description: Staff member's initials.
nullable: true
example: JS
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Staff member's phone number.
nullable: true
cell:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Staff member's cell number.
nullable: true
email:
type: string
description: Staff member's email address.
nullable: true
example: john.smith@brown.com
role:
type: string
description: Staff member's role.
nullable: true
example: Bookkeeper
avatar:
type: string
description: Staff member's avatar.
nullable: true
example: https://example-avatar-url.com/image
former:
type: boolean
description: "Whether he/she is a former member. \r\n\r\nCaution: Setting a staff member to former staff will also\
\ deregister them from the firm."
nullable: true
example: false
colorFill:
type: string
description: Staff member's fill color hex code.
nullable: true
example: '#797d85'
colorStroke:
type: string
description: Staff member's stroke color hex code.
nullable: true
example: '#64666a'
additionalProperties: false
StaffPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Staff'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
StylingDetails:
type: object
properties:
primaryColorHexCode:
type: string
description: Firm's primary color hex code.
nullable: true
example: '#FF000000'
secondaryColorHexCode:
type: string
description: Firm's secondary color hex code.
nullable: true
example: '#FF000000'
fontFamilyName:
type: string
description: Firm's font family name.
nullable: true
example: Open Sans
additionalProperties: false
UpdateFirmDto:
type: object
properties:
productId:
type: string
description: "The product/tier the firm is subscribed to. Must be set when creating the firm and is optional when\
\ updating the firm.\r\n\r\nThe supported products are listed in order below, the identifier (in brackets) must\
\ be used.\r\n\r\n* Bill (SMK001)\r\n\r\n* Boost (SMK004)\r\n\r\n* Grow (SMK002)\r\n\r\n* Prosper + (SMK003)\r\
\n\r\nPossible values: SMK001, SMK004, SMK002, SMK003"
nullable: true
example: SMK001
addOnIds:
uniqueItems: true
type: array
items:
type: string
description: "The optional add-ons the firm is subscribed to. Must be specified with an accompanying productId.\r\
\n\r\nThe supported add-ons are listed below, the identifier (listed in brackets) must be used.\r\n\r\n* Intake\
\ (ADD001)\r\n\r\n* AutoTime (ADD003)\r\n\r\n* FamilyPro (ADD004)\r\n\r\n* Api (ADD005)\r\n\r\n* Workflows (ADD006)\r\
\n\r\n* PowerBI (ADD007)\r\n\r\n* Archie (ADD008)\r\n\r\n* SSO (ADD010)\r\n\r\nPossible values: ADD01, ADD003,\
\ ADD004, ADD005, ADD006, ADD007, ADD008, ADD010"
nullable: true
example:
- ADD01
- ADD003
name:
type: string
description: The name of the firm.
nullable: true
example: Brown LLC
email:
type: string
description: "The email of the firm.\r\n\r\nOnly supported in AU."
nullable: true
example: john.smith@law.com
abn:
type: string
description: "Represents a different field depending on the region.\r\n\r\n* For AU: Australian Business Number\
\ (ABN) of the firm.\r\n\r\n* For UK: Value-added Tax Number (VAT) of the firm.\r\n\r\nOnly supported in AU and\
\ UK."
nullable: true
example: '1234567890'
acn:
type: string
description: "Represents a different field depending on the region.\r\n\r\n* For AU: Australian Company Number (ACN)\
\ of the firm.\r\n\r\n* For UK: Company Registration Number (CRN) of the firm.\r\n\r\nOnly supported in AU and\
\ UK."
nullable: true
example: '1234567890'
streetAddress:
allOf:
- $ref: '#/components/schemas/FirmAddressDto'
description: Street address of the firm.
nullable: true
mailingAddress:
allOf:
- $ref: '#/components/schemas/FirmAddressDto'
description: Mailing address of the firm.
nullable: true
dxAddress:
allOf:
- $ref: '#/components/schemas/FirmDxAddressDto'
description: "DX address of the firm.\r\n\r\nOnly supported in AU."
nullable: true
phone:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Phone number of the firm.
nullable: true
fax:
allOf:
- $ref: '#/components/schemas/PhoneNumberDto'
description: Fax number of the firm.
nullable: true
status:
allOf:
- $ref: '#/components/schemas/FirmStatusDto'
description: The status of the firm.
nullable: true
additionalProperties: false
AuthorizationPolicyType:
enum:
- 0
- 1
type: integer
format: int32
CreateGroupDto:
type: object
properties:
name:
type: string
description: "s\r\n Name of the group."
nullable: true
example: Administrators
principalIds:
type: array
items:
type: string
description: Principals that are members of the group. This can be either user ids or other group ids.
nullable: true
example:
- 2595a645-94a2-46be-a60d-8410851a9671
- 2595a645-94a2-46be-a60d-8410851a9671
additionalProperties: false
Group:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the group.
nullable: true
example: ed028979-5b64-4f63-82ef-2deef728d852
name:
type: string
description: Name of the group.
nullable: true
example: Administrators
principalIds:
type: array
items:
type: string
description: Principals that are members of the group. This can be either user ids or other group ids.
nullable: true
example:
- 2595a645-94a2-46be-a60d-8410851a9671
- 2595a645-94a2-46be-a60d-8410851a9671
isDeleted:
type: boolean
description: True when the group is deleted.
example: false
additionalProperties: false
GroupPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Group'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Policy:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique id of the policy.
nullable: true
example: eb40ac02-383c-49bd-b956-c02cba814215
reference:
type: string
description: Unique reference of the policy.
nullable: true
example: 31a9caa9-4db7-4a0e-8233-d51254975099
principalId:
type: string
description: "Principal id associated to this policy if it is a principal based policy. This can be either a user\
\ id or a group id.\r\n\r\nThis is null if the policy is a resource based policy."
nullable: true
example: a7922e80-f833-48f0-8250-c00df1ebbc16
resourceId:
type: string
description: "Resource id associated to this policy if it is a resource based policy.\r\n\r\nThis is null if the\
\ policy is a principal based policy."
nullable: true
example: 54171794-5ca3-472b-889a-c03538d8c89a
rules:
type: array
items:
$ref: '#/components/schemas/Rule'
description: The rules associated to this policy.
nullable: true
additionalProperties: false
PolicyDto:
type: object
properties:
principalId:
type: string
description: "Principal id associated to this policy if it is a principal based policy. This can be either a user\
\ id or a group id.\r\n\r\nThis is null if the policy is a resource based policy."
nullable: true
example: a7922e80-f833-48f0-8250-c00df1ebbc16
resourceId:
type: string
description: "Resource id associated to this policy if it is a resource based policy.\r\n\r\nThis is null if the\
\ policy is a principal based policy."
nullable: true
example: matters/54171794-5ca3-472b-889a-c03538d8c89a
rules:
type: array
items:
$ref: '#/components/schemas/RuleDto'
description: The rules associated to this policy.
nullable: true
additionalProperties: false
Rule:
type: object
properties:
principalId:
type: string
description: "Principal id associated to this rule if the rule is associated to a resource based policy. This can\
\ be either a user id or a group id.\r\n\r\nThis is null if the policy is a principal based policy."
nullable: true
example: a7922e80-f833-48f0-8250-c00df1ebbc16
resourceId:
type: string
description: "Resource id associated to this rule if it is a principal based policy. \r\n\r\nFor matter based policies,\
\ use `matters/{matterId}` for a single matter or `matters` for all matters.\r\n\r\nThis is null if the associated\
\ policy is a resource based policy."
nullable: true
example: matters/69406c65-309d-4e35-a636-ad145e64770a
operation:
type: string
description: "The operation associated to this rule.\r\n\r\nPossible values: 'Access','Execute'."
example: Access
type:
allOf:
- $ref: '#/components/schemas/AuthorizationPolicyType'
description: "The type of the rule.\r\n \r\nPossible values: 'Deny','Allow'."
additionalProperties: false
RuleDto:
type: object
properties:
principalId:
type: string
description: "Principal id associated to this rule if the rule is associated to a resource based policy. This can\
\ be either a user id or a group id.\r\n\r\nThis is null if the policy is a principal based policy."
nullable: true
example: a7922e80-f833-48f0-8250-c00df1ebbc16
resourceId:
type: string
description: "Resource id associated to this rule if it is a principal based policy. \r\n\r\nFor matter based policies,\
\ use `matters/{matterId}` for a single matter or `matters` for all matters.\r\n\r\nThis is null if the associated\
\ policy is a resource based policy."
nullable: true
example: matters/69406c65-309d-4e35-a636-ad145e64770a
operation:
type: string
description: "The operation associated to this rule.\r\n\r\nPossible values: 'Access','Execute'."
example: Access
type:
allOf:
- $ref: '#/components/schemas/AuthorizationPolicyType'
description: "The type of the rule.\r\n \r\nPossible values: 'Deny','Allow'."
additionalProperties: false
UpdateGroupDto:
type: object
properties:
principalIds:
type: array
items:
type: string
description: Principals that are members of the group. This can be either user ids or other group ids.
nullable: true
example:
- 2595a645-94a2-46be-a60d-8410851a9671
- 2595a645-94a2-46be-a60d-8410851a9671
additionalProperties: false
CreateIntakeSubmissionRequestDto:
type: object
properties:
formId:
type: string
description: Id of the intake form to create a submission for.
nullable: true
example: ae4bc84e-b601-4767-9d0f-5d078832418e
communicationMethod:
allOf:
- $ref: '#/components/schemas/CreateSubmissionCommunicationMethod'
description: How the form will be delivered.
example: email
recipient:
allOf:
- $ref: '#/components/schemas/IntakeRecipientDto'
description: Recipient details for the submission.
nullable: true
additionalProperties: false
CreateSubmissionCommunicationMethod:
enum:
- email
- communicate
type: string
description: Specifies the communication method used when creating an intake submission
IntakeForm:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
isSmokeballForm:
type: boolean
description: 'Whether the form is a Smokeball form.
There are some forms that are created / can only be modified by Smokeball staff. The user can choose to use these
“preset” forms if they don’t want to create their own ones.'
example: true
title:
type: string
description: Display title of the intake form.
nullable: true
example: Client Intake Form
category:
allOf:
- $ref: '#/components/schemas/IntakeFormCategory'
description: Category of the form.
example: matter
matterTypes:
type: array
items:
$ref: '#/components/schemas/Link'
description: Links to matter types that this form is available for.
nullable: true
active:
type: boolean
description: Whether the form is active.
nullable: true
example: true
createdDate:
type: string
description: When the form was created.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
lastUpdated:
type: string
description: When the form was last updated.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
additionalProperties: false
description: Intake form.
IntakeFormCategory:
enum:
- lead
- matter
type: string
IntakeFormPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/IntakeForm'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
IntakeRecipientDto:
type: object
properties:
contactId:
type: string
description: Contact id that the submission is sent to.
nullable: true
example: 5d9b8697-8c6f-45dd-b22d-87045ed4df35
email:
type: string
description: Email address of the recipient.
nullable: true
example: client@example.com
name:
type: string
description: Display name of the recipient.
nullable: true
example: Sample Client
additionalProperties: false
IntakeSubmission:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
formId:
type: string
description: Id of the form that the submission is for.
nullable: true
example: ae4bc84e-b601-4767-9d0f-5d078832418e
formTitle:
type: string
description: Title of the form that the submission is for.
nullable: true
example: Client Intake Form
status:
allOf:
- $ref: '#/components/schemas/IntakeSubmissionStatus'
description: Current status of the submission.
example: draft
communicationMethod:
allOf:
- $ref: '#/components/schemas/IntakeSubmissionCommunicationMethod'
description: How the form was sent.
example: email
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Link to matter that the submission is associated with.
nullable: true
createdDate:
type: string
description: When the submission was created.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
lastUpdated:
type: string
description: When the submission was last updated.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
recipient:
allOf:
- $ref: '#/components/schemas/IntakeRecipientDto'
description: Recipient that the submission is sent to.
nullable: true
additionalProperties: false
description: Intake submission.
IntakeSubmissionCommunicationMethod:
enum:
- email
- communicate
- embed
- internalUse
- document
type: string
description: Intake submission communication method.
IntakeSubmissionCreated:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
link:
type: string
description: URL to complete the intake submission.
nullable: true
example: https://example.smokeball.com/intake/submissions/e8b673fe-5493-4b1f-986c-af82542fb6d8
additionalProperties: false
description: Intake submission created response.
IntakeSubmissionDetail:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
formId:
type: string
description: Id of the form that the submission is for.
nullable: true
example: ae4bc84e-b601-4767-9d0f-5d078832418e
formTitle:
type: string
description: Title of the form that the submission is for.
nullable: true
example: Client Intake Form
status:
allOf:
- $ref: '#/components/schemas/IntakeSubmissionStatus'
description: Current status of the submission.
example: draft
communicationMethod:
allOf:
- $ref: '#/components/schemas/IntakeSubmissionCommunicationMethod'
description: How the form was sent.
example: email
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Link to matter that the submission is associated with.
nullable: true
createdDate:
type: string
description: When the submission was created.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
lastUpdated:
type: string
description: When the submission was last updated.
format: date-time
example: '2026-01-01T00:00:00.0000000+00:00'
recipient:
allOf:
- $ref: '#/components/schemas/IntakeRecipientDto'
description: Recipient that the submission is sent to.
nullable: true
responses:
type: array
items:
$ref: '#/components/schemas/IntakeSubmissionResponseSectionDto'
description: Ordered list of sections with submitted values.
nullable: true
additionalProperties: false
description: Intake submission detail.
IntakeSubmissionPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/IntakeSubmission'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
IntakeSubmissionResponseFieldDto:
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/SubmissionResponseFieldType'
description: Field control type.
example: text
label:
type: string
description: Display label for the field.
nullable: true
example: Phone number
value:
type: string
description: Submitted value as a string.
nullable: true
example: 0400 000 000
additionalProperties: false
IntakeSubmissionResponseGroupDto:
type: object
properties:
label:
type: string
description: Display label for the group.
nullable: true
example: Primary Contact
fields:
type: array
items:
$ref: '#/components/schemas/IntakeSubmissionResponseFieldDto'
description: Fields within the group.
nullable: true
additionalProperties: false
IntakeSubmissionResponseSectionDto:
type: object
properties:
sectionTitle:
type: string
description: Title of the section.
nullable: true
example: Contact Details
groups:
type: array
items:
$ref: '#/components/schemas/IntakeSubmissionResponseGroupDto'
description: Groups within the section.
nullable: true
fields:
type: array
items:
$ref: '#/components/schemas/IntakeSubmissionResponseFieldDto'
description: Fields directly under the section.
nullable: true
additionalProperties: false
IntakeSubmissionStatus:
enum:
- draft
- active
- completed
- cancelled
type: string
description: Intake submission status.
SubmissionResponseFieldType:
enum:
- text
- multilineText
- number
- currency
- choice
- info
- date
- checkbox
- address
- yesNo
- phoneNumber
- email
- file
- appointment
- payment
- signature
type: string
description: Submission response field type.
Debtor:
type: object
properties:
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated contact.
nullable: true
additionalProperties: false
Discount:
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/DiscountType'
description: "The type of discount applied to the invoice.\r\n\r\nFixed for a fixed amount, or Percentage for a\
\ percentage-based discount.\r\n\r\nPossible values: Fixed = 0, Percentage = 1."
example: 0
fixedDiscount:
type: number
description: "The fixed discount amount to be subtracted from the invoice total.\r\n\r\nOnly applicable when Type\
\ is Fixed."
format: double
example: 100
percentage:
type: number
description: "The percentage discount to be applied to the invoice total.\r\n\r\nOnly applicable when Type is Percentage.\r\
\n\r\nExpressed as a number between 0 and 100."
format: double
example: 10
description:
type: string
description: A description of the discount, such as the reason or category.
nullable: true
example: Friend of the Firm
additionalProperties: false
DiscountType:
enum:
- 0
- 1
type: integer
format: int32
Invoice:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: The unique identifier of the invoice.
nullable: true
example: 16567e88-784c-470e-8952-e5a70fe2eb0c
versionId:
type: string
description: The unique identifier representing the current version of the invoice.
nullable: true
example: 39ffde97-eeeb-4747-bb8f-7c7c10b3c985
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: A link to the matter associated with the invoice.
nullable: true
matterId:
type: string
description: The unique identifier of the matter this invoice belongs to.
nullable: true
example: 6398a045-509e-49a2-9268-bb8231fa9340
lastUpdatedByUserId:
type: string
description: The unique identifier of the user who last updated the invoice.
nullable: true
example: 5fc5ee85-6643-4623-b019-a0dccceafe47
description:
type: string
description: A short description of the invoice contents or purpose.
nullable: true
example: Services provided.
status:
allOf:
- $ref: '#/components/schemas/InvoiceStatus'
description: "The status of the invoice.\r\n\r\nPossible values: Draft = 0, Final = 1, Paid = 2, Deleted = 3 or\
\ Void = 4."
example: 0
invoiceNumber:
type: integer
description: The sequential number assigned to the invoice.
format: int64
nullable: true
example: 10001
invoiceTitle:
type: string
description: The main title of the invoice.
nullable: true
example: My First Invoice
invoiceTitleLine2:
type: string
description: The optional second line of the invoice title.
nullable: true
example: Subtitle
issuedDate:
type: string
description: The date the invoice was issued.
format: date-time
example: '2022-09-16T00:00:00+00:00'
dueDate:
type: string
description: The date by which payment for the invoice is due.
format: date-time
example: '2022-09-25T00:00:00+00:00'
paidDate:
type: string
description: "The date the invoice was fully paid.\r\n\r\nOnly populated if the invoice has been paid in full."
format: date-time
example: '2022-09-20T00:00:00+00:00'
discount:
allOf:
- $ref: '#/components/schemas/Discount'
description: "The discount configuration for the invoice (e.g., fixed or percentage).\r\n\r\nSee InvoiceTotals.Discount\
\ for the actual amount discounted."
nullable: true
surcharge:
allOf:
- $ref: '#/components/schemas/Surcharge'
description: The surcharge configuration for the invoice (e.g., fixed or percentage).
nullable: true
debtors:
type: array
items:
$ref: '#/components/schemas/Debtor'
description: The list of debtors associated with this invoice.
nullable: true
entries:
type: array
items:
$ref: '#/components/schemas/InvoicedMatterEntryItem'
description: The individual entries (fees or expenses) included in the invoice.
nullable: true
waived:
type: boolean
description: Indicates whether the invoice has been waived.
example: false
invoiceTotals:
allOf:
- $ref: '#/components/schemas/InvoiceTotals'
description: The calculated totals for the invoice, including billed, paid, unpaid, tax, interest, discounts, etc.
nullable: true
additionalProperties: false
InvoiceFileInfo:
type: object
properties:
invoiceId:
type: string
description: Unique identifier of the requested invoice
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
versionId:
type: string
description: Unique identifier of the invoice version
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
downloadUrl:
type: string
description: Link to download file
nullable: true
example: ''
expiry:
type: string
description: Expiry date/time when the download link is no longer accessible
format: date-time
example: '2022-04-23T14:30:00Z'
status:
type: string
description: Current status of the invoice
nullable: true
example: Draft
additionalProperties: false
InvoicePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Invoice'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
InvoiceStatus:
enum:
- 0
- 1
- 2
- 3
- 4
type: integer
description: "The status of the invoice.\r\n\r\nPossible values: Draft = 0, Final = 1, Paid = 2, Deleted = 3 or Void\
\ = 4."
format: int32
InvoiceTotals:
type: object
properties:
paid:
type: number
description: The total amount that has been paid towards the invoice.
format: double
example: 100
billed:
type: number
description: "The total amount billed on the invoice, excluding tax and interest.\r\n\r\nThis includes all fees\
\ and expenses before discounts or write-offs."
format: double
example: 200
unpaid:
type: number
description: The remaining amount due on the invoice, including any unpaid tax or interest.
format: double
example: 100
unpaidExcInterest:
type: number
description: "The total unpaid amount excluding interest.\r\n\r\nIf this value is zero on an interest-bearing invoice,\
\ it indicates the principal has been fully paid,\r\nalthough interest may still be outstanding."
format: double
example: 100
writtenOff:
type: number
description: The total amount that has been written off from the invoice and is no longer expected to be paid.
format: double
example: 0
waived:
type: number
description: "The total amount that has been waived on the invoice.\r\n\r\nWaived amounts are not charged but are\
\ also not written off."
format: double
example: 0
discount:
type: number
description: "The total amount discounted on the invoice.\r\n\r\nThis includes all applied discounts reducing the\
\ billed amount."
format: double
example: 0
total:
type: number
description: The grand total for the invoice, including tax and interest, before any payments, discounts, or write-offs.
format: double
example: 100
tax:
type: number
description: The total tax amount applied to the invoice.
format: double
example: 10
interest:
type: number
description: The total interest charged on the invoice, regardless of what has been paid so far.
format: double
example: 0
feeTotal:
type: number
description: The total amount of all fees on the invoice, including both written off and non-written off fees.
format: double
example: 100
writtenOffFeeTotal:
type: number
description: The total amount of fees that have been written off.
format: double
example: 100
expenseTotal:
type: number
description: The total amount of all expenses on the invoice, including both written off and non-written off expenses.
format: double
example: 100
writtenOffExpenseTotal:
type: number
description: The total amount of expenses that have been written off.
format: double
example: 180
additionalProperties: false
InvoicedMatterEntryItem:
type: object
properties:
id:
type: string
nullable: true
versionId:
type: string
nullable: true
type:
allOf:
- $ref: '#/components/schemas/EntryType'
description: "Type of the activity.\r\n\r\nPossible values: Fixed = '0', Time = '1', Expense = '2'"
additionalProperties: false
Surcharge:
type: object
properties:
type:
allOf:
- $ref: '#/components/schemas/SurchargeType'
description: "The type of surcharge applied to the invoice.\r\n\r\nPossible values: None = 0, Fixed = 1, Percentage\
\ = 2."
example: 1
fixedSurcharge:
type: number
description: "The fixed surcharge amount applied to the invoice total.\r\n\r\nOnly applicable when Type is Fixed."
format: double
nullable: true
example: 100
percentage:
type: number
format: double
nullable: true
description:
type: string
description: A description of the surcharge, such as the reason or category.
nullable: true
example: Late Payment Fee
applyTo:
allOf:
- $ref: '#/components/schemas/SurchargeApplyType'
description: "The surcharge application type, indicating what the surcharge applies to.\r\n\r\nPossible values:\
\ None = 0, Fees = 1, Expenses = 2, FeesAndExpenses = 3."
example: 1
additionalProperties: false
SurchargeApplyType:
enum:
- 0
- 1
- 2
- 3
type: integer
format: int32
SurchargeType:
enum:
- 0
- 1
- 2
type: integer
format: int32
MatterItem:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier for the item on a matter.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
name:
type: string
description: Name of the item.
nullable: true
example: Client
index:
type: integer
description: Zero based number of this item in the list.
format: int32
example: 0
visible:
type: boolean
description: Boolean flag indicating if the item is visible.
example: false
subItems:
type: array
items:
$ref: '#/components/schemas/MatterItem'
description: List of child items associated with the item.
nullable: true
additionalProperties: false
MatterItems:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the record.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
items:
type: array
items:
$ref: '#/components/schemas/MatterItem'
description: List of items on a matter.
nullable: true
additionalProperties: false
LayoutContact:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
key:
type: string
description: Unique key name for the layout contact.
nullable: true
example: ''
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the layout contact.
nullable: true
additionalProperties: false
LayoutContactData:
required:
- contactId
- key
type: object
properties:
key:
minLength: 1
type: string
description: Name (mapping) of the layout field that contains ContactId.
contactId:
type: string
description: Unique identifier for the layout contact.
format: uuid
additionalProperties: false
LayoutDesign:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the layout design.
nullable: true
example: 763c3857-2ed9-4c5d-bee0-c48d48a7543e
name:
type: string
description: Name of the layout design.
nullable: true
example: Case Details
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
description:
type: string
description: Brief description of the layout design.
nullable: true
example: Property and title details
fields:
type: array
items:
$ref: '#/components/schemas/LayoutDesignField'
description: Collection of layout design fields.
nullable: true
additionalProperties: false
LayoutDesignField:
type: object
properties:
name:
type: string
description: Name (mapping) of the layout design field.
nullable: true
example: PinAndLotSizes[]/AccountNumber
type:
type: string
description: "Type of the layout design field.\r\n \r\nPossible values: 'Text','Combobox','Checkbox','Date','Role','Number'.\r\
\n \r\n'Role' type can represent a matter role (for a top-level layout item) or a matter relationship\
\ (for a sublayout item)."
example: Combobox
possibleValues:
type: array
items:
type: string
description: List of possible values (e.g. for Combobox field).
nullable: true
example:
- Residence
- Commercial
- Factory
- Office
additionalProperties: false
LayoutDesignInfo:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the layout design.
nullable: true
example: 763c3857-2ed9-4c5d-bee0-c48d48a7543e
name:
type: string
description: Name of the layout design.
nullable: true
example: Case Details
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
additionalProperties: false
LayoutDesignInfoPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/LayoutDesignInfo'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
LayoutEvent:
type: object
properties:
id:
type: string
nullable: true
appointmentId:
type: string
nullable: true
additionalProperties: false
LayoutMatter:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Layout matter id.
nullable: true
items:
type: array
items:
$ref: '#/components/schemas/LayoutMatterItem'
description: Layout matter item data.
nullable: true
additionalProperties: false
LayoutMatterItem:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
name:
type: string
description: Name of the layout item.
nullable: true
example: Item
description:
type: string
description: Brief description of the layout item.
nullable: true
example: Text describing item
itemId:
type: string
description: Unique identifier for the layout item.
format: uuid
example: 59791902-6280-471b-bd18-f8439ba3042f
parentId:
type: string
description: Unique identifier for the parent layout design.
nullable: true
example: Client
index:
type: integer
description: Zero-based index of the layout item.
format: int32
example: 0
parentIndex:
type: integer
description: Zero-based index of the parent layout matter item, if one exists.
format: int32
nullable: true
example: 0
layoutDesign:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the layout design.
nullable: true
values:
type: array
items:
$ref: '#/components/schemas/LayoutValue'
description: List of layout values.
nullable: true
events:
type: array
items:
$ref: '#/components/schemas/LayoutEvent'
description: List of layout events.
nullable: true
additionalProperties: false
LayoutMatterItemApiPatch:
type: object
properties:
itemId:
type: string
description: Unique identifier for the matter list item.
nullable: true
example: 59791902-6280-471b-bd18-f8439ba3042f
layoutDesignId:
type: string
description: Identifier of the layout design.
nullable: true
example: 414ab774-adce-4659-b18c-82d1b0e826a0
index:
type: integer
description: Zero-based index of the layout item.
format: int32
example: 0
parentItemId:
type: string
description: Unique identifier for the parent matter list item.
nullable: true
example: 59791902-6280-471b-bd18-f8439ba3042f
parentId:
type: string
description: Identifier of the parent matter list item specific to the provider.
nullable: true
example: Client
parentIndex:
type: integer
description: Zero-based index of the parent matter list item.
format: int32
example: 0
name:
type: string
description: Name of the layout item.
nullable: true
example: Item
description:
type: string
description: Brief description of the layout item.
nullable: true
example: Text describing item
isRemoved:
type: boolean
description: Boolean flag indicating if the layout item is to be removed.
example: false
values:
type: array
items:
$ref: '#/components/schemas/LayoutValue'
description: List of layout values.
nullable: true
events:
type: array
items:
$ref: '#/components/schemas/LayoutEvent'
description: List of layout events.
nullable: true
additionalProperties: false
LayoutMatterItemData:
type: object
properties:
itemId:
type: string
description: Unique identifier for the matter list item.
nullable: true
example: 59791902-6280-471b-bd18-f8439ba3042f
layoutDesignId:
type: string
description: Identifier of the layout design.
nullable: true
example: 414ab774-adce-4659-b18c-82d1b0e826a0
index:
type: integer
description: Zero-based index of the layout item.
format: int32
example: 0
parentItemId:
type: string
description: Unique identifier for the parent matter list item.
nullable: true
example: 59791902-6280-471b-bd18-f8439ba3042f
parentId:
type: string
description: Identifier of the parent matter list item specific to the provider.
nullable: true
example: Client
parentIndex:
type: integer
description: Zero-based index of the parent matter list item.
format: int32
example: 0
name:
type: string
description: Name of the layout item.
nullable: true
example: Item
description:
type: string
description: Brief description of the layout item.
nullable: true
example: Text describing item
values:
type: array
items:
$ref: '#/components/schemas/LayoutValue'
description: List of layout values.
nullable: true
events:
type: array
items:
$ref: '#/components/schemas/LayoutEvent'
description: List of layout events.
nullable: true
isRemoved:
type: boolean
description: Boolean flag indicating if the layout item is to be removed.
example: false
additionalProperties: false
LayoutMatterItemDataCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/LayoutMatterItem'
nullable: true
additionalProperties: false
LayoutValue:
type: object
properties:
key:
type: string
nullable: true
value:
type: string
nullable: true
state:
description: 'Gets or sets the object that contains supplemental data about the key/value pair.
This property was introduced in NV-2643, and is usage-specific. It contains data which is used together with Value.
For example, if a layout contains a textbox control with an override checkbox, their Text and IsChecked properties
can be persisted in Value and State respectively. In this case, the type of State would be bool or bool?.'
nullable: true
additionalProperties: false
IMatterItem:
type: object
properties:
type:
type: string
description: Type of the matter item.
nullable: true
readOnly: true
example: role or layout
id:
type: string
description: Unique identifier of the matter item.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
name:
type: string
description: Name of the matter item as it appears on the matter.
nullable: true
example: Vendor
subItems:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/IMatterItem'
nullable: true
description: Subitems associated to the matter item. These items vary depending on the matter.
nullable: true
additionalProperties: false
Matter:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the matter.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
externalSystemId:
type: string
description: External system id for the matter.
nullable: true
example: EXT01
versionId:
type: string
description: Version id of the record. This can be used in the UpdatedSince query parameter.
nullable: true
example: '637771038395217729'
number:
type: string
description: Human-friendly number assigned to matter.
nullable: true
example: FUS-124
title:
type: string
description: Title of the matter.
nullable: true
example: AM-0323-0005 - Smith - Sale - Jones
matterType:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated matter type.
nullable: true
clients:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of 'Client' contacts associated with the matter.
nullable: true
otherSides:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of 'OtherSide' contacts associated with the matter.
nullable: true
description:
type: string
description: Brief description of the matter.
nullable: true
example: This is a brief description for the matter
status:
type: string
description: "Current status of the matter.\r\n\r\nPossible values: Open, Pending, Closed, Deleted or Cancelled."
nullable: true
example: Open
personResponsible:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the person responsible for the matter (if applicable).
nullable: true
personAssisting:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the person assisting in the matter (if applicable).
nullable: true
personAssistingStaffs:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of additional person assisting staff members associated with the matter.
nullable: true
originatingStaff:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the originating attorney (if in US) or introducer (if in AU) of the matter.
nullable: true
originatingStaffs:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of additional originating (if in US) or introducer (if in AU) staff members
associated with the matter.
nullable: true
splitOriginatingStaffSettings:
allOf:
- $ref: '#/components/schemas/SplitMatterStaffSettings'
description: Settings for splitting originating staff members on a matter.
nullable: true
supervisor:
allOf:
- $ref: '#/components/schemas/Link'
description: "Hypermedia link of the supervisor of the matter.\r\n\r\nOnly supported in the UK."
nullable: true
clientCode:
type: string
description: "Associates an external client code to this matter.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: Client A
openedDate:
type: string
description: Date the matter was opened.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
closedDate:
type: string
description: Date the matter was closed.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadOpenedDate:
type: string
description: "Date the lead was opened.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedDate:
type: string
description: "Date the lead was closed.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedReason:
type: string
description: "Reason the lead was closed.\r\n\r\nOnly applies if isLead is true."
nullable: true
example: No longer interested
isLead:
type: boolean
description: Boolean flag indicating if the matter is a lead.
example: false
branch:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated branch.
nullable: true
branchProviderId:
type: string
description: Unique identifier of the associated branch provider.
nullable: true
example: Smokeball
referralType:
type: string
description: The referral type of the matter.
nullable: true
referrer:
allOf:
- $ref: '#/components/schemas/Link'
description: The referrer contact of the matter.
nullable: true
referralAgreementFeeType:
type: string
description: The referral agreement fee type.
nullable: true
referralAgreementFee:
type: number
description: The referral agreement fee value.
format: double
nullable: true
referralAgreementFeeComment:
type: string
description: The referral agreement fee comment.
nullable: true
items:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/IMatterItem'
nullable: true
description: Items associated with the matter.
nullable: true
tags:
type: array
items:
$ref: '#/components/schemas/MatterTag'
description: Tags associated with the matter.
nullable: true
additionalProperties: false
MatterDto:
type: object
properties:
externalSystemId:
type: string
description: External system id for the matter.
nullable: true
example: EXT01
number:
type: string
description: Human-friendly number assigned to matter.
nullable: true
example: FUS-124
matterTypeId:
type: string
description: "Unique identifier of the matter type associated with the matter.\r\n \r\nMatter types define\
\ what information can be saved to the matter, relevant to that area of law and state / location.\r\n \
\ \r\nA pre-configured list of matter types can be obtained via the 'GET /mattertypes' API.\r\n \
\ \r\n'Lead' matter types are different from the standard matter types used when creating a 'Matter'.\r\n \
\ \r\nUse the 'Type' query parameter in the 'GET /mattertypes' API call to get 'Lead' specific matter types."
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
clientIds:
type: array
items:
type: string
description: List of 'Client' contact id's associated with the matter.
nullable: true
example:
- 832e778f-83df-454a-b344-768a862a7e67
otherSideIds:
type: array
items:
type: string
description: List of 'OtherSide' contact id's associated with the matter.
nullable: true
example:
- 776e778f-83df-454a-b344-768a862a6e58
branchId:
type: string
description: Unique identifier of the associated branch.
nullable: true
example: dd4e4381-b6a0-4c64-8feb-e8ea8016ea42
branchProviderId:
type: string
description: Unique identifier of the associated branch provider.
nullable: true
example: Smokeball
clientRole:
type: string
description: "'Client' matter type representative option for the matter.\r\n\r\nIf unsure, this can be left empty\
\ and the default Client role will be used."
nullable: true
example: Buyer
otherSideRole:
type: string
description: "'OtherSide' matter type representative option for the matter.\r\n\r\nIf unsure, this can be left empty\
\ and the default OtherSide role will be used."
nullable: true
example: Seller
description:
type: string
description: Brief description of the matter.
nullable: true
example: This is a brief description for the matter
status:
type: string
description: "Current status of matter.\r\n\r\nPossible values: Open, Pending, Closed, Deleted or Cancelled."
nullable: true
example: Open
openedDate:
type: string
description: Date the matter was opened. This can be backdated if required.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
closedDate:
type: string
description: Date the matter was closed. This can be backdated if required.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadOpenedDate:
type: string
description: "Date the lead was opened. This can be backdated if required.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedDate:
type: string
description: "Date the lead was closed. This can be backdated if required.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedReason:
type: string
description: "Reason the lead was closed.\r\n\r\nOnly applies if isLead is true."
nullable: true
example: No longer interested
referralType:
type: string
description: "Referral Type of the matter.\r\n\r\nCustom Referral Types are also supported, the name or id of the\
\ Custom Referral Type can be used. If the name is used, it is looked up and stored as the id.\r\n\r\nSee the\
\ Referral Types API for retrieval of all valid Referral Types.\r\n\r\nPossible values may also differ per region."
nullable: true
example: Google
referrerId:
type: string
description: Contact id of the person that referred the matter.
nullable: true
example: 97bbe49f-6460-4bfc-b287-34ddfdbb81ef
referralAgreementFeeType:
type: string
description: "The referral agreement fee type.\r\n\r\nPossible values: %, Flat fee, Other"
nullable: true
referralAgreementFee:
type: number
description: The referral agreement fee value.
format: double
nullable: true
referralAgreementFeeComment:
type: string
description: The referral agreement fee comment.
nullable: true
personResponsibleStaffId:
type: string
description: Staff id of the person responsible for the matter (if applicable).
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
personAssistingStaffId:
type: string
description: Staff id of the person assisting in the matter (if applicable).
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
personAssistingStaffIds:
type: array
items:
type: string
description: Staff ids of the other persons assisting in the matter (if applicable).
nullable: true
example:
- c85d28cb-a760-4627-aa59-0a853c2e65ed
originatingStaffId:
type: string
description: Staff id of the originating attorney (if in US) or an Introducer (if in AU)
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
originatingStaffIds:
type: array
items:
type: string
description: "Staff ids of the other originating attorneys (if in US) or an Introducer (if in AU)\r\n\r\nRequired\
\ when SplitOriginatingStaffSettings is provided and enabled."
nullable: true
example:
- c85d28cb-a760-4627-aa59-0a853c2e65ed
splitOriginatingStaffSettings:
allOf:
- $ref: '#/components/schemas/SplitMatterStaffSettingsDto'
description: 'Settings for splitting originating staff members on a matter.
When enabled, this allows distribution of originating staff responsibilities across multiple staff members
using either equal splits or custom ratios. The staff IDs specified in SplitMatterStaffs must exactly
match the OriginatingStaffIds provided.
Validation rules:
- OriginatingStaffIds must be provided when this setting is enabled
- Staff ratios must sum to 10000 (100%) when using UseRatio split method
- RemainderStaffId must be one of the staff members in the SplitMatterStaffs collection
- No duplicate staff members allowed'
nullable: true
supervisorStaffId:
type: string
description: "Staff id of the supervisor of the matter.\r\n\r\nOnly supported in the UK."
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
clientCode:
type: string
description: "Associates an external client code to this matter.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: Client A
isLead:
type: boolean
description: Optional boolean flag indicating if a 'Lead' is being created. This must be set to 'true' when creating
a 'Lead'.
example: false
additionalProperties: false
MatterDto2:
type: object
properties:
externalSystemId:
type: string
description: External system id for the matter.
nullable: true
example: EXT01
number:
type: string
description: Human-friendly number assigned to matter.
nullable: true
example: FUS-124
matterTypeId:
type: string
description: "Unique identifier of the matter type associated with the matter.\r\n \r\nMatter types define\
\ what information can be saved to the matter, relevant to that area of law and state / location.\r\n \
\ \r\nA pre-configured list of matter types can be obtained via the 'GET /mattertypes' API.\r\n \
\ \r\n'Lead' matter types are different from the standard matter types used when creating a 'Matter'.\r\n \
\ \r\nUse the 'Type' query parameter in the 'GET /mattertypes' API call to get 'Lead' specific matter types."
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
description:
type: string
description: Brief description of the matter.
nullable: true
example: This is a brief description for the matter
status:
type: string
description: "Current status of matter.\r\n\r\nPossible values: Open, Pending, Closed, Deleted or Cancelled."
nullable: true
example: Open
dateOpened:
type: string
description: Date when the matter was opened. This can be backdated if required.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
openedDate:
type: string
description: Date the matter was opened. This can be backdated if required.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
closedDate:
type: string
description: Date the matter was closed. This can be backdated if required.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadOpenedDate:
type: string
description: "Date the lead was opened. This can be backdated if required.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedDate:
type: string
description: "Date the lead was closed. This can be backdated if required.\r\n\r\nOnly applies if isLead is true."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
leadClosedReason:
type: string
description: "Reason the lead was closed.\r\n\r\nOnly applies if isLead is true."
nullable: true
example: No longer interested
referralType:
type: string
description: "Referral Type of the matter.\r\n\r\nPossible values are different per region."
nullable: true
example: Google
referrerId:
type: string
description: Contact id of the person that referred the matter.
nullable: true
example: 97bbe49f-6460-4bfc-b287-34ddfdbb81ef
referralAgreementFeeType:
type: string
description: "The referral agreement fee type.\r\n\r\nPossible values: %, Flat fee, Other"
nullable: true
referralAgreementFee:
type: number
description: The referral agreement fee value.
format: double
nullable: true
referralAgreementFeeComment:
type: string
description: The referral agreement fee comment.
nullable: true
personResponsibleStaffId:
type: string
description: Staff id of the person responsible for the matter (if applicable).
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
personAssistingStaffId:
type: string
description: Staff id of the person assisting in the matter (if applicable).
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
personAssistingStaffIds:
type: array
items:
type: string
description: Staff ids of the other persons assisting in the matter (if applicable).
nullable: true
example:
- c85d28cb-a760-4627-aa59-0a853c2e65ed
originatingStaffId:
type: string
description: Staff id of the originating attorney (if in US) or an Introducer (if in AU)
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
originatingStaffIds:
type: array
items:
type: string
description: "Staff ids of the other originating attorneys (if in US) or an Introducer (if in AU)\r\n\r\nRequired\
\ when SplitOriginatingStaffSettings is provided and enabled.\r\nThis field must be included when updating SplitOriginatingStaffSettings."
nullable: true
example:
- c85d28cb-a760-4627-aa59-0a853c2e65ed
splitOriginatingStaffSettings:
allOf:
- $ref: '#/components/schemas/SplitMatterStaffSettingsDto'
description: 'Settings for splitting originating staff members on a matter.
When enabled, this allows distribution of originating staff responsibilities across multiple staff members
using either equal splits or custom ratios. The staff IDs specified in SplitMatterStaffs must exactly
match the OriginatingStaffIds provided.
OriginatingStaffIds must be included in the same request when updating these settings.
Validation rules:
- OriginatingStaffIds must be provided when this setting is enabled
- Staff ratios must sum to 10000 (100%) when using UseRatio split method
- RemainderStaffId must be one of the staff members in the SplitMatterStaffs collection
- No duplicate staff members allowed'
nullable: true
supervisorStaffId:
type: string
description: "Staff id of the supervisor of the matter.\r\n\r\nOnly supported in the UK."
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
clientCode:
type: string
description: "Associates an external client code to this matter.\r\n\r\nOnly supported in AU and UK."
nullable: true
example: Client A
branchId:
type: string
description: Unique identifier of the associated branch.
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
branchProviderId:
type: string
description: Unique identifier of the associated branch provider.
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
clientRole:
type: string
description: "'Client' matter type representative option for the matter.\r\n\r\nRequired and only supported when\
\ converting a 'Lead' to 'Matter'."
nullable: true
example: Buyer
isLead:
type: boolean
description: "Optional boolean flag indicating if matter is a 'Lead'.\r\n \r\nThis must be set to 'false'\
\ when converting a 'Lead' to 'Matter'."
example: false
clientIds:
type: array
items:
type: string
description: List of unique identifiers of 'Client' contacts associated with the matter.
nullable: true
otherSideIds:
type: array
items:
type: string
description: List of unique identifiers of 'OtherSide' contacts associated with the matter.
nullable: true
items:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/MatterItemDto'
nullable: true
description: Items associated with the matter.
nullable: true
additionalProperties: false
MatterItemContactDto:
type: object
properties:
id:
type: string
description: Unique identifier of the contact.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
additionalProperties: false
MatterItemDto:
type: object
properties:
id:
type: string
description: Unique identifier of the matter item.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
contactId:
type: string
description: "Unique identifier of the associated contact.\r\n\r\nOnly applicable for 'role' matter items."
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
contact:
allOf:
- $ref: '#/components/schemas/MatterItemContactDto'
description: "Associated contact.\r\n\r\nOnly applicable for 'role' matter items."
nullable: true
roleDescription:
type: string
description: "Displayed name for the matter item.\r\n \r\nOnly applicable for 'role' matter items."
nullable: true
description:
type: string
description: "Description for the matter item.\r\n \r\nOnly applicable for 'role' matter items."
nullable: true
subItems:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/MatterItemDto'
nullable: true
description: "SubItems associated with the matter item.\r\n\r\nNot applicable for matter sub items."
nullable: true
additionalProperties: false
MatterPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Matter'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
MatterRelationships:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the record.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
relationships:
type: array
items:
$ref: '#/components/schemas/Relationship'
description: List of associated relationships.
nullable: true
additionalProperties: false
MatterRoles:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the record.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
matterId:
type: string
description: Matter id.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
roles:
type: array
items:
$ref: '#/components/schemas/Role'
description: List of associated roles.
nullable: true
additionalProperties: false
MatterTag:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the tag.
nullable: true
example: a15086f5-4da7-4271-8fea-b24d479ced2b
type:
type: string
description: Tag type.
example: Staff
name:
type: string
description: Name of the tag.
nullable: true
example: ''
color:
type: string
description: 'Color associated with the tag.
Defaults to ''Brown'' if not specified.'
nullable: true
example: Light Blue
staff:
allOf:
- $ref: '#/components/schemas/Link'
description: 'Link to staff.
Available when `P:MatterManagement.Api.Shared.Resources.MatterTag.Type` is `F:MatterManagement.Api.Shared.Resources.MatterTagType.Staff`.'
nullable: true
additionalProperties: false
MatterTagCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/MatterTag'
nullable: true
additionalProperties: false
MatterTagDto:
type: object
properties:
id:
type: string
description: 'Unique identifier for the tag.
When the tag Type is Staff, this value represents the staff member''s ID.
When GET tags, this value represents the tag''s unique identifier after creation.
Not required when posting standard custom tags.'
nullable: true
name:
type: string
description: 'Human-readable display name of the tag.
API would know you are adding the same tag to multiple matters as long as they have the same Name.
You can put any string you like and you can re-use strings as they are stored and re-used per account.
Theoretically an Id would be the same across matters for a custom tag.'
nullable: true
color:
type: string
description: 'Visual color associated with the tag.
Must be one of the supported color values (the valid list is documented separately).
If not provided, the color will default to Brown.
If the tag already exists, this field will be ignored and the existing color will be retained.'
nullable: true
type:
type: string
description: 'Defines what kind of tag this is.
Accepted values:
Staff – The tag represents a firm staff member.
Custom – The tag is a user-defined custom label.'
example: Staff
additionalProperties: false
ReferralType:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Id of the referral type.
nullable: true
name:
type: string
description: Name of the referral type.
nullable: true
isDeleted:
type: boolean
description: Flag indicating whether the referral type has been deleted.
additionalProperties: false
ReferralTypeCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/ReferralType'
nullable: true
additionalProperties: false
Relationship:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the relationship.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
name:
type: string
description: Name of the relationship.
nullable: true
example: Solicitor
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated contact.
nullable: true
representatives:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of the associated representatives.
nullable: true
additionalProperties: false
RelationshipDto:
type: object
properties:
name:
type: string
description: Name of the relationship.
nullable: true
example: Provider
displayName:
type: string
description: Display Name of the relationship.
nullable: true
example: Medical Provider
contactId:
type: string
description: Unique identifier of the contact.
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
representativeIds:
type: array
items:
type: string
description: List of associated representative contact ids.
nullable: true
example:
- 776e778f-83df-454a-b344-768a862a7e67
isMatterItemRequired:
type: boolean
description: Boolean flag indicating if a matter item is required.
additionalProperties: false
Role:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the role.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
name:
type: string
description: Name of the role.
nullable: true
example: Client
contact:
allOf:
- $ref: '#/components/schemas/Link'
description: Hypermedia link of the associated contact.
nullable: true
roleDescription:
type: string
description: Name of the role (user editable).
nullable: true
example: Head Honcho
description:
type: string
description: Description of the role.
nullable: true
example: The person for whom I am working
representatives:
type: array
items:
$ref: '#/components/schemas/Link'
description: List of hypermedia links of the associated representatives.
nullable: true
relationships:
type: array
items:
$ref: '#/components/schemas/Relationship'
description: List of associated relationships.
nullable: true
isClient:
type: boolean
description: Boolean flag indicating if role belongs to a 'Client'.
example: false
isOtherSide:
type: boolean
description: Boolean flag indicating if role belongs to an 'OtherSide'.
example: false
additionalProperties: false
RoleDto:
type: object
properties:
name:
type: string
description: Name of the role.
nullable: true
example: Provider
displayName:
type: string
description: Display Name of the role.
nullable: true
example: Medical Provider
description:
type: string
description: Description of the role.
nullable: true
example: Client
contactId:
type: string
description: Unique identifier of the contact.
nullable: true
example: c85d28cb-a760-4627-aa59-0a853c2e65ed
representativeIds:
type: array
items:
type: string
description: List of associated representative contact ids.
nullable: true
example:
- 776e778f-83df-454a-b344-768a862a7e67
isMatterItemRequired:
type: boolean
description: Boolean flag indicating if matter item is required.
relationships:
type: array
items:
$ref: '#/components/schemas/RelationshipDto'
description: List if relationships associated with the role.
nullable: true
additionalProperties: false
SplitMatterStaff:
type: object
properties:
matterStaffId:
type: string
description: The unique identifier for the split matter staff.
nullable: true
matterStaffRatio:
type: integer
description: The split ratio for the matter staff.
format: int64
additionalProperties: false
SplitMatterStaffDto:
type: object
properties:
matterStaffId:
type: string
description: The unique identifier for the split matter staff.
nullable: true
matterStaffRatio:
type: integer
description: The split ratio for the matter staff.
format: int64
additionalProperties: false
SplitMatterStaffSettings:
type: object
properties:
isEnabled:
type: boolean
description: Indicates whether the split matter staff settings are enabled or not.
splitMatterStaffs:
type: array
items:
$ref: '#/components/schemas/SplitMatterStaff'
description: List of staff members involved in the split matter settings.
nullable: true
splitMethod:
type: string
description: "Method used to split the matter staff.\r\n\r\nPossible values: Unknown, SplitEvenly, UseRatio."
nullable: true
remainderStaffId:
type: string
description: The unique identifier for the staff member who will handle the remainder of the matter after the split.
nullable: true
additionalProperties: false
SplitMatterStaffSettingsDto:
type: object
properties:
isEnabled:
type: boolean
description: Indicates whether the split matter staff settings are enabled or not.
splitMatterStaffs:
type: array
items:
$ref: '#/components/schemas/SplitMatterStaffDto'
description: List of staff members involved in the split matter settings.
nullable: true
splitMethod:
type: string
description: "Method used to split the matter staff.\r\n\r\nPossible values: Unknown, SplitEvenly, UseRatio."
nullable: true
remainderStaffId:
type: string
description: The unique identifier for the staff member who will handle the remainder of the matter after the split.
nullable: true
additionalProperties: false
MatterListItem:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique provider-specific identifier of the item.
nullable: true
example: Plaintiff
providerId:
type: string
description: Provider name of the item.
nullable: true
example: roles_provider
itemId:
type: string
description: Unique identifier of the item.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
name:
type: string
description: Name of the item.
nullable: true
example: Claimant
subItems:
type: array
items:
$ref: '#/components/schemas/MatterListItem'
description: List of sub items belonging to the item.
nullable: true
additionalProperties: false
MatterType:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the matter type.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
versionId:
type: string
description: Version id of the record.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
name:
type: string
description: Name of the matter type.
nullable: true
example: Federal Litigation
category:
type: string
description: Name of the category to which the matter type belongs.
nullable: true
example: Litigation
type:
allOf:
- $ref: '#/components/schemas/TypeCategory'
description: "Name of the category type to which the matter type belongs (i.e. MatterType or LeadType).\r\n \
\ \r\nPossible values: Matter Type = 0, Lead Type = 1."
example: 0
representativeOptions:
type: array
items:
type: string
description: List of possible representative types for the matter type.
nullable: true
example:
- Applicant
- Respondent
location:
type: string
description: State to which the matter type belongs.
nullable: true
example: Litigation
isDeleted:
type: boolean
description: "Returns true if the matter type is deleted.\r\n\r\nDeleted matter types cannot be used when creating\
\ new leads/matters."
items:
type: array
items:
$ref: '#/components/schemas/MatterListItem'
nullable: true
additionalProperties: false
MatterTypeInfo:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the matter type.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
versionId:
type: string
description: Version id of the record.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
name:
type: string
description: Name of the matter type.
nullable: true
example: Federal Litigation
category:
type: string
description: Name of the category to which the matter type belongs.
nullable: true
example: Litigation
type:
allOf:
- $ref: '#/components/schemas/TypeCategory'
description: "Name of the category type to which the matter type belongs (i.e. MatterType or LeadType).\r\n \
\ \r\nPossible values: Matter Type = 0, Lead Type = 1."
example: 0
representativeOptions:
type: array
items:
type: string
description: List of possible representative types for the matter type.
nullable: true
example:
- Applicant
- Respondent
location:
type: string
description: State to which the matter type belongs.
nullable: true
example: Litigation
isDeleted:
type: boolean
description: "Returns true if the matter type is deleted.\r\n\r\nDeleted matter types cannot be used when creating\
\ new leads/matters."
additionalProperties: false
MatterTypeInfoPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/MatterTypeInfo'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
StringCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
type: string
nullable: true
additionalProperties: false
TypeCategory:
enum:
- 0
- 1
type: integer
description: "Name of the category type to which the matter type belongs (i.e. MatterType or LeadType).\r\n \
\ \r\nPossible values: Matter Type = 0, Lead Type = 1."
format: int32
Memo:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: The unique identifier of the memo.
nullable: true
example: 009f778f-83df-454a-b344-768a862a7e55
matterId:
type: string
description: The unique identifier of the matter.
nullable: true
example: 776e778f-83df-454a-b344-768a862a6e58
title:
type: string
description: The title of the memo.
nullable: true
example: Update
text:
type: string
description: "The text (content) of the memo.\r\n \r\nIn RTF (Rich Text Format)."
nullable: true
example: '{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2{\\fonttbl{\\f0\\fcharset0 Times New Roman;}{\\f2\\fcharset0
Calibri;}}{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0{\\lang1033\\fs18\\f2\\cf0
\\cf0\\ql{\\f2 {\\ltrch There has been a recent update on this matter.}\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\sl15\\slmult0\\par}\r\n}\r\n}'
plainText:
type: string
description: The plain text (content) of the memo.
nullable: true
example: There has been a recent update on this matter.
createdDate:
type: string
description: Date the memo was created.
format: date-time
example: '2022-04-23T14:00:00Z'
createdByUserId:
type: string
description: The unique identifier of the user who created the memo.
nullable: true
example: 010f7d8e-82d1-454b-c324-760a862a7e22
lastUpdated:
type: string
description: Date and time that the memo was last updated.
format: date-time
nullable: true
example: '2022-05-02T16:22:02Z'
updatedByUserId:
type: string
description: The unique identifier of the user who last updated the memo.
nullable: true
example: 010f7d8e-82d1-454b-c324-760a862a7e22
isDeleted:
type: boolean
description: Indicates whether or not the memo is deleted (true if it is, false if not).
additionalProperties: false
MemoDto:
required:
- text
- title
type: object
properties:
title:
minLength: 1
type: string
description: The title of the memo.
example: Update
text:
type: string
description: "The text (content) of the memo.\r\n \r\nSupports plain-text and RTF."
example: There has been a recent update on this matter.
userId:
type: string
description: Unique identifier of the user.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
createdDateUtc:
type: string
description: "Date that the memo was created.\r\n\r\nWill default to the current date and time, if not supplied."
format: date-time
nullable: true
example: '2022-07-01'
additionalProperties: false
MemoPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Memo'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Notification:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the notification.
nullable: true
example: e2fd015b-8a60-42be-9ea4-b2ef7aa0289b
createdByUserId:
type: string
description: The user that created this notification.
nullable: true
example: db0b4298-67ef-4638-a92a-5bb830ea6af6
createdDate:
type: string
description: Staff id to notify.
nullable: true
example: '"832e778f-83df-454a-b344-768a862a7e67"'
icon:
type: string
description: The icon to display for the notification.
nullable: true
example: ''
iconColor:
type: string
description: The icon hex color to display for the notification.
nullable: true
example: '#25C9A4'
message:
type: string
description: The message to display for the notification.
nullable: true
example: '[@staffId] has **assigned** you a Task.'
toastyIcon:
type: string
description: The icon to display for the toast notification.
nullable: true
toastyMessage:
type: string
description: The message to display for the message.
nullable: true
isRead:
type: boolean
description: "True if the notification has been forcefully read by the user.\r\n \r\nThis is different\
\ to the property - which\
\ is not forceful."
example: false
hasBeenSeen:
type: boolean
description: "True if the notification was \"seen\" by the user.\r\n\r\nThis is different to the forceful \"read\"\
\ state."
example: false
creationTimestamp:
type: string
description: The time the notification was created.
format: date-time
updatedDate:
type: string
description: The last time the notification was modified (marked as read, deleted etc).
format: date-time
example: '2020-02-15T00:00:00Z'
isDeleted:
type: boolean
description: True if the notification has been deleted.
example: false
additionalProperties: false
NotificationDto:
type: object
properties:
staffId:
type: string
description: Staff id to notify.
nullable: true
example: 832e778f-83df-454a-b344-768a862a7e67
icon:
type: string
description: "The icon to display for the notification.\r\n\r\nWill be validated against the Smokeball icon sets."
nullable: true
example: ''
iconColor:
type: string
description: The icon hex color to display for the notification.
nullable: true
example: '#25C9A4'
message:
type: string
description: "The message to display for the notification.\r\n\r\nSupports basic markdown syntax, such as: ** bold\
\ **, -- italic --\r\n \r\nSupports basic UI markdown syntax for staff member id, such as [@staffId]"
nullable: true
example: '[@staffId] has **assigned** you a Task.'
toastyIcon:
type: string
description: The toast notification icon to display for the notification.
nullable: true
toastyMessage:
type: string
description: The toast notification message to display for the notification.
nullable: true
actionUri:
type: string
description: The Smokeball uri to execute when the notification is clicked.
nullable: true
additionalProperties: false
Plugin:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
externalId:
type: string
description: Optional id provided by the external system that owns this plugin.
nullable: true
application:
allOf:
- $ref: '#/components/schemas/PluginApplication'
description: The application that the plugin should be rendered in.
type:
allOf:
- $ref: '#/components/schemas/PluginType'
description: The type of component the plugin should represent.
version:
allOf:
- $ref: '#/components/schemas/PluginVersion'
description: Current version of the plugin.
nullable: true
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
createdDate:
type: string
description: Plugin created date in UTC.
format: date-time
example: '2020-02-15T00:00:00Z'
lastUpdatedDate:
type: string
description: Plugin last updated date in UTC.
format: date-time
example: '2020-02-15T00:00:00Z'
key:
type: string
description: Signing key of the plugin to verify integrity of requesting secure URLs.
nullable: true
additionalData:
type: object
additionalProperties: {}
description: Collection of plugin meta data as KeyValuePair(string, object).
nullable: true
additionalProperties: false
PluginApplication:
enum:
- Native
- Web
- Archie
type: string
description: The application that the plugin should be rendered in.
PluginAttributes:
type: object
properties:
text:
type: string
description: The text to be rendered on the plugin component (where applicable).
nullable: true
icon:
type: string
description: "The Icon to be rendered on the plugin component (where applicable).\r\nRefer to documentation for\
\ a full list of icons."
nullable: true
color:
type: string
description: The hex color code to be rendered on the plugin component (where applicable).
nullable: true
tooltip:
type: string
description: 'Optional: The tooltip to display on component hover (where applicable).'
nullable: true
page:
allOf:
- $ref: '#/components/schemas/PluginPage'
description: Page attributes for the plugin (where applicable).
nullable: true
additionalProperties: false
PluginAvailability:
type: object
properties:
matterTypeIds:
type: array
items:
type: string
description: "Optional matter types applicable for the plugin.\r\n\r\nPlugin is applicable for all matter types\
\ if this is left empty."
nullable: true
additionalProperties: false
PluginDto:
type: object
properties:
externalId:
type: string
description: Optional id provided by the external system that owns this plugin.
nullable: true
application:
allOf:
- $ref: '#/components/schemas/PluginApplication'
description: The application that the plugin should be rendered in.
type:
allOf:
- $ref: '#/components/schemas/PluginType'
description: The type of component the plugin should represent.
version:
allOf:
- $ref: '#/components/schemas/PluginVersionDto'
description: Current version of the plugin.
nullable: true
key:
type: string
description: "Signing key of the plugin to verify integrity of requesting secure URLs.\r\nOnly available to set\
\ on Plugin creation."
nullable: true
additionalData:
type: object
additionalProperties: {}
description: Collection of KeyValuePair(string, object) to update Plugin meta data.
nullable: true
additionalProperties: false
PluginPage:
type: object
properties:
title:
type: string
description: "Optional: The title of the page rendered by the plugin (where applicable).\r\nIf not specified, the\
\ name of the plugin will be used."
nullable: true
width:
type: integer
description: "Optional: The width of the page rendered by the plugin (where applicable).\r\nIf not specified, a\
\ default width will be used."
format: int32
height:
type: integer
description: "Optional: The height of the page rendered by the plugin (where applicable).\r\nIf not specified, a\
\ default width will be used."
format: int32
useDefaultBrowser:
type: boolean
description: "Optional: Override browser behavior.\r\nWhen true, loads the endpoint in the internal browser (where\
\ applicable)."
additionalProperties: false
PluginPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Plugin'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
PluginSubscription:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the subscription.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
pluginId:
type: string
description: Unique identifier of the plugin.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
pluginVersionId:
type: string
description: Unique identifier of the plugin version. Can be null.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
createdDate:
type: string
description: Plugin subscription created date in UTC.
format: date-time
example: '2020-02-15T00:00:00Z'
lastUpdatedDate:
type: string
description: Plugin subscription last updated date in UTC.
format: date-time
example: '2020-02-15T00:00:00Z'
isDisabled:
type: boolean
description: True when the subscription is disabled (the plugin will not function for the user).
additionalProperties: false
PluginSubscriptionPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/PluginSubscription'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
PluginType:
enum:
- Button
- Tab
type: string
description: The type of component the plugin should represent.
PluginUrlRequestDto:
type: object
properties:
matterId:
type: string
description: The matter id associated with the request, if applicable.
nullable: true
example: 0c5a2296-9e02-4c58-bd14-b7467d4c9bcb
additionalData:
type: object
additionalProperties: {}
description: "Additional key/value pairs to pass to the plugin endpoint.\r\nReserved keys (AccountId, UserId, UserEmail,\
\ MatterId) will be rejected."
nullable: true
additionalProperties: false
PluginVersion:
type: object
properties:
id:
type: string
description: Unique identifier of the plugin version.
nullable: true
pluginId:
type: string
description: The plugin id this version is associated to.
nullable: true
versionNumber:
type: integer
description: The associated version number.
format: int32
name:
type: string
description: The name of the plugin.
nullable: true
description:
type: string
description: A description of the plugin.
nullable: true
placement:
type: string
description: "A placement key representing where the plugin should be rendered in the UI.\r\nPlacement key must\
\ correspond to the type of the plugin.\r\nRefer to documentation for valid placement keys."
nullable: true
requestEndpointUrl:
type: string
description: "The url that is called to request the plugin endpoint.\r\n\r\nWhen a user views a plugin, we request\
\ the url to view securely through your backend.\r\n\r\nMatter and user information is passed to the endpoint\
\ through POST body, and the endpoint is expected to return a JSON object containing a url field.\r\nThe plugin\
\ will then load the URL and display it to the user."
nullable: true
attributes:
allOf:
- $ref: '#/components/schemas/PluginAttributes'
description: Visual attributes associated to this plugin.
nullable: true
availability:
allOf:
- $ref: '#/components/schemas/PluginAvailability'
description: 'Optional: Settings for determining the availability of a plugin.'
nullable: true
createdDate:
type: string
description: Plugin version created date in UTC
format: date-time
example: '2020-02-15T00:00:00Z'
lastUpdatedDate:
type: string
description: Plugin version last updated date in UTC
format: date-time
example: '2020-02-15T00:00:00Z'
additionalProperties: false
PluginVersionDto:
type: object
properties:
name:
type: string
description: The name of the plugin.
nullable: true
description:
type: string
description: A description of the plugin.
nullable: true
placement:
type: string
description: "A placement key representing where the plugin should be rendered in the UI.\r\n\r\nPlacement key must\
\ correspond to the type of the plugin.\r\n\r\nRefer to documentation for valid placement keys."
nullable: true
requestEndpointUrl:
type: string
description: "The url that is called to request the plugin endpoint.\r\n\r\nWhen a user views a plugin, we request\
\ the url to view securely through your backend.\r\n\r\nMatter and user information is passed to the endpoint\
\ through POST body, and the endpoint is expected to return a JSON object containing a url field.\r\nThe plugin\
\ will then load the URL and display it to the user."
nullable: true
attributes:
allOf:
- $ref: '#/components/schemas/PluginAttributes'
description: Visual attributes associated to this plugin.
nullable: true
availability:
allOf:
- $ref: '#/components/schemas/PluginAvailability'
description: Optional settings for determining the availability of a plugin.
nullable: true
additionalProperties: false
PatchPortalTaskDto:
type: object
properties:
externalUserId:
type: string
description: The optional external user identifier of the external system.
nullable: true
title:
type: string
description: The title of the task to be displayed in the UI.
nullable: true
example: 'Sign: Verification of Identity'
url:
type: string
description: The URL that will be displayed within the task content.
nullable: true
example: http://www.yourwebsite.com
actionText:
type: string
description: "Optional action text, a single word to describe the action the task relates to. \r\n\r\nDefaults to\
\ \"Complete\", but other examples could be \"Sign\" or \"Review\"."
nullable: true
example: Complete
cancelled:
type: boolean
description: Whether the task is Cancelled
nullable: true
example: true
cancelledText:
type: string
description: Optional cancelled text, used on the task cancelled screen if provided.
nullable: true
example: Signing Cancelled!
cancelledUrl:
type: string
description: "Optional cancelled URL, which is a URL that is loaded in the task content body instead of the default\
\ cancelled screen if provided.\r\n\r\nThis option overrides CancelledText if provided."
nullable: true
example: http://www.yourwebsite.com
completed:
type: boolean
description: Whether the task is Completed
nullable: true
example: true
completedText:
type: string
description: Optional completed text, used on the task success screen if provided.
nullable: true
example: Signing Complete!
completedUrl:
type: string
description: "Optional completed URL, which is a URL that is loaded in the task content body instead of the default\
\ success screen if provided.\r\n\r\nThis option overrides CompletedText if provided."
nullable: true
example: http://www.yourwebsite.com
expired:
type: boolean
description: Whether the task is Expired
nullable: true
example: true
expiredText:
type: string
description: Optional expired text, used on the task expired screen if provided.
nullable: true
example: Signing Expired!
expiredUrl:
type: string
description: "Optional expired URL, which is a URL that is loaded in the task content body instead of the default\
\ expired screen if provided.\r\n\r\nThis option overrides ExpiredText if provided."
nullable: true
example: http://www.yourwebsite.com
additionalProperties: false
PortalMessageDto:
required:
- message
type: object
properties:
contactId:
type: string
description: Unique identifier of the contact.
format: uuid
example: 93421c6f-40bd-465d-bb95-3b3b5e200e30
message:
minLength: 1
type: string
requireMFA:
type: boolean
description: Whether MFA is required before showing the message content.
example: true
additionalProperties: false
PortalTaskDto:
required:
- externalUserId
- title
- url
type: object
properties:
contactId:
type: string
description: Unique identifier of the contact.
format: uuid
nullable: true
example: 93421c6f-40bd-465d-bb95-3b3b5e200e30
email:
type: string
description: Email address of the contact. If provided, this takes precedence over ContactId.
nullable: true
example: contact@example.com
externalUserId:
minLength: 1
type: string
description: The optional external user identifier of the external system.
title:
minLength: 1
type: string
description: The title of the task to be displayed in the UI.
example: 'Sign: Verification of Identity'
url:
minLength: 1
type: string
description: The URL that will be displayed within the task content.
example: http://www.yourwebsite.com
requireMFA:
type: boolean
description: Whether MFA is required before showing the task content.
optional:
type: boolean
description: "Whether the task is \"Required\" or \"Optional\".\r\n\r\nOptional tasks appear in a separate section\
\ in the UI."
actionText:
type: string
description: "Optional action text, a single word to describe the action the task relates to. \r\n\r\nDefaults to\
\ \"Complete\", but other examples could be \"Sign\" or \"Review\"."
nullable: true
example: Complete
completedText:
type: string
description: Optional completed text, used on the task success screen if provided.
nullable: true
example: Signing Complete!
completedUrl:
type: string
description: "Optional completed URL, which is a URL that is loaded in the task content body instead of the default\
\ success screen if provided.\r\n\r\nThis option overrides CompletedText if provided."
nullable: true
example: http://www.yourwebsite.com
additionalProperties: false
FileSearchFilters:
type: object
properties:
searchFields:
type: array
items:
type: string
description: "Which file fields to match the search query against. Allowed values: `Name`, `Content`.\r\nOmit the\
\ property (or pass an empty array) to default to both."
nullable: true
example:
- Name
- Content
includeFileExtensions:
type: array
items:
type: string
description: File extensions to include in the results (e.g. `pdf`, `docx`). When empty or null, all extensions
are allowed.
nullable: true
example:
- pdf
- docx
excludeFileExtensions:
type: array
items:
type: string
description: File extensions to exclude from the results. Applied after IncludeFileExtensions.
nullable: true
example:
- tmp
- bak
authorIds:
type: array
items:
type: string
description: User identifiers of file authors to filter by. Results match files authored by any of the supplied
users.
nullable: true
example:
- 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
contactIds:
type: array
items:
type: string
description: Contact identifiers to filter by. Results match files associated with any of the supplied contacts.
nullable: true
example:
- b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
additionalProperties: false
FileSearchRequest:
required:
- query
type: object
properties:
query:
minLength: 1
type: string
description: Full-text search expression. Required and non-empty.
example: contract
filters:
allOf:
- $ref: '#/components/schemas/FileSearchFilters'
description: Filters narrowing the search to specific extensions, date ranges, authors, contacts, and which fields
to match against.
nullable: true
additionalProperties: false
MatterStage:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
versionId:
type: string
description: Version id of the record.
nullable: true
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Matter in which this mapping is associated to.
nullable: true
stageSet:
allOf:
- $ref: '#/components/schemas/Link'
description: Current stage set of the matter.
nullable: true
stage:
allOf:
- $ref: '#/components/schemas/Stage'
description: Current stage of the matter.
nullable: true
lastUpdated:
type: integer
description: Timestamp when the matter stage was last updated.
format: int64
example: 637847425252027400
additionalProperties: false
description: Contains the current stage of the matter.
MatterStagePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/MatterStage'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
Stage:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the stage.
nullable: true
example: 45b94df1-1657-48b0-ae81-583b42ed52d6
versionId:
type: string
description: Version id of the record.
nullable: true
example: 09d1f360-b810-4a63-acaa-5ed81a551f06
name:
type: string
description: Name of the stage.
nullable: true
example: Review contract
isDeleted:
type: boolean
description: True when the stage is deleted.
example: true
lastUpdated:
type: integer
description: Timestamp when the stage was last updated.
format: int64
example: 637847425252027400
additionalProperties: false
description: Contains information of a stage in a stage set.
StageSet:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the stage set.
nullable: true
example: 6ccc033d-67c9-4090-8705-3aff0c5a8cfb
versionId:
type: string
description: Version id of the record.
nullable: true
example: 499244ff-651f-4f66-b618-9defde27c281
name:
type: string
description: Name of the stage set.
nullable: true
example: Review contract
isDeleted:
type: boolean
description: True when the stage set is deleted.
example: true
stages:
type: array
items:
$ref: '#/components/schemas/Stage'
description: Stages of the stage set.
nullable: true
lastUpdated:
type: integer
description: Timestamp when the stage set was last updated.
format: int64
example: 637847425252027400
additionalProperties: false
description: Contains the stage set and stages information.
StageSetPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/StageSet'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
AddOn:
type: object
properties:
id:
type: string
description: Unique identifier of the add-on.
format: uuid
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
smokeballId:
type: string
description: "Unique Smokeball identifier of the add-on. \r\n\r\nThis identifier convenience purposes only and should\
\ not be used to interact with the subscriptions API."
nullable: true
productSuite:
type: string
description: The product suite that this add-on belongs to.
nullable: true
name:
type: string
description: The display name of the add-on.
nullable: true
example: Intake
description:
type: string
description: "The description of the add-on.\r\n\r\nCan be used to describe the add-on to a customer."
nullable: true
trialPeriodDays:
type: integer
description: "The number of days the add-on can be trialed for.\r\n\r\nCannot be trialed if zero or missing."
format: int32
nullable: true
prices:
type: array
items:
$ref: '#/components/schemas/Price'
description: The price options for the add-on.
nullable: true
createdDate:
type: string
description: The created date of the add-on.
format: date-time
example: '2022-04-23T14:00:00Z'
updatedDate:
type: string
description: The updated date of the add-on.
format: date-time
example: '2022-04-23T14:00:00Z'
additionalProperties: false
AddOnCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/AddOn'
nullable: true
additionalProperties: false
AddPaymentMethodRequest:
type: object
properties:
paymentSystemId:
type: string
description: Payment system to use.
nullable: true
example: STRIPE
paymentInformation:
allOf:
- $ref: '#/components/schemas/PaymentInformation'
description: "Payment information specific to the payment system.\r\n\r\nFor Stripe, this should be StripePaymentInformation."
nullable: true
isDefault:
type: boolean
description: "Whether to set this as the default payment method for the entire account \r\n\r\nThis does not set\
\ the default payment method for the subscription."
nullable: true
example: true
chargeImmediately:
type: boolean
description: "Whether to charge immediately if subscription(s) are overdue.\r\n\r\nIf true, the payment system will\
\ attempt to charge the customer immediately if there are any overdue subscriptions.\r\n\r\nIf a subscription\
\ id is passed as a parameter to the request, only that subscription will be charged immediately if overdue."
nullable: true
example: true
additionalProperties: false
CancelSubscriptionRequest:
type: object
properties:
cancellationType:
type: string
description: "The subscription cancellation type.\r\n\r\n* None - No cancellation type has been set.\r\n\r\n* PeriodEnd\
\ - Cancel subscription at the end of the billing cycle.\r\n\r\n* Immediate - Cancel subscription immediately.\r\
\n\r\n* Date - Cancel at specified date - see 'CancelAt'."
cancelAt:
type: string
description: "Optional date used to cancel at the supplied date. Will only be used if CancellationType is set to\
\ 'Date'.\r\n\r\nIf set to a date before the current period ends, this will cause a proration if prorations have\
\ been enabled.\r\n\r\nIf set during a future period, this will always cause a proration for that period."
format: date-time
nullable: true
cancelSubscription:
type: boolean
description: Optional flag to force cancellation of the subscription instead of applying default cancellation behaviour.
nullable: true
reason:
type: string
description: Optional reason for cancellation of the subscription.
nullable: true
preview:
type: boolean
description: "Optional flag to preview cancellation request. \r\n\r\nIf 'true', the Subscription is not cancelled\
\ and the CancellationType and CancellationDate are returned."
example: true
additionalProperties: false
CancelUsageChargeRequest:
type: object
properties:
reason:
type: string
nullable: true
additionalProperties: false
CancellationResponse:
type: object
properties:
preview:
type: boolean
description: True if this is a cancellation preview.
cancellationType:
type: string
description: "The subscription cancellation type.\r\n\r\n* None - No cancellation type has been set.\r\n\r\n* PeriodEnd\
\ - Cancel subscription at the end of the billing cycle.\r\n\r\n* Immediate - Cancel subscription immediately.\r\
\n\r\n* Date - Cancel at specified date - see 'CancelAt'."
cancellationBehaviour:
type: string
description: "The subscription cancellation behaviour.\r\n\r\n* Cancel - Standard behaviour. The subscription will\
\ be canceled as normal.\r\n\r\n* CancelTrials - Any trials applied to the subscription will be canceled."
cancelAt:
type: string
description: The date the subscription will be cancelled.
format: date-time
nullable: true
reason:
type: string
description: The reason for cancellation.
nullable: true
tier:
allOf:
- $ref: '#/components/schemas/Tier'
description: The tier that will be set at the as a result of the cancellation.
nullable: true
addOns:
type: array
items:
$ref: '#/components/schemas/AddOn'
description: The add-ons that will be set at the as a result of the cancellation.
nullable: true
additionalProperties: false
Charge:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the usage charge.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
externalId:
type: string
description: The external usage charge id.
nullable: true
externalAdjustmentId:
type: string
description: The external adjustment id created when the usage charge is canceled.
nullable: true
expenseId:
type: string
description: The Billing expense id created for the usage charge.
nullable: true
subscriptionId:
type: string
description: The subscription id.
nullable: true
accountId:
type: string
description: The Smokeball firm id.
nullable: true
userId:
type: string
description: The user id that created the usage charge.
nullable: true
productId:
type: string
description: The product id.
nullable: true
priceId:
type: string
description: The internal price id.
nullable: true
metadata:
type: object
additionalProperties:
type: string
description: Caller-supplied metadata associated with the charge.
nullable: true
matterId:
type: string
description: The matter id associated with the usage charge.
nullable: true
description:
type: string
description: The description associated with the usage charge.
nullable: true
supplierTransactionId:
type: string
description: The supplier transaction id associated with the usage charge.
nullable: true
supplierTransactionAmount:
type: number
description: The supplier transaction amount associated with the usage charge.
format: double
nullable: true
amount:
type: number
description: The total customer billing amount for the usage charge, in dollars.
format: double
nullable: true
quantity:
type: integer
description: The usage quantity recorded for the charge.
format: int64
example: 1
status:
type: string
description: "The usage charge status.\r\n\r\n* Pending\r\n\r\n* Succeeded\r\n\r\n* Failed\r\n\r\n* Canceled\r\n\
\r\n* Refunded"
failureReason:
type: string
description: The reason the usage charge failed.
nullable: true
createdDate:
type: string
description: The created date of the usage charge.
format: date-time
example: '2022-04-23T14:00:00Z'
updatedDate:
type: string
description: The updated date of the usage charge.
format: date-time
example: '2022-04-23T14:00:00Z'
occurredDate:
type: string
description: The date the usage occurred.
format: date-time
example: '2022-04-23T14:00:00Z'
additionalProperties: false
ChargePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Charge'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
CreateUsageChargeRequest:
required:
- priceId
type: object
properties:
priceId:
type: string
description: The price to charge for this usage product.
format: uuid
matterId:
type: string
description: The matter id associated with the usage charge.
nullable: true
description:
type: string
description: The description associated with the usage charge.
nullable: true
metadata:
type: object
additionalProperties:
type: string
description: Optional metadata associated with the usage charge.
nullable: true
additionalProperties: false
InvoiceDownloadUrl:
type: object
properties:
url:
type: string
description: A URL to a downloadable PDF of the invoice from the payment provider.
nullable: true
additionalProperties: false
InvoicePreview:
type: object
properties:
dueDate:
type: string
description: The date when the payment is due.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
total:
type: integer
description: The payment total amount.
format: int64
example: 1899
subTotal:
type: integer
description: The payment subtotal amount.
format: int64
example: 1000
tax:
type: integer
description: The payment tax amount.
format: int64
example: 100
preTaxCredit:
type: integer
description: Total pre-tax credits applied to this payment.
format: int64
example: 200
previewLineItems:
type: array
items:
$ref: '#/components/schemas/InvoicePreviewLineItem'
description: The invoice line items showing breakdown of charges.
nullable: true
additionalProperties: false
InvoicePreviewLineItem:
type: object
properties:
product:
allOf:
- $ref: '#/components/schemas/Product'
description: "The tier or add-on this item is associated to.\r\n\r\nReturns nothing if the product is not known\
\ by our system."
nullable: true
description:
type: string
description: Description of this line item.
nullable: true
interval:
type: string
description: Recurring payment interval type.
amount:
type: integer
description: The amount charged for this line item.
format: int64
example: 109
tax:
type: integer
description: The tax amount in this line item.
format: int64
example: 10.9
preTaxCredit:
type: integer
description: Pre-tax credits applied to this line item.
format: int64
example: 200
additionalProperties: false
Metadata:
type: object
properties:
key:
type: string
nullable: true
value:
type: string
nullable: true
additionalProperties: false
PaymentInformation:
type: object
additionalProperties: false
description: Base class for payment information.
PaymentMethod:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the payment method.
nullable: true
example: 784b3497-bf1f-47d2-93e6-1d38b96b8d3f
paymentSystem:
type: string
description: Payment system.
nullable: true
example: STRIPE
type:
type: string
description: "The payment type.\r\n\r\n* None - The payment type is missing or unknown.\r\n\r\n* CreditCard - Credit\
\ Card payment type.\r\n\r\n* DirectDeposit - Direct Deposit payment type. (not currently supported)"
example: CreditCard
isDefault:
type: boolean
description: Whether this is the default payment method for the customer.
example: true
details:
allOf:
- $ref: '#/components/schemas/PaymentMethodDetails'
description: Payment method specific details for display.
nullable: true
lastPaymentState:
type: string
description: "The status of a payment.\r\n\r\n* None: The payment status is unknown.\r\n\r\n* Succeeded: The payment\
\ was successful.\r\n\r\n* Processing: The payment is being processed.\r\n\r\n* Canceled: The payment was canceled.\r\
\n\r\n* Failed: The payment requires a payment method to be provided, the provided payment method failed or other\
\ action is required (e.g. confirmation or other action by the customer)"
example: Succeeded
createdDate:
type: string
description: When this payment method was added.
format: date-time
example: '2022-04-23T14:00:00Z'
additionalProperties: false
PaymentMethodDetails:
type: object
properties:
brand:
type: string
description: The brand of the credit card.
nullable: true
lastFourDigits:
type: string
description: Last four digits of the credit card.
nullable: true
example: '1234'
expiry:
type: string
description: Expiry date of the credit card in MM/YY format.
nullable: true
example: 10/28
expiryMonth:
type: integer
description: Expiry month.
format: int64
nullable: true
example: 10
expiryYear:
type: integer
description: Expiry year.
format: int64
nullable: true
example: 2028
accountNumber:
type: integer
description: "The account number of the direct deposit account.\r\n\r\nNot yet supported."
format: int64
nullable: true
example: 123456789
bsb:
type: integer
description: "The BSB of the direct deposit account.\r\n\r\nNot yet supported."
format: int64
nullable: true
additionalProperties: false
PaymentMethodPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/PaymentMethod'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
PaymentSystem:
type: object
properties:
id:
type: string
description: Id of payment system.
nullable: true
example: STRIPE
supportedPaymentTypes:
type: array
items:
type: string
description: "The payment type.\r\n\r\n* None - The payment type is missing or unknown.\r\n\r\n* CreditCard -\
\ Credit Card payment type.\r\n\r\n* DirectDeposit - Direct Deposit payment type. (not currently supported)"
description: List of supported payment method types.
nullable: true
additionalProperties: false
PaymentSystemCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/PaymentSystem'
nullable: true
additionalProperties: false
PreviewSubscriptionRequest:
type: object
properties:
tierId:
type: string
description: "Optional tier id subscription update to preview.\r\n\r\nAn error is thrown if the supplied or existing\
\ add-ons are not valid for the supplied tier id."
format: uuid
nullable: true
example: 8d074e85-4d95-4d9a-8a63-187719470d49
addOnIds:
type: array
items:
type: string
format: uuid
description: "Optional add-on ids subscription update to preview.\r\n\r\nAn error is thrown if the supplied or existing\
\ add-ons are not valid for the existing or supplied tier id."
nullable: true
promotionIds:
type: array
items:
type: string
description: Optional promotion ids subscription update to preview.
nullable: true
interval:
type: string
description: "Optional billing interval/pricing option change in subscription tier to preview.\r\n\r\nIf an interval\
\ is not supplied and a tier id is supplied, the default interval option for the supplied tier will be used.\r\
\n\r\nIf an interval is supplied but a tier is not supplied, the existing tier is used and the interval is changed."
nullable: true
example: Monthly
additionalProperties: false
Price:
type: object
properties:
id:
type: string
description: The internal price id.
nullable: true
externalPriceId:
type: string
description: The external price id.
nullable: true
default:
type: boolean
description: Returns `true` if the price is the default price.
example: true
active:
type: boolean
description: Returns `true` if the Price is active.
example: true
type:
type: string
description: The type of price.
example: Recurring
name:
type: string
description: The price display name.
nullable: true
example: '"$109 per user/month"'
amount:
type: number
description: The per user amount for this pricing option for the specified interval (in cents).
format: double
nullable: true
example: 5900
interval:
type: string
description: Recurring payment interval type.
example: Monthly
additionalProperties: false
Product:
type: object
properties:
id:
type: string
description: The id of the Product.
nullable: true
smokeballId:
type: string
description: The Smokeball id. For example the tier or add-on id.
nullable: true
example: SMK001
source:
type: string
description: Source of the promotion (e.g. Stripe).
nullable: true
externalProductId:
type: string
description: The external id of the Product.
nullable: true
smokeballProductType:
allOf:
- $ref: '#/components/schemas/SmokeballProductType'
description: The type of the Product (Tier or AddOn)
productSuite:
type: string
description: The suite that the Product belongs to.
nullable: true
iconIdentifier:
type: string
description: Opaque icon identifier of the product.
nullable: true
name:
type: string
description: The name of the Product.
nullable: true
description:
type: string
description: The description of the Product.
nullable: true
trialPeriodDays:
type: integer
description: "If the product is trialable, how many days it will be trialed for.\r\n\r\nNote: This will return null\
\ or 0 if the product is not trialable."
format: int64
nullable: true
created:
type: string
description: The created date of the Product.
format: date-time
updated:
type: string
description: The updated date of the Product.
format: date-time
prices:
type: array
items:
$ref: '#/components/schemas/ProductPrice'
description: The prices of the Product (e.g. Monthly or Yearly).
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/Metadata'
description: The metadata of the Product.
nullable: true
testEnvironment:
type: boolean
description: Returns `true` if this Product is from the Test environment.
active:
type: boolean
description: Returns `true` if this Product is active.
isDeleted:
type: boolean
description: Returns `true` if this Product has been deleted.
additionalProperties: false
ProductPrice:
type: object
properties:
id:
type: string
description: The id of the Price.
nullable: true
externalPriceId:
type: string
description: The external Price id.
nullable: true
active:
type: boolean
description: Returns `true` if the Price is active.
default:
type: boolean
description: Returns `true` if the Price is the default price.
type:
type: string
description: The Price type (e.g. recurring)
name:
type: string
description: The Price display name e.g. "$109 per user/month"
nullable: true
amount:
type: number
description: The per user amount for this pricing option for the specified interval.
format: double
nullable: true
interval:
type: string
description: The interval of the Price.
meter:
allOf:
- $ref: '#/components/schemas/ProductPriceMeter'
description: Usage-based metering details.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/Metadata'
description: The metadata of the Price.
nullable: true
additionalProperties: false
ProductPriceMeter:
type: object
properties:
externalMeterId:
type: string
description: The external meter id to incur charges.
nullable: true
eventName:
type: string
description: The meter event name used to record usage.
nullable: true
additionalProperties: false
PromotionCode:
type: object
properties:
id:
type: string
description: Unique identifier of the promotion code.
nullable: true
example: promo_code_1234
name:
type: string
description: Display name of the promotion code.
nullable: true
example: SUMMER2024
description:
type: string
description: The description of the promotion code.
nullable: true
example: 100% discount!
code:
type: string
description: The actual code that customers can use.
nullable: true
example: SUMMER2024
active:
type: boolean
description: Whether this promotion code is currently active.
minimumAmount:
type: integer
description: Minimum amount in cents required to apply this promotion code.
format: int64
nullable: true
example: 5000
firstTimeCustomersOnly:
type: boolean
description: Whether this code can only be used by first-time customers.
limit:
type: integer
description: "Maximum number of times this code can be used.\r\nNull means unlimited uses."
format: int64
nullable: true
example: 100
createdDate:
type: string
description: When the promotion code was created.
format: date-time
example: '2024-01-15T10:00:00Z'
expiratonDate:
type: string
description: "When the promotion code expires.\r\nNull if the code does not expire."
format: date-time
nullable: true
example: '2024-12-31T23:59:59Z'
metadata:
type: object
additionalProperties:
type: string
description: Additional metadata associated with the promotion code.
nullable: true
additionalProperties: false
RemovePaymentMethodRequest:
type: object
properties:
newDefaultPaymentMethodId:
type: string
description: Optional ID of payment method to set as new default.
nullable: true
additionalProperties: false
ResumeSubscriptionRequest:
type: object
additionalProperties: false
SetDefaultPaymentMethodRequest:
type: object
properties:
paymentMethodId:
type: string
description: Public payment method id. Null clears the subscription override which reverts behavior to the Customer's
default.
format: uuid
nullable: true
subscriptionType:
allOf:
- $ref: '#/components/schemas/SubscriptionType'
description: Deprecated. The subscription type is inferred from the route subscription id.
additionalProperties: false
description: Request to set or clear a subscription default payment method.
SetSubscriptionTierRequest:
type: object
properties:
promotionId:
type: string
description: Optional Promotion ID. If the provided promotion id does not exist, the request will fail.
nullable: true
interval:
type: string
description: "Optional billing interval/pricing option.\r\n\r\nIf no interval is provided then the default pricing\
\ option will be used.\r\n\r\nIf the interval is provided but does not exist, the request will fail."
nullable: true
example: Monthly
reason:
type: string
description: Optional reason for changing the subscription tier.
nullable: true
additionalProperties: false
SmokeballProductType:
enum:
- 0
- 1
- 2
- 3
type: integer
format: int32
SubscribeUsageRequest:
type: object
properties:
defaultPaymentMethodId:
type: string
description: Public id of the payment method to set as the default for the usage subscription.
format: uuid
nullable: true
additionalProperties: false
Subscription:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: Unique identifier of the subscription.
nullable: true
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
type:
allOf:
- $ref: '#/components/schemas/SubscriptionType'
description: The kind of subscription represented by this resource.
productSuite:
type: string
description: The product suite of the subscription.
nullable: true
tier:
allOf:
- $ref: '#/components/schemas/Tier'
description: '''Tier'' product that the subscription is subscribed to.'
nullable: true
trialingTier:
allOf:
- $ref: '#/components/schemas/TrialingTier'
description: "'Tier' product that the subscription is currently trialing.\r\n\r\nReturns nothing if no tiers are\
\ being trialed."
nullable: true
addOns:
type: array
items:
$ref: '#/components/schemas/AddOn'
description: List of 'AddOn' products that the subscription is subscribed to.
nullable: true
usages:
type: array
items:
$ref: '#/components/schemas/Usage'
description: List of 'Usage' products that the subscription is subscribed to.
nullable: true
discounts:
type: array
items:
$ref: '#/components/schemas/SubscriptionDiscount'
description: List of Discounts (promotions) applied to the subscription.
nullable: true
status:
type: string
description: "Current status of the subscription.\r\n\r\nIf missing, then the firm does not have a platform subscription.\r\
\n\r\nPossible values: Trialing, Active, Canceled, PastDue, Unpaid, Incomplete, IncompleteExpired."
nullable: true
interval:
type: string
description: "Current billing interval of the subscription. \r\n\r\nDerived from the tiers billing interval. Returns\
\ 'None' if a tier is not associated to this subscription.\r\n\r\nCurrently only Monthly and Yearly are supported.\r\
\n\r\nPossible values: None, Daily, Weekly, Monthly, Yearly."
nullable: true
quantity:
type: integer
description: The number of user licenses for this subscription.
format: int64
nullable: true
example: 3
createdDate:
type: string
description: The created date of the subscription.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
trialStatus:
type: string
description: "The trial status of the subscription.\r\n\r\n* None - The subscription is not trialing a tier or add-on.\r\
\n\r\n* Trialing - The subscription is in its trial phase (on signup) or a promotion is applied and a tier or\
\ add-on is being trialed."
nullable: true
trialPeriodStartDate:
type: string
description: "The trial period start date of the subscription.\r\n\r\nUsed in conjuction with the trial period end\
\ date to determine if the subscription is currently in trial mode.\r\n\r\nNull if the subscription is not in\
\ trial mode."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
trialPeriodEndDate:
type: string
description: "The trial period end date of the subscription.\r\n\r\nUsed in conjuction with the trial period start\
\ date to determine if the subscription is currently in trial mode.\r\n\r\nNull if the subscription is not in\
\ trial mode."
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
currentPeriodStartDate:
type: string
description: The start date of the subscription.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
currentPeriodEndDate:
type: string
description: The end date of the subscription.
format: date-time
nullable: true
example: '2022-04-23T14:00:00Z'
cancellationStatus:
type: string
description: "The cancellation status of the subscription.\r\n\r\n* None - The subscription is not canceled and\
\ no cancelation requests have been made.\r\n \r\n* Pending - The subscription has been canceled and\
\ will be canceled at a later date.\r\n \r\n* Canceled - The subscription has been canceled.\r\n\r\n\
Possible values: None, Pending, Canceled."
nullable: true
cancellationType:
type: string
description: "Represents the most recent cancellation type for the subscription.\r\n\r\nThis can be used alongside\
\ the CanceledAt and CancelAt properties to determine the cancellation status and timing.\r\n\r\n* PeriodEnd -\
\ Subscription will be canceled at the end of the billing cycle.\r\n\r\n* Immediate - Subscription was canceled\
\ immediatly. \r\n\r\n* Date - If not already canceled, the subscription will be canceled at the 'CancelAt' date.\r\
\n\r\nPossible values: PeriodEnd, Immediate, Date."
nullable: true
example: PeriodEnd
canceledAt:
type: string
description: "If the subscription has been canceled, the date of that cancellation.\r\n\r\nOtherwise, the date of\
\ the cancel request."
format: date-time
nullable: true
example: '2024-12-01T09:00:00Z'
cancelAt:
type: string
description: A date in the future at which the subscription will automatically get canceled and the status will
change to 'Canceled'.
format: date-time
nullable: true
example: '2025-04-23T14:00:00Z'
additionalProperties: false
SubscriptionAudit:
type: object
properties:
type:
type: string
description: "The subscription change type.\r\n\r\n* Updated\r\n\r\n* AddOnAdded\r\n\r\n* AddOnRemoved\r\n\r\n*\
\ PromotionApplied\r\n\r\n* PromotionRemoved\r\n\r\n* Canceled\r\n\r\n* Resumed\r\n\r\n* PaymentMethodAdded\r\n\
\r\n* PaymentMethodRemoved\r\n\r\n* PaymentMethodSetAsDefault\r\n\r\n* QuantityUpdated\r\n\r\n* Created\r\n\r\n\
* Advanced"
accountId:
type: string
description: The Smokeball firm id.
nullable: true
subscriptionId:
type: string
description: The subscription id.
nullable: true
name:
type: string
description: Name of the field that was changed or the type of change that was made
nullable: true
example: '"TierId", "AddOnIds", "PromotionId", "PaymentMethodIds", "Interval", "Quantity"'
value:
type: string
description: The value of the change, which can be a string representation of the new value or a JSON object for
complex changes.
nullable: true
timestamp:
type: string
description: The timestamp of the change.
format: date-time
additionalProperties: false
SubscriptionAuditPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/SubscriptionAudit'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
SubscriptionCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Subscription'
nullable: true
additionalProperties: false
SubscriptionDiscount:
type: object
properties:
promotion:
allOf:
- $ref: '#/components/schemas/SubscriptionPromotion'
description: The promotion associated with the discount.
nullable: true
activationDate:
type: string
description: The date the discount was activated.
format: date-time
nullable: true
expirationDate:
type: string
description: The date the discount will expire.
format: date-time
nullable: true
additionalProperties: false
SubscriptionInvoice:
type: object
properties:
id:
type: string
description: The unique identifier of the invoice.
nullable: true
number:
type: string
description: The human-readable invoice number (e.g. ABC-001).
nullable: true
status:
type: string
description: The invoice status.
example: Paid
description:
type: string
description: The invoice description.
nullable: true
total:
type: integer
description: The total amount for the invoice.
format: int64
example: 1899
subTotal:
type: integer
description: The payment subtotal amount.
format: int64
example: 1000
tax:
type: integer
description: The payment tax amount.
format: int64
example: 100
preTaxCredit:
type: integer
description: Total pre-tax credits applied to this payment.
format: int64
example: 200
lineItems:
type: array
items:
$ref: '#/components/schemas/SubscriptionInvoiceLineItem'
description: The line items associated to the invoice.
nullable: true
createdDate:
type: string
description: The created date of the invoice.
format: date-time
example: '2022-04-23T14:00:00Z'
additionalProperties: false
SubscriptionInvoiceCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/SubscriptionInvoice'
nullable: true
additionalProperties: false
SubscriptionInvoiceLineItem:
type: object
properties:
product:
allOf:
- $ref: '#/components/schemas/Link'
description: "The tier or add-on this item is associated to.\r\n\r\nReturns nothing if the product is not known\
\ by our system."
nullable: true
description:
type: string
description: Description of this line item.
nullable: true
interval:
type: string
description: Recurring payment interval type.
amount:
type: integer
description: The amount charged for this line item.
format: int64
example: 109
tax:
type: integer
description: The tax amount in this line item.
format: int64
example: 10.9
preTaxCredit:
type: integer
description: Any credit amount on this line item.
format: int64
example: 200
quantity:
type: integer
description: The number of users for this line item.
format: int64
nullable: true
example: 3
additionalProperties: false
SubscriptionInvoicePagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/SubscriptionInvoice'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
SubscriptionPreview:
type: object
properties:
immediateProrationPayment:
allOf:
- $ref: '#/components/schemas/InvoicePreview'
description: The prorated invoice preview for subscription changes that take effect immediately.
nullable: true
example: 3
nextBillingCyclePayment:
allOf:
- $ref: '#/components/schemas/InvoicePreview'
description: The preview of the next full billing cycle invoice for the updated subscription.
nullable: true
example: 3
quantity:
type: integer
description: The number of users on the subscription.
format: int64
nullable: true
example: 3
taxRates:
type: array
items:
$ref: '#/components/schemas/TaxRate'
description: The current active tax rate.
nullable: true
additionalProperties: false
SubscriptionPromotion:
type: object
properties:
id:
type: string
description: Unique identifier of the promotion.
format: uuid
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
productSuite:
type: string
description: The product suite that this promotion belongs to.
nullable: true
tiers:
type: array
items:
$ref: '#/components/schemas/Tier'
description: "List of tiers this promotion can be applied to.\r\nIf tiers and add-ons are both empty, the promotion\
\ can be applied to any tier or add-on."
nullable: true
addOns:
type: array
items:
$ref: '#/components/schemas/AddOn'
description: "List of add-ons this promotion can be applied to.\r\nIf tiers and add-ons are both empty, the promotion\
\ can be applied to any tier or add-on."
nullable: true
usage:
type: array
items:
type: string
description: "The usage context of a promotion.\r\n\r\nThe context can be used by apps to determine how and when\
\ to apply a promotion."
description: "Intended usage type for this promotion.\r\n\r\n* Manual - Promotion can be applied manually at any\
\ time (with a code).\r\n\r\n* Trial - The promotion can be used for trialing tiers or add-ons.\r\n\r\n* CancelRetention\
\ - The promotion can be used when the user is trying to cancel their subscription.\r\n\r\n* DowngradeRetention\
\ - The promotion can be used when the user is trying to downgrade their subscription.\r\n\r\n* Signup - The promotion\
\ can be used on sign up."
nullable: true
name:
type: string
description: Display name of the promotion.
nullable: true
example: Summer Sale 2024
description:
type: string
description: Description of the promotion.
nullable: true
example: Summer Sale 2024
durationDays:
type: integer
description: "Number of days the promotion applies for.\r\n\r\nFor example, if the promotion is a trial promotion,\
\ how many days the associated tier or add-on will be trialed for."
format: int64
nullable: true
example: 7
amountOff:
type: integer
description: "Fixed amount off (in cents).\r\nOnly one of AmountOff or PercentOff will be set."
format: int64
nullable: true
example: 2000
percentOff:
type: number
description: "Percentage discount.\r\nOnly one of AmountOff or PercentOff will be set."
format: double
nullable: true
example: 20.5
active:
type: boolean
description: Whether the promotion is currently valid and can be applied.
numUsed:
type: integer
description: Number of times this promotion has been used.
format: int64
example: 42
createdDate:
type: string
description: When the promotion was created.
format: date-time
example: '2024-01-15T10:00:00Z'
expirationDate:
type: string
description: "When the promotion expires.\r\nNull if the promotion does not expire."
format: date-time
nullable: true
example: '2024-12-31T23:59:59Z'
codes:
type: array
items:
$ref: '#/components/schemas/PromotionCode'
description: List of promotion codes associated with this promotion.
nullable: true
metadata:
type: object
additionalProperties:
type: string
description: Additional metadata associated with the promotion code.
nullable: true
isPersistent:
type: boolean
description: "Whether the promotion persists across tier switches.\r\n\r\nFor example, if a BILL only promotion\
\ is applied to the subscription and the firm upgrades to BOOST, the Promotion should be deactivated.\r\n\r\n\
* If the promotion is non-persistent, it should be removed completely.\r\n\r\n* If the promotion is persistent\
\ and the firm reverts back to BILL at a later date, the promotion should automatically be reactivated."
isFree:
type: boolean
description: Whether this promotion makes the targeted tier or add-on free.
deleted:
type: boolean
description: Whether this promotion has been deleted.
nullable: true
additionalProperties: false
SubscriptionPromotionPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/SubscriptionPromotion'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
SubscriptionSettings:
type: object
properties:
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
id:
type: string
description: The Smokeball firm id.
nullable: true
createExpensesFromUsageCharges:
type: boolean
description: Whether usage charges should create expenses/disbursements.
usageAccessPermission:
type: string
description: "Controls which staff at a firm can use Usage-based Products.\r\nMissing settings should be treated\
\ as Finance.Subscriptions.Entities.UsageAccessPermission.All."
usageAccessSelectedUserIds:
type: array
items:
type: string
description: "Staff user ids granted access when Finance.Subscriptions.Api.Resources.SubscriptionSettings.UsageAccessPermission\r\
\nis Finance.Subscriptions.Entities.UsageAccessPermission.SelectedUsersAndFirmOwners."
nullable: true
updatedDate:
type: string
description: The date the settings were last updated.
format: date-time
nullable: true
updatedByUserId:
type: string
description: The user id that last updated the settings.
nullable: true
additionalProperties: false
description: Settings for an account's subscription behavior.
SubscriptionSettingsDto:
type: object
properties:
createExpensesFromUsageCharges:
type: boolean
description: Whether usage charges should create expenses/disbursements.
usageAccessPermission:
type: string
description: "Controls which staff at a firm can use Usage-based Products.\r\nMissing settings should be treated\
\ as Finance.Subscriptions.Entities.UsageAccessPermission.All."
usageAccessSelectedUserIds:
type: array
items:
type: string
description: "User ids granted access when Finance.Subscriptions.Api.Models.SubscriptionSettingsDto.UsageAccessPermission\r\
\nis Finance.Subscriptions.Entities.UsageAccessPermission.SelectedUsersAndFirmOwners."
nullable: true
additionalProperties: false
description: Subscription settings patch payload.
SubscriptionType:
enum:
- 0
- 1
type: integer
format: int32
TaxRate:
type: object
properties:
externalId:
type: string
nullable: true
name:
type: string
nullable: true
description:
type: string
nullable: true
country:
type: string
nullable: true
state:
type: string
nullable: true
rate:
type: number
format: double
behaviour:
allOf:
- $ref: '#/components/schemas/TaxRateBehavior'
description: The behavior set on Tax Rate.
createdDate:
type: string
format: date-time
additionalProperties: false
TaxRateBehavior:
enum:
- 0
- 1
type: integer
description: The behavior set on Tax Rate.
format: int32
Tier:
type: object
properties:
id:
type: string
description: Unique identifier of the tier.
format: uuid
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
smokeballId:
type: string
description: "Unique Smokeball identifier of the tier. \r\n\r\nThis identifier convenience purposes only and should\
\ not be used to interact with the subscriptions API."
nullable: true
productSuite:
type: string
description: The product suite that this tier belongs to.
nullable: true
name:
type: string
description: The display name of the tier.
nullable: true
example: Intake
description:
type: string
description: "The description of the tier.\r\n\r\nCan be used to describe the tier to a customer."
nullable: true
trialPeriodDays:
type: integer
description: "The number of days the tier can be trialed for.\r\n\r\nCannot be trialed if zero or missing."
format: int32
nullable: true
prices:
type: array
items:
$ref: '#/components/schemas/Price'
description: The price options for the tier.
nullable: true
createdDate:
type: string
description: The created date of the tier.
format: date-time
example: '2022-04-23T14:00:00Z'
updatedDate:
type: string
description: The updated date of the tier.
format: date-time
example: '2022-04-23T14:00:00Z'
additionalProperties: false
TrialingTier:
type: object
properties:
id:
type: string
description: Unique identifier of the tier.
format: uuid
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
smokeballId:
type: string
description: "Unique Smokeball identifier of the tier. \r\n\r\nThis identifier convenience purposes only and should\
\ not be used to interact with the subscriptions API."
nullable: true
productSuite:
type: string
description: The product suite that this tier belongs to.
nullable: true
name:
type: string
description: The display name of the tier.
nullable: true
example: Intake
description:
type: string
description: "The description of the tier.\r\n\r\nCan be used to describe the tier to a customer."
nullable: true
trialPeriodDays:
type: integer
description: "The number of days the tier can be trialed for.\r\n\r\nCannot be trialed if zero or missing."
format: int32
nullable: true
prices:
type: array
items:
$ref: '#/components/schemas/Price'
description: The price options for the tier.
nullable: true
createdDate:
type: string
description: The created date of the tier.
format: date-time
example: '2022-04-23T14:00:00Z'
updatedDate:
type: string
description: The updated date of the tier.
format: date-time
example: '2022-04-23T14:00:00Z'
cancellationStatus:
type: string
description: "The cancellation status of the trial.\r\n\r\n* None - The trial has not been canceled. If a payment\
\ method is added to the subscription, the trial product(s) will be applied to the subscription at expiration.\r\
\n \r\n* Pending - The trial has been canceled. The trial product(s) will not be applied to the subscription\
\ at expiration.\r\n\r\nPossible values: None, Pending."
nullable: true
activationDate:
type: string
description: The date the trial was activated.
format: date-time
nullable: true
expirationDate:
type: string
description: The date the trial will expire.
format: date-time
nullable: true
additionalProperties: false
UpdateSubscriptionRequest:
type: object
properties:
tierId:
type: string
description: "Optional tier id to subscribe to.\r\n\r\nAn error is thrown if the supplied or existing add-ons are\
\ not valid for the supplied tier id."
format: uuid
nullable: true
example: 8d074e85-4d95-4d9a-8a63-187719470d49
addOnIds:
type: array
items:
type: string
format: uuid
description: "Optional add-on ids to subscribe to.\r\n\r\nAn error is thrown if the supplied or existing add-ons\
\ are not valid for the existing or supplied tier id."
nullable: true
interval:
type: string
description: "Optional billing interval/pricing option to use when setting subscription tier.\r\n\r\nIf an interval\
\ is not supplied then the default interval option will be used.\r\n\r\nIf an interval is supplied but a tier\
\ is not supplied, the existing tier is used and the interval is changed."
nullable: true
example: Monthly
reason:
type: string
description: Optional reason for changing the subscription tier.
nullable: true
additionalProperties: false
Usage:
type: object
properties:
id:
type: string
description: Unique identifier of the usage product.
format: uuid
example: b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
smokeballId:
type: string
description: Unique Smokeball identifier of the usage product.
nullable: true
productSuite:
type: string
description: The product suite that this usage product belongs to.
nullable: true
iconIdentifier:
type: string
description: Icon identifier for the product.
nullable: true
name:
type: string
description: The display name of the usage product.
nullable: true
description:
type: string
description: The description of the usage product.
nullable: true
trialPeriodDays:
type: integer
description: The number of days the usage product can be trialed for.
format: int64
nullable: true
prices:
type: array
items:
$ref: '#/components/schemas/Price'
description: The chargeable metered price options for the usage product.
nullable: true
createdDate:
type: string
description: The created date of the usage product.
format: date-time
updatedDate:
type: string
description: The updated date of the usage product.
format: date-time
additionalProperties: false
UsageCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Usage'
nullable: true
additionalProperties: false
DocumentType:
enum:
- 0
- 1
- 2
type: integer
description: "Available document types: \"File = 0\", \"FormTemplate = 1\", \"Memo = 2\" \r\n\r\nThe FormTemplate (1)\
\ document type is not currently supported for task document creation."
format: int32
SubTask:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
parentTask:
allOf:
- $ref: '#/components/schemas/Link'
description: The parent (task) of the subtask.
nullable: true
createdBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who created the subtask.
nullable: true
completedBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who completed the subtask.
nullable: true
lastUpdatedBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who last updated the subtask.
nullable: true
subject:
type: string
description: The subject - a short description of the subtask.
nullable: true
example: Confer with Mary
completedDate:
type: string
description: '**Deprecated.** Use `CompletedDateOnly` instead.
When the subtask was completed in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
completedDateOnly:
type: string
description: 'The date when the subtask was completed.
The time portion will always be set to 00:00:00
and should be ignored. Only the date portion is relevant.'
format: date-time
nullable: true
example: '2020-02-15T00:00:00'
createdDate:
type: string
description: '**Deprecated.** Use `CreatedDateOnly` instead.
When the subtask was created in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
createdDateOnly:
type: string
description: 'The date when the subtask was created.
The time portion will always be set to 00:00:00
and should be ignored. Only the date portion is relevant.'
format: date-time
nullable: true
example: '2020-02-15T00:00:00'
isCompleted:
type: boolean
description: True when the subtask is completed.
example: false
isDeleted:
type: boolean
description: True when the subtask is deleted.
example: false
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
additionalProperties: false
description: Subtask resource.
SubTaskCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/SubTask'
nullable: true
additionalProperties: false
SubTaskDto:
required:
- staffId
- subject
type: object
properties:
staffId:
minLength: 1
type: string
description: Unique identifier of the associated staff member creating or updating the subtask.
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
completedByStaffId:
type: string
description: Unique identifier of the associated staff member who completed the subtask.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
subject:
minLength: 1
type: string
description: Subject of the subtask.
example: Confer with Mary
isCompleted:
type: boolean
description: True when the subtask is completed.
example: false
completedDate:
type: string
description: "**Deprecated.** Use `CompletedDateOnly` instead.\n\nCompleted date of the subtask in UTC.\r\nIf not\
\ provided and IsCompleted is set to true, the current date will be used."
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
completedDateOnly:
type: string
description: "Completed date of the subtask. Takes precendence over CompletedDate if set.\r\nIf not provided and\
\ IsCompleted is set to true, the current date will be used.\n\nAny time/timezone information will be discarded\n\
and only the date portion will be considered."
format: date-time
nullable: true
example: '2020-02-15'
additionalProperties: false
description: Data transfer object for a subtask.
Task:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
matter:
allOf:
- $ref: '#/components/schemas/Link'
description: Matter associated to the task.
nullable: true
parentTask:
allOf:
- $ref: '#/components/schemas/Link'
description: The parent task associated to this task. Id is missing if this task is not a sub task.
nullable: true
createdBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who created the task.
nullable: true
completedBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who completed the task.
nullable: true
lastUpdatedBy:
allOf:
- $ref: '#/components/schemas/Link'
description: The staff member who last updated the task.
nullable: true
assignees:
type: array
items:
$ref: '#/components/schemas/Link'
description: The staff member(s) assigned to the task.
nullable: true
subTasks:
type: array
items:
$ref: '#/components/schemas/Link'
description: The tasks associated to the task.
nullable: true
subject:
type: string
description: The subject - a short description of the task.
nullable: true
example: Review contract for John Smith
note:
type: string
description: Notes on the task.
nullable: true
example: Contract needs to be reviewed and discussed with John
categories:
type: array
items:
type: string
description: Categories for the task.
nullable: true
dueDate:
type: string
description: '**Deprecated.** Use `DueDateOnly` instead.
The due date of the task in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
dueDateOnly:
type: string
description: 'The due date of the task.
The time portion will always be set to 00:00:00
and should be ignored. Only the date portion is relevant.'
format: date-time
nullable: true
example: '2020-02-15T00:00:00'
completedDate:
type: string
description: '**Deprecated.** Use `CompletedDateOnly` instead.
When the task was completed in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
completedDateOnly:
type: string
description: 'The date when the task was completed.
The time portion will always be set to 00:00:00
and should be ignored. Only the date portion is relevant.'
format: date-time
nullable: true
example: '2020-02-15T00:00:00'
createdDate:
type: string
description: '**Deprecated.** Use `CreatedDateOnly` instead.
When the task was created in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
createdDateOnly:
type: string
description: 'The date when the task was created.
The time portion will always be set to 00:00:00
and should be ignored. Only the date portion is relevant.'
format: date-time
nullable: true
example: '2020-02-15T00:00:00'
isCompleted:
type: boolean
description: True when the task is completed.
example: false
isDeleted:
type: boolean
description: True when the task is deleted.
example: false
lastUpdated:
type: integer
description: Last updated timestamp.
format: int64
example: 637847425252027400
duration:
type: string
description: Duration of the task in ISO 8601 duration format.
nullable: true
example: PT4H33M
additionalProperties: false
TaskDocument:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
task:
allOf:
- $ref: '#/components/schemas/Link'
description: The associated task.
nullable: true
type:
allOf:
- $ref: '#/components/schemas/DocumentType'
description: "The type of the document.\r\n\r\nPossible values: File = 0, FormTemplate = 1, Memo = 2."
example: 0
isDeleted:
type: boolean
description: True when the task document has been deleted.
example: false
document:
description: Link to the the document.
nullable: true
additionalProperties: false
description: Task document resource.
TaskDocumentCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/TaskDocument'
nullable: true
additionalProperties: false
TaskDocumentDto:
required:
- type
type: object
properties:
documentId:
type: string
description: "Unique identifier of the document (file or memo).\r\n\r\nIf a file, the type must be 0 (File). \r\n\
\r\nIf a memo, the type must be 2 (Memo).\r\n\r\nThe FormTemplate (1) document type is not currently supported\
\ for task document creation."
nullable: true
example: cf666f06-3ff2-4a41-8c7f-ab5a8bc6a277
type:
allOf:
- $ref: '#/components/schemas/DocumentType'
description: "The type of the document.\r\n\r\nPossible values: File = 0, FormTemplate = 1, Memo = 2.\r\n\r\nThe\
\ FormTemplate (1) document type is not currently supported for task document creation."
example: 0
additionalProperties: false
description: Data transfer object for a task document.
TaskDto:
required:
- staffId
type: object
properties:
matterId:
type: string
description: Unique identifier of the matter associated to the task.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
staffId:
minLength: 1
type: string
description: Unique identifier of the associated staff member creating or updating the task.
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
completedByStaffId:
type: string
description: Unique identifier of the associated staff member completing the task.
nullable: true
example: 750eb5c5-ac0b-7d11-4997-e0ce9d8896c8
assigneeIds:
type: array
items:
type: string
description: Unique identifier(s) of the associated staff member(s) assigned to the task.
nullable: true
subject:
type: string
description: The subject - this should be a short description of the task.
nullable: true
example: Review contract for John Smith
note:
type: string
description: Notes on the task.
nullable: true
example: Contract needs to be reviewed and discussed with John
isCompleted:
type: boolean
description: True when the task is completed.
example: false
categories:
type: array
items:
type: string
description: Categories for the task.
nullable: true
completedDate:
type: string
description: "**Deprecated.** Use `CompletedDateOnly` instead.\n\nCompleted date of the task in UTC.\r\nIf not provided\
\ and IsCompleted is set to true, the current date will be used."
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
completedDateOnly:
type: string
description: "Completed date of the task. Takes precendence over CompletedDate if set.\r\nIf not provided and IsCompleted\
\ is set to true, the current date will be used.\n\nAny time/timezone information will be discarded\nand only\
\ the date portion will be considered."
format: date-time
nullable: true
example: '2020-02-15'
dueDate:
type: string
description: '**Deprecated.** Use `DueDateOnly` instead.
Due date of the task in UTC.'
format: date-time
nullable: true
example: '2020-02-15T13:00:00Z'
deprecated: true
dueDateOnly:
type: string
description: 'Due date of the task. Takes precendence over DueDate if set.
Any time/timezone information will be discarded
and only the date portion will be considered.'
format: date-time
nullable: true
example: '2020-02-15'
duration:
type: string
description: Duration of the task in ISO 8601 duration format.
nullable: true
example: PT4H33M
additionalProperties: false
TaskPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/Task'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
InviteUserDto:
required:
- email
type: object
properties:
email:
minLength: 1
type: string
description: Invite user by email address.
additionalProperties: false
User:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
userId:
type: string
description: Unique identifier of the user.
nullable: true
example: 23d2a4bc-8529-462e-8560-dfbf4fa24e49
email:
type: string
description: Email address of the user.
nullable: true
example: user@domain.com
isInternal:
type: boolean
description: Returns true if the user is flagged as an internal user.
example: true
bypassMfa:
type: boolean
description: Returns true if multi-factor authentication is bypassed for the user.
example: true
additionalProperties: false
UserDto:
required:
- email
type: object
properties:
email:
minLength: 1
type: string
description: Email address of the user.
example: user@domain.com
password:
type: string
description: "Password for the user.\r\n\r\nPassword must include atleast one lowercase character, uppercase character,\
\ numeric character as well as a special character."
nullable: true
expireAfterDays:
type: integer
description: Expire after the specified days. Must be left blank for users that do not expire.
format: int32
nullable: true
example: 7
isInternal:
type: boolean
description: "Creates the user as an internal user.\r\n\r\nInternal users are excluded from billing and license\
\ counts.\r\n\r\nUse this option for testing, background services, or other non-customer-facing purposes."
example: true
bypassMfa:
type: boolean
description: "Bypasses multi-factor authentication for the user.\r\n\r\nWhen enabled, the user will not be prompted\
\ for two factor authentication during login."
example: true
additionalProperties: false
WebhookSubscription:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
accountId:
type: string
description: Unique identifier of the associated account.
nullable: true
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
name:
type: string
description: Name or description of the subscription.
nullable: true
example: Listen to matter and contact changes
eventTypes:
type: array
items:
type: string
description: The event types that the webhook subscription is subscribed to.
nullable: true
example:
- matter.updated
- contact.created
eventNotificationUrl:
type: string
description: The uri to notify when an event has occurred.
nullable: true
example: http://yourdomain.com/notify
createdDateUtc:
type: string
description: The webhook subscription creation date.
format: date-time
example: '2022-04-23T14:00:00Z'
updatedDateUtc:
type: string
description: The webhook subscription last updated date.
format: date-time
example: '2022-04-23T14:00:00Z'
lastUpdated:
type: integer
description: Last updated timestamp
format: int64
example: 637847425252027400
additionalProperties: false
WebhookSubscriptionDto:
type: object
properties:
key:
type: string
description: Unique key used for creating signature header in webhook notification requests.
nullable: true
example: da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262
name:
type: string
description: Name or description of the webhook subscription.
nullable: true
example: Listen to matter and contact changes
eventTypes:
type: array
items:
type: string
description: The event types that the webhook subscription should be subscribed to.
nullable: true
example:
- matter.updated
- contact.created
eventNotificationUrl:
type: string
description: The uri to notify when an event has occurred.
nullable: true
example: http://yourdomain.com/notify
additionalProperties: false
WebhookSubscriptionPagedCollection:
type: object
properties:
id:
type: string
nullable: true
href:
type: string
nullable: true
relation:
type: string
nullable: true
method:
type: string
default: GET
nullable: true
self:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
value:
type: array
items:
$ref: '#/components/schemas/WebhookSubscription'
nullable: true
offset:
type: integer
format: int32
nullable: true
limit:
type: integer
format: int32
nullable: true
size:
type: integer
format: int64
first:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
previous:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
next:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
last:
allOf:
- $ref: '#/components/schemas/Link'
nullable: true
additionalProperties: false
securitySchemes:
api-key:
type: apiKey
name: x-api-key
in: header
token:
type: apiKey
name: Authorization
in: header
x-amazon-apigateway-authtype: cognito_user_pools
servers:
- url: https://api.smokeball.com
- url: https://api.smokeball.com.au
- url: https://api.smokeball.co.uk
- url: https://stagingapi.smokeball.com
- url: https://stagingapi.smokeball.com.au
- url: https://stagingapi.smokeball.co.uk
security:
- api-key: []
token: []