Review points
7 operations in the Tolvi API, version 1. Paths are relative to https://api.tolvi.co.uk. Every amount is integer pence.
List review points
GET/api/v1/engagements/{id}/review-points
- Scopes
engagements:read
Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
section | query | string | One of: |
status | query | string | One of: |
Responses
200 OK, application/json
Body: array of ReviewPoint.
| Field | Type | Description |
|---|---|---|
[].idrequired | string (uuid) | |
[].sectionCoderequired | stringnullable | Null for a point on the engagement as a whole. |
[].categoryrequired | string (ReviewPointCategory) | One of: |
[].statusrequired | string (ReviewPointStatus) | One of: |
[].raisedAtStageIdrequired | string | |
[].raisedInRoundrequired | integer | at least 1 |
[].raisedByrequired | string (uuid)nullable | |
[].raisedAtrequired | string (date-time) | |
[].clearedByrequired | string (uuid)nullable | |
[].clearedAtrequired | string (date-time)nullable | |
[].sourceMeetingId | string (uuid)nullable | The meeting whose next step this point came from (Create follow-ups in Tolvi Meetings), if any. |
[].messagesrequired | array of ReviewPointMessage | |
[].messages[].idrequired | string (uuid) | |
[].messages[].kindrequired | string (ReviewPointMessageKind) | One of: |
[].messages[].authorIdrequired | string (uuid)nullable | |
[].messages[].bodyrequired | string | |
[].messages[].mentionsrequired | array of string (uuid) | |
[].messages[].atrequired | string (date-time) | |
[].messages[].evidencerequired | array of Evidence | |
[].messages[].evidence[].idrequired | string (uuid) | |
[].messages[].evidence[].sectionCoderequired | stringnullable | |
[].messages[].evidence[].checklistItemIdrequired | string (uuid)nullable | |
[].messages[].evidence[].reviewPointIdrequired | string (uuid)nullable | |
[].messages[].evidence[].reviewPointMessageIdrequired | string (uuid)nullable | |
[].messages[].evidence[].fileNamerequired | string | |
[].messages[].evidence[].contentTyperequired | string | |
[].messages[].evidence[].sizeBytesrequired | integer | at least 0 |
[].messages[].evidence[].statusrequired | string (EvidenceStatus) | pending_upload until POST …/evidence/{evidenceId}/confirm checks the stored file; then pending_scan (malware scan) and available. Only available files can be downloaded or read by Tolvi AI. rejected: the file failed the checks or the scan found malware (see rejectedReason); it can never be downloaded. One of: |
[].messages[].evidence[].rejectedReasonrequired | stringnullable | Why a rejected file was rejected, e.g. "malware detected"; null otherwise. |
[].messages[].evidence[].uploadedByrequired | string (uuid)nullable | |
[].messages[].evidence[].createdAtrequired | string (date-time) |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Raise a review point
POST/api/v1/engagements/{id}/review-points
- Scopes
review:writeandengagements:read- Role
- Reviewer or above
- Retries
- Send an
Idempotency-Keyto make retries safe.
On reviewed work this withdraws the review sign-off. @mentions are notified.
Needs the Reviewer role or above. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
Idempotency-Key | header | string | A unique key (1-255 visible characters) to make retries safe. Replayed for 24 hours. 1 to 255 characters |
Request body
Required. application/json: object (RaiseReviewPoint).
| Field | Type | Description |
|---|---|---|
sectionCode | stringnullable | Section code; omit or null for the engagement as a whole. |
categoryrequired | string (ReviewPointCategory) | One of: |
bodyrequired | string | @Full Name mentions are recognised. 1 to 4000 characters |
mentions | array of string (uuid) | People to mention, in addition to @names in the text. up to 50 items |
Responses
201 Created, application/json
Body: object (ReviewPoint).
| Field | Type | Description |
|---|---|---|
idrequired | string (uuid) | |
sectionCoderequired | stringnullable | Null for a point on the engagement as a whole. |
categoryrequired | string (ReviewPointCategory) | One of: |
statusrequired | string (ReviewPointStatus) | One of: |
raisedAtStageIdrequired | string | |
raisedInRoundrequired | integer | at least 1 |
raisedByrequired | string (uuid)nullable | |
raisedAtrequired | string (date-time) | |
clearedByrequired | string (uuid)nullable | |
clearedAtrequired | string (date-time)nullable | |
sourceMeetingId | string (uuid)nullable | The meeting whose next step this point came from (Create follow-ups in Tolvi Meetings), if any. |
messagesrequired | array of ReviewPointMessage | |
messages[].idrequired | string (uuid) | |
messages[].kindrequired | string (ReviewPointMessageKind) | One of: |
messages[].authorIdrequired | string (uuid)nullable | |
messages[].bodyrequired | string | |
messages[].mentionsrequired | array of string (uuid) | |
messages[].atrequired | string (date-time) | |
messages[].evidencerequired | array of Evidence | |
messages[].evidence[].idrequired | string (uuid) | |
messages[].evidence[].sectionCoderequired | stringnullable | |
messages[].evidence[].checklistItemIdrequired | string (uuid)nullable | |
messages[].evidence[].reviewPointIdrequired | string (uuid)nullable | |
messages[].evidence[].reviewPointMessageIdrequired | string (uuid)nullable | |
messages[].evidence[].fileNamerequired | string | |
messages[].evidence[].contentTyperequired | string | |
messages[].evidence[].sizeBytesrequired | integer | at least 0 |
messages[].evidence[].statusrequired | string (EvidenceStatus) | pending_upload until POST …/evidence/{evidenceId}/confirm checks the stored file; then pending_scan (malware scan) and available. Only available files can be downloaded or read by Tolvi AI. rejected: the file failed the checks or the scan found malware (see rejectedReason); it can never be downloaded. One of: |
messages[].evidence[].rejectedReasonrequired | stringnullable | Why a rejected file was rejected, e.g. "malware detected"; null otherwise. |
messages[].evidence[].uploadedByrequired | string (uuid)nullable | |
messages[].evidence[].createdAtrequired | string (date-time) |
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 409 Conflict, 422 Unprocessable content, 429 Too many requests, as problem details (application/problem+json).
Get a review point with its thread
GET/api/v1/engagements/{id}/review-points/{pointId}
- Scopes
engagements:read
Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
pointIdrequired | path | string (uuid) |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Comment on a review point
POST/api/v1/engagements/{id}/review-points/{pointId}/comments
- Scopes
engagements:writeandengagements:read- Retries
- Send an
Idempotency-Keyto make retries safe.
With @mentions and evidence uploaded for the point. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
pointIdrequired | path | string (uuid) | |
Idempotency-Key | header | string | A unique key (1-255 visible characters) to make retries safe. Replayed for 24 hours. 1 to 255 characters |
Request body
Required. application/json: object (ReviewPointReply).
| Field | Type | Description |
|---|---|---|
body | string | up to 4000 characters |
mentions | array of string (uuid) | up to 50 items |
evidenceIds | array of string (uuid) | Evidence uploaded for this review point, attached to the reply. up to 20 items |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 409 Conflict, 422 Unprocessable content, 429 Too many requests, as problem details (application/problem+json).
Answer a review point
POST/api/v1/engagements/{id}/review-points/{pointId}/answer
- Scopes
engagements:writeandengagements:read
Moves an open or reopened point to answered. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
pointIdrequired | path | string (uuid) |
Request body
Required. application/json: object (ReviewPointReply).
| Field | Type | Description |
|---|---|---|
body | string | up to 4000 characters |
mentions | array of string (uuid) | up to 50 items |
evidenceIds | array of string (uuid) | Evidence uploaded for this review point, attached to the reply. up to 20 items |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Clear a review point
POST/api/v1/engagements/{id}/review-points/{pointId}/clear
- Scopes
review:writeandengagements:read- Role
- Reviewer or above
Only the stage that raised it, or a later one.
Needs the Reviewer role or above. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
pointIdrequired | path | string (uuid) |
Request body
Required. application/json: object (ReviewPointAction).
| Field | Type | Description |
|---|---|---|
body | string | Required to reopen. up to 4000 characters |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).
Reopen a review point
POST/api/v1/engagements/{id}/review-points/{pointId}/reopen
- Scopes
review:writeandengagements:read- Role
- Reviewer or above
An answered or cleared point, with a message saying why.
Needs the Reviewer role or above. Part of the working_papers product: the firm must have it and you must have access to it.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string (uuid) | Engagement id. |
pointIdrequired | path | string (uuid) |
Request body
Required. application/json: object (ReviewPointAction).
| Field | Type | Description |
|---|---|---|
body | string | Required to reopen. up to 4000 characters |
Responses
Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).