openapi: 3.0.1 info: title: Smokeball Activity Codes Matters 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 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: [] tags: - name: Matters paths: /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' components: schemas: 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\nConditionalFeeAgreement = 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 TimekeeperClassificationType: enum: - 0 - 1 - 2 type: integer 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." format: int32 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 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 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 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 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 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 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 MatterItemContactDto: type: object properties: id: type: string description: Unique identifier of the contact. nullable: true example: 009f778f-83df-454a-b344-768a862a7e55 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: {} 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 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 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 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 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 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 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 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 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 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 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 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