Matter Csv Controller
The UUID of the review cycle to be associated with the uploaded matters.
Comma-separated value file. Must be less than 10MB in size. Header row is required, and each subsequent row corresponds to one matter entry. Header row must match: "Matter ID,Matter Name,Attorney Email,Billing Attorney Email,Start Date,End Date,Hours Billed,Client Name,Description" The columns must follow these requirements:
- Matter ID: String, Required. Together with Client Name, identifies the Client Matter this entry rolls up to. Multiple rows may share the same (Matter ID, Client Name) - one row per attorney working the matter; when they do, all Client Matter fields (Matter Name, Description) must be identical across those rows.
- Matter Name: String, Required. Must be <= 255 characters. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
- Attorney Email: String, Required. Email must match an existing Perform member's email.
- Billing Attorney Email: String, Required. Email must match an existing Perform member's email.
- Start Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 6/30/2025. Blank persists as null on the entry.
- End Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 10/5/2025. When both dates are present, End Date must be on or after Start Date. Blank persists as null on the entry.
- Hours Billed: Integer or Float, Required. Must be between 0 and 999999.99.
- Client Name: String, Required. Must be <= 255 characters. Together with Matter ID, identifies the Client Matter this entry rolls up to.
- Description: String, Optional. Must be <= 500 characters. This is the matter's description, not a description of the individual attorney's work on that matter. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
Matters created successfully (no response body)
No content
Invalid CSV file format, or CSV file contains one or more invalid rows. Use /validate-csv for row level error details.
Unauthorized
Forbidden
Review Cycle not found
Conflict
Internal Server Error
No content
The UUID of the review cycle to associate with the upserted matter entries.
Comma-separated value file. Must be less than 10MB in size. Header row is required, and each subsequent row corresponds to one matter entry. Header row must match: "Matter ID,Matter Name,Attorney Email,Billing Attorney Email,Start Date,End Date,Hours Billed,Client Name,Description" The columns must follow these requirements:
- Matter ID: String, Required. Together with Client Name, identifies the Client Matter this entry rolls up to. Multiple rows may share the same (Matter ID, Client Name) - one row per attorney working the matter; when they do, all Client Matter fields (Matter Name, Description) must be identical across those rows.
- Matter Name: String, Required. Must be <= 255 characters. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
- Attorney Email: String, Required. Email must match an existing Perform member's email.
- Billing Attorney Email: String, Required. Email must match an existing Perform member's email.
- Start Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 6/30/2025. Blank persists as null on the entry.
- End Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 10/5/2025. When both dates are present, End Date must be on or after Start Date. Blank persists as null on the entry.
- Hours Billed: Integer or Float, Required. Must be between 0 and 999999.99.
- Client Name: String, Required. Must be <= 255 characters. Together with Matter ID, identifies the Client Matter this entry rolls up to.
- Description: String, Optional. Must be <= 500 characters. This is the matter's description, not a description of the individual attorney's work on that matter. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
Matter entries upserted successfully. Response body reports created/updated counts.
Counts from a matter entry CSV upsert.
Number of matter entries newly created by this upsert.
Number of existing matter entries whose stored fields were changed by this upsert. Rows whose non-key fields already matched the stored entry are not counted.
The CSV was rejected. Causes:
- Unsupported file format or empty file.
- File exceeds 10 MB or contains more than 10 000 rows.
- One or more rows failed field-level validation.
- Two rows share the same upsert key (Matter ID, Client Name, Attorney Email).
- Two rows share the same Client Matter (Matter ID, Client Name) but disagree on any Client Matter field (Matter Name, Description). Use POST /matters-csv/validate-upsert to identify the specific rows and columns with errors.
Unauthorized
Forbidden
Review Cycle not found for the given reviewCycleId.
Conflict
Internal Server Error
Comma-separated value file. Must be less than 10MB in size. Header row is required, and each subsequent row corresponds to one matter entry. Header row must match: "Matter ID,Matter Name,Attorney Email,Billing Attorney Email,Start Date,End Date,Hours Billed,Client Name,Description" The columns must follow these requirements:
- Matter ID: String, Required. Together with Client Name, identifies the Client Matter this entry rolls up to. Multiple rows may share the same (Matter ID, Client Name) - one row per attorney working the matter; when they do, all Client Matter fields (Matter Name, Description) must be identical across those rows.
- Matter Name: String, Required. Must be <= 255 characters. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
- Attorney Email: String, Required. Email must match an existing Perform member's email.
- Billing Attorney Email: String, Required. Email must match an existing Perform member's email.
- Start Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 6/30/2025. Blank persists as null on the entry.
- End Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 10/5/2025. When both dates are present, End Date must be on or after Start Date. Blank persists as null on the entry.
- Hours Billed: Integer or Float, Required. Must be between 0 and 999999.99.
- Client Name: String, Required. Must be <= 255 characters. Together with Matter ID, identifies the Client Matter this entry rolls up to.
- Description: String, Optional. Must be <= 500 characters. This is the matter's description, not a description of the individual attorney's work on that matter. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
Validation performed. Response includes rows numbers and column names that contain errors. Email errors occur if no members exist with the specified email.
The number of valid rows in the CSV file.
1Bad Request
Unauthorized
Forbidden
Not Found
Conflict
Internal Server Error
Comma-separated value file. Must be less than 10MB in size. Header row is required, and each subsequent row corresponds to one matter entry. Header row must match: "Matter ID,Matter Name,Attorney Email,Billing Attorney Email,Start Date,End Date,Hours Billed,Client Name,Description" The columns must follow these requirements:
- Matter ID: String, Required. Together with Client Name, identifies the Client Matter this entry rolls up to. Multiple rows may share the same (Matter ID, Client Name) - one row per attorney working the matter; when they do, all Client Matter fields (Matter Name, Description) must be identical across those rows.
- Matter Name: String, Required. Must be <= 255 characters. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
- Attorney Email: String, Required. Email must match an existing Perform member's email.
- Billing Attorney Email: String, Required. Email must match an existing Perform member's email.
- Start Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 6/30/2025. Blank persists as null on the entry.
- End Date: Date, Optional. When present, format must be M/d/yyyy, e.g. 10/5/2025. When both dates are present, End Date must be on or after Start Date. Blank persists as null on the entry.
- Hours Billed: Integer or Float, Required. Must be between 0 and 999999.99.
- Client Name: String, Required. Must be <= 255 characters. Together with Matter ID, identifies the Client Matter this entry rolls up to.
- Description: String, Optional. Must be <= 500 characters. This is the matter's description, not a description of the individual attorney's work on that matter. A Client Matter field: must be identical across all rows sharing the same (Matter ID, Client Name).
Validation performed. Response includes row numbers and column names that contain errors.
The number of valid rows in the CSV file.
1Bad Request
Unauthorized
Forbidden
Not Found
Conflict
Internal Server Error
Last updated

