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: []