Skip to main content

Settings

24 operations in the Tolvi API, version 1. Paths are relative to https://api.tolvi.co.uk. Every amount is integer pence.

Get the firm’s mapping rules, in order

GET/api/v1/settings/mapping-rules

Scopes
engagements:read

Part of the working_papers product: the firm must have it and you must have access to it.

Responses

200 OK, application/json

Body: object (MappingRules).

200 OK response for GET /api/v1/settings/mapping-rules
FieldTypeDescription
rulesrequiredarray of MappingRule

up to 500 items

rules[].​kindrequiredstring (MappingRuleKind)

One of: name, code_range

rules[].​patternrequiredstring

A name pattern (case-insensitive wildcards: * any characters, ? one character, | alternatives, ^ start, $ end; not a regular expression) or a code range "4000-4899".

up to 200 characters

rules[].​lineIdrequiredstring (LeadLineId)

One of: C.cost, C.dep, D.stk, E.td, E.pre, F.bank, G.tc, G.acc, H.vat, I.paye, J.dla, J.loanst, J.loan, K.cap, K.res, K.div, L.sales, L.intrec, M.cos, M.adm, M.dis, M.dep, M.int, M.disp, T.chg, T.liab, T.dtc, P.dt, J.cap, J.draw

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Replace the firm’s mapping rules

PUT/api/v1/settings/mapping-rules

Scopes
settings:admin
Role
Firm admin

Applied after client memory and before the built-in matcher. Part of the working_papers product: the firm must have it and you must have access to it.

Request body

Required. application/json: object (MappingRules).

Request body for PUT /api/v1/settings/mapping-rules
FieldTypeDescription
rulesrequiredarray of MappingRule

up to 500 items

rules[].​kindrequiredstring (MappingRuleKind)

One of: name, code_range

rules[].​patternrequiredstring

A name pattern (case-insensitive wildcards: * any characters, ? one character, | alternatives, ^ start, $ end; not a regular expression) or a code range "4000-4899".

up to 200 characters

rules[].​lineIdrequiredstring (LeadLineId)

One of: C.cost, C.dep, D.stk, E.td, E.pre, F.bank, G.tc, G.acc, H.vat, I.paye, J.dla, J.loanst, J.loan, K.cap, K.res, K.div, L.sales, L.intrec, M.cos, M.adm, M.dis, M.dep, M.int, M.disp, T.chg, T.liab, T.dtc, P.dt, J.cap, J.draw

Responses

200 OK, application/json

Body: object (MappingRules).

200 OK response for PUT /api/v1/settings/mapping-rules
FieldTypeDescription
rulesrequiredarray of MappingRule

up to 500 items

rules[].​kindrequiredstring (MappingRuleKind)

One of: name, code_range

rules[].​patternrequiredstring

A name pattern (case-insensitive wildcards: * any characters, ? one character, | alternatives, ^ start, $ end; not a regular expression) or a code range "4000-4899".

up to 200 characters

rules[].​lineIdrequiredstring (LeadLineId)

One of: C.cost, C.dep, D.stk, E.td, E.pre, F.bank, G.tc, G.acc, H.vat, I.paye, J.dla, J.loanst, J.loan, K.cap, K.res, K.div, L.sales, L.intrec, M.cos, M.adm, M.dis, M.dep, M.int, M.disp, T.chg, T.liab, T.dtc, P.dt, J.cap, J.draw

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Get the firm’s checklist template for every section

GET/api/v1/settings/checklists

Scopes
engagements:read

Part of the working_papers product: the firm must have it and you must have access to it.

Responses

200 OK, application/json

Body: array of ChecklistTemplate.

The firm’s steps for one section; an empty list restores the built-in steps.

200 OK response for GET /api/v1/settings/checklists
FieldTypeDescription
[].​sectionCoderequiredstring
[].​itemsrequiredarray of string

up to 100 items

[].​builtinrequiredboolean

Tolvi’s built-in wording (the firm has not set its own).

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set the firm’s checklist for a section

PUT/api/v1/settings/checklists/{code}

Scopes
settings:admin
Role
Firm admin

Used for engagements started from now on. Part of the working_papers product: the firm must have it and you must have access to it.

Parameters

Parameters for PUT /api/v1/settings/checklists/{code}
NameInTypeDescription
coderequiredpathstring

Section code (W/P ref), e.g. C.

One of: A, B, C, D, E, F, G, H, I, J, K, L, M, T, X, Z

Request body

Required. application/json: object (SetChecklistTemplate).

Request body for PUT /api/v1/settings/checklists/{code}
FieldTypeDescription
itemsrequiredarray of string

up to 100 items

Responses

200 OK, application/json

Body: object (ChecklistTemplate).

The firm’s steps for one section; an empty list restores the built-in steps.

200 OK response for PUT /api/v1/settings/checklists/{code}
FieldTypeDescription
sectionCoderequiredstring
itemsrequiredarray of string

up to 100 items

builtinrequiredboolean

Tolvi’s built-in wording (the firm has not set its own).

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).

Get the firm’s settings

GET/api/v1/settings

Scopes
settings:read

Firm details, thresholds, reminders, default workflows, workflow templates, notifications, sync, security, capacity and AI.

Responses

200 OK, application/json

Body: object (FirmSettings).

200 OK response for GET /api/v1/settings
FieldTypeDescription
firmNamerequiredstring
onboardedrequiredboolean
onboardedAtrequiredstring (date-time)nullable
firmrequiredobject (FirmDetails)
firm.​namestring

up to 200 characters

firm.​taglinestring

up to 200 characters

firm.​officesarray of string

up to 50 items

thresholdsrequiredobject (FirmThresholds)

Movements at or above both thresholds need an explanation. New engagements copy these.

thresholds.​absolutePencerequiredinteger

Integer pence (GBP).

at least 0

thresholds.​percentrequiredinteger

0 to 1000

approvalsrequiredobject (ApprovalSettings)

Who approves accounts and returns in Accounts, Corporation Tax and Self Assessment.

approvals.​approverRolerequiredstring (ApproverRole)

The lowest role that may approve: partners only, or managers and partners.

One of: partner, manager

reminderDaysrequiredarray of integer
defaultWorkflowsrequiredobject (DefaultWorkflows)

Workflow template id (a preset or the firm’s own) by entity type.

defaultWorkflows.​LTD_FRS102_1Arequiredstring
defaultWorkflows.​LTD_FRS105_MICROrequiredstring
defaultWorkflows.​LLPrequiredstring
defaultWorkflows.​SOLE_TRADERrequiredstring
defaultWorkflows.​PARTNERSHIPrequiredstring
defaultWorkflows.​INDIVIDUALstring
defaultWorkflows.​TRUSTrequiredstring
defaultWorkflows.​ESTATErequiredstring
defaultWorkflows.​CHARITY_UNINCORPORATEDrequiredstring
defaultWorkflows.​CHARITY_TRUSTrequiredstring
defaultWorkflows.​CIOrequiredstring
defaultWorkflows.​SCIOrequiredstring
defaultWorkflows.​CHARITABLE_COMPANYrequiredstring
notificationsrequiredobject (NotificationPrefs)

Channels per notification type. Mentions and assignments are always in-app.

notifications.​mentionrequiredobject (NotificationChannels)
notifications.​mention.​apprequiredboolean
notifications.​mention.​emailrequiredboolean
notifications.​mention.​digestrequiredboolean
notifications.​rprequiredobject (NotificationChannels)
notifications.​rp.​apprequiredboolean
notifications.​rp.​emailrequiredboolean
notifications.​rp.​digestrequiredboolean
notifications.​clearedrequiredobject (NotificationChannels)
notifications.​cleared.​apprequiredboolean
notifications.​cleared.​emailrequiredboolean
notifications.​cleared.​digestrequiredboolean
notifications.​reviewrequiredobject (NotificationChannels)
notifications.​review.​apprequiredboolean
notifications.​review.​emailrequiredboolean
notifications.​review.​digestrequiredboolean
notifications.​syncrequiredobject (NotificationChannels)
notifications.​sync.​apprequiredboolean
notifications.​sync.​emailrequiredboolean
notifications.​sync.​digestrequiredboolean
notifications.​assignrequiredobject (NotificationChannels)
notifications.​assign.​apprequiredboolean
notifications.​assign.​emailrequiredboolean
notifications.​assign.​digestrequiredboolean
notifications.​deadlinerequiredobject (NotificationChannels)
notifications.​deadline.​apprequiredboolean
notifications.​deadline.​emailrequiredboolean
notifications.​deadline.​digestrequiredboolean
notifications.​filingobject (NotificationChannels)

HMRC’s reply to a return.

notifications.​filing.​apprequiredboolean
notifications.​filing.​emailrequiredboolean
notifications.​filing.​digestrequiredboolean
syncrequiredobject (SyncSettings)
sync.​frequencyrequiredstring (SyncFrequency)

One of: nightly, weekly

sync.​timerequiredstring

pattern ^([01]\d|2[0-3]):[0-5]\d$; example "02:00"

sync.​ignoreUnderPencerequiredinteger

Integer pence (GBP).

at least 0

sync.​comparePriorYearrequiredboolean
sync.​onChangerequiredstring (SyncOnChange)

One of: notify, reopen, none

sync.​digestrequiredstring (SyncDigest)

One of: daily, instant, off

emailrequiredobject (EmailSettings)

When the daily digest and deadline reminders go out, in the firm’s local time.

email.​timeZonerequiredstring

IANA time zone, e.g. Europe/London.

up to 64 characters

email.​digestHourrequiredinteger

Local hour (0–23) from which the digest and reminders are sent.

0 to 23

securityrequiredobject (SecuritySettings)
security.​mfarequiredboolean

Enforced: sign-in tokens must show a second factor (amr / acr).

security.​ssorequiredboolean
security.​timeoutMinutesrequiredinteger

Enforced: people sign in again this long after they last signed in (auth_time).

5 to 1440

security.​retentionYearsrequiredinteger

Not yet enforced: no deletion job runs yet, so records are currently kept indefinitely.

6 to 20

capacityrequiredobject (Capacity)

Open engagements a person can hold, by role (null: no limit).

capacity.​preparerrequiredintegernullable
capacity.​reviewerrequiredintegernullable
capacity.​managerrequiredintegernullable
capacity.​partnerrequiredintegernullable
airequiredobject (AiSettings)

Tolvi AI controls: on/off, per-feature switches, monthly limits and who can buy tokens.

ai.​enabledrequiredboolean
ai.​featuresrequiredobject (AiFeatureSwitches)
ai.​features.​explain_movementsrequiredboolean
ai.​features.​suggest_mappingsrequiredboolean
ai.​features.​review_assistantrequiredboolean
ai.​features.​check_evidencerequiredboolean
ai.​features.​explain_sync_changesrequiredboolean
ai.​features.​ask_tolvirequiredboolean
ai.​features.​draft_client_queriesrequiredboolean
ai.​features.​summarise_meetingboolean

Meetings: summary and actions after each recorded meeting. Optional when saving (unchanged if left out).

ai.​features.​sa_assistantboolean

Self Assessment: AI Mode. Optional when saving (unchanged if left out).

ai.​features.​sa_read_documentboolean

Self Assessment: reading uploaded documents in AI Mode. Optional when saving (unchanged if left out).

ai.​features.​accounts_draft_noteboolean

Accounts: drafting note wording for a person to check. Optional when saving (unchanged if left out).

ai.​defaultMonthlyLimitrequiredintegernullable

Tolvi AI tokens per person per UK calendar month; null for no limit.

at least 0

ai.​userLimitsrequiredobject

Per-person limits by user id (null: no limit).

ai.​buyersrequiredstring (TokenBuyers)

One of: partners_and_admins, admins

ai.​autoTopUprequiredobject (AutoTopUp)
ai.​autoTopUp.​enabledrequiredboolean
ai.​autoTopUp.​belowTokensrequiredinteger

at least 0

ai.​autoTopUp.​packIdrequiredstring (TokenPackId)

One of: starter, practice, firm

workflowsrequiredarray of WorkflowTemplate
workflows[].​idrequiredstring

A preset id (preset-…) or the firm template’s uuid.

workflows[].​namerequiredstring
workflows[].​builtinrequiredboolean

A Tolvi preset (read only).

workflows[].​versionrequiredinteger
workflows[].​stagesrequiredarray of WorkflowTemplateStage
workflows[].​stages[].​idstring

Stage id (read only).

workflows[].​stages[].​namerequiredstring

up to 100 characters

workflows[].​stages[].​rolerequiredstring (WorkflowStageRole)

One of: preparer, reviewer, manager, partner

workflows[].​stages[].​mustDifferrequiredboolean

Must be a different person from every earlier stage.

workflows[].​stages[].​scopestring (StageScope)

Default both.

One of: section, engagement, both

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Update the firm’s name, tagline and offices

PATCH/api/v1/settings/firm

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Request body

Required. application/json: object (FirmDetails).

Request body for PATCH /api/v1/settings/firm
FieldTypeDescription
namestring

up to 200 characters

taglinestring

up to 200 characters

officesarray of string

up to 50 items

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set the review thresholds new engagements use

PUT/api/v1/settings/thresholds

Scopes
settings:admin
Role
Firm admin

Request body

Required. application/json: object (FirmThresholds).

Movements at or above both thresholds need an explanation. New engagements copy these.

Request body for PUT /api/v1/settings/thresholds
FieldTypeDescription
absolutePencerequiredinteger

Integer pence (GBP).

at least 0

percentrequiredinteger

0 to 1000

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set who approves accounts and returns

PUT/api/v1/settings/approvals

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Firm admins, signed in. Partners by default, or managers and partners. Applies to Accounts, Corporation Tax and Self Assessment from the next approval, and approvals already given stand. Never available to API keys or connected assistants.

Request body

Required. application/json: object (ApprovalSettings).

Who approves accounts and returns in Accounts, Corporation Tax and Self Assessment.

Request body for PUT /api/v1/settings/approvals
FieldTypeDescription
approverRolerequiredstring (ApproverRole)

The lowest role that may approve: partners only, or managers and partners.

One of: partner, manager

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set deadline reminder days

PUT/api/v1/settings/reminders

Scopes
settings:admin
Role
Firm admin

Request body

Required. application/json: object (Reminders).

Request body for PUT /api/v1/settings/reminders
FieldTypeDescription
reminderDaysrequiredarray of integer

Days before the filing deadline to remind whoever’s turn it is.

up to 10 items

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set the default workflow for each entity type

PUT/api/v1/settings/default-workflows

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Request body

Required. application/json: object (DefaultWorkflows).

Workflow template id (a preset or the firm’s own) by entity type.

Request body for PUT /api/v1/settings/default-workflows
FieldTypeDescription
LTD_FRS102_1Arequiredstring
LTD_FRS105_MICROrequiredstring
LLPrequiredstring
SOLE_TRADERrequiredstring
PARTNERSHIPrequiredstring
INDIVIDUALstring
TRUSTrequiredstring
ESTATErequiredstring
CHARITY_UNINCORPORATEDrequiredstring
CHARITY_TRUSTrequiredstring
CIOrequiredstring
SCIOrequiredstring
CHARITABLE_COMPANYrequiredstring

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set the firm’s notification channels

PUT/api/v1/settings/notifications

Scopes
settings:admin
Role
Firm admin

Mentions and assignments always arrive in-app.

Request body

Required. application/json: object (NotificationPrefs).

Channels per notification type. Mentions and assignments are always in-app.

Request body for PUT /api/v1/settings/notifications
FieldTypeDescription
mentionrequiredobject (NotificationChannels)
mention.​apprequiredboolean
mention.​emailrequiredboolean
mention.​digestrequiredboolean
rprequiredobject (NotificationChannels)
rp.​apprequiredboolean
rp.​emailrequiredboolean
rp.​digestrequiredboolean
clearedrequiredobject (NotificationChannels)
cleared.​apprequiredboolean
cleared.​emailrequiredboolean
cleared.​digestrequiredboolean
reviewrequiredobject (NotificationChannels)
review.​apprequiredboolean
review.​emailrequiredboolean
review.​digestrequiredboolean
syncrequiredobject (NotificationChannels)
sync.​apprequiredboolean
sync.​emailrequiredboolean
sync.​digestrequiredboolean
assignrequiredobject (NotificationChannels)
assign.​apprequiredboolean
assign.​emailrequiredboolean
assign.​digestrequiredboolean
deadlinerequiredobject (NotificationChannels)
deadline.​apprequiredboolean
deadline.​emailrequiredboolean
deadline.​digestrequiredboolean
filingobject (NotificationChannels)

HMRC’s reply to a return.

filing.​apprequiredboolean
filing.​emailrequiredboolean
filing.​digestrequiredboolean

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set sync settings

PUT/api/v1/settings/sync

Scopes
settings:admin
Role
Firm admin

Request body

Required. application/json: object (SyncSettings).

Request body for PUT /api/v1/settings/sync
FieldTypeDescription
frequencyrequiredstring (SyncFrequency)

One of: nightly, weekly

timerequiredstring

pattern ^([01]\d|2[0-3]):[0-5]\d$; example "02:00"

ignoreUnderPencerequiredinteger

Integer pence (GBP).

at least 0

comparePriorYearrequiredboolean
onChangerequiredstring (SyncOnChange)

One of: notify, reopen, none

digestrequiredstring (SyncDigest)

One of: daily, instant, off

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set when digests and deadline reminders are emailed

PUT/api/v1/settings/email

Scopes
settings:admin
Role
Firm admin

The firm’s time zone and the local hour the daily digest and deadline reminders go out.

Request body

Required. application/json: object (EmailSettings).

When the daily digest and deadline reminders go out, in the firm’s local time.

Request body for PUT /api/v1/settings/email
FieldTypeDescription
timeZonerequiredstring

IANA time zone, e.g. Europe/London.

up to 64 characters

digestHourrequiredinteger

Local hour (0–23) from which the digest and reminders are sent.

0 to 23

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set security settings

PUT/api/v1/settings/security

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Request body

Required. application/json: object (SecuritySettings).

Request body for PUT /api/v1/settings/security
FieldTypeDescription
mfarequiredboolean

Enforced: sign-in tokens must show a second factor (amr / acr).

ssorequiredboolean
timeoutMinutesrequiredinteger

Enforced: people sign in again this long after they last signed in (auth_time).

5 to 1440

retentionYearsrequiredinteger

Not yet enforced: no deletion job runs yet, so records are currently kept indefinitely.

6 to 20

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set capacity by role

PUT/api/v1/settings/capacity

Scopes
settings:admin
Role
Firm admin

Request body

Required. application/json: object (Capacity).

Open engagements a person can hold, by role (null: no limit).

Request body for PUT /api/v1/settings/capacity
FieldTypeDescription
preparerrequiredintegernullable
reviewerrequiredintegernullable
managerrequiredintegernullable
partnerrequiredintegernullable

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Set Tolvi AI controls

PUT/api/v1/settings/ai

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

On/off, per-feature switches, monthly limits, who can buy tokens and auto top-up.

Request body

Required. application/json: object (AiSettings).

Tolvi AI controls: on/off, per-feature switches, monthly limits and who can buy tokens.

Request body for PUT /api/v1/settings/ai
FieldTypeDescription
enabledrequiredboolean
featuresrequiredobject (AiFeatureSwitches)
features.​explain_movementsrequiredboolean
features.​suggest_mappingsrequiredboolean
features.​review_assistantrequiredboolean
features.​check_evidencerequiredboolean
features.​explain_sync_changesrequiredboolean
features.​ask_tolvirequiredboolean
features.​draft_client_queriesrequiredboolean
features.​summarise_meetingboolean

Meetings: summary and actions after each recorded meeting. Optional when saving (unchanged if left out).

features.​sa_assistantboolean

Self Assessment: AI Mode. Optional when saving (unchanged if left out).

features.​sa_read_documentboolean

Self Assessment: reading uploaded documents in AI Mode. Optional when saving (unchanged if left out).

features.​accounts_draft_noteboolean

Accounts: drafting note wording for a person to check. Optional when saving (unchanged if left out).

defaultMonthlyLimitrequiredintegernullable

Tolvi AI tokens per person per UK calendar month; null for no limit.

at least 0

userLimitsrequiredobject

Per-person limits by user id (null: no limit).

buyersrequiredstring (TokenBuyers)

One of: partners_and_admins, admins

autoTopUprequiredobject (AutoTopUp)
autoTopUp.​enabledrequiredboolean
autoTopUp.​belowTokensrequiredinteger

at least 0

autoTopUp.​packIdrequiredstring (TokenPackId)

One of: starter, practice, firm

Responses

200 OK, application/json

Body: object (FirmSettings).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Get onboarding progress

GET/api/v1/settings/onboarding

Scopes
work:read

Responses

200 OK, application/json

Body: object (OnboardingStatus).

200 OK response for GET /api/v1/settings/onboarding
FieldTypeDescription
onboardedrequiredboolean
onboardedAtrequiredstring (date-time)nullable
stepsrequiredobject (OnboardingSteps)
steps.​firmDetailsrequiredboolean
steps.​thresholdsrequiredboolean
steps.​workflowrequiredboolean
steps.​teamrequiredboolean

Someone else has joined.

steps.​clientsrequiredboolean

At least one client.

steps.​colleagueInvitedrequiredboolean

Someone else has joined, or has been invited (and the invitation not withdrawn).

steps.​bookkeepingConnectedrequiredboolean

At least one client is connected to its bookkeeping software (Xero, QuickBooks, Sage or FreeAgent).

steps.​engagementStartedrequiredboolean

At least one engagement has been started.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Complete or skip onboarding

POST/api/v1/settings/onboarding

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

complete finishes first-run setup and clears its saved progress. skip (“Finish later”) lets the firm into Tolvi and keeps the progress, so setup resumes where it was left.

Request body

Required. application/json: object (CompleteOnboarding).

Request body for POST /api/v1/settings/onboarding
FieldTypeDescription
actionrequiredstring (OnboardingAction)

One of: complete, skip

firmNamestring

up to 200 characters

officesarray of string

up to 50 items

thresholdsobject (FirmThresholds)

Movements at or above both thresholds need an explanation. New engagements copy these.

thresholds.​absolutePencerequiredinteger

Integer pence (GBP).

at least 0

thresholds.​percentrequiredinteger

0 to 1000

defaultWorkflowIdstring

Becomes the default workflow for every entity type.

Responses

200 OK, application/json

Body: object (OnboardingStatus).

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Get first-run setup progress

GET/api/v1/settings/onboarding/progress

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

The step to resume at, how clients are being brought in and the invitations queued to send at the end. Firm admins, signed in to the web app.

Responses

200 OK, application/json

Body: object (OnboardingProgress).

First-run setup saved as it goes, so it resumes where it was left. Firm details, thresholds and workflows are saved to the settings themselves; this keeps the step reached, how clients are being brought in, and the invitations queued to send on the last step.

200 OK response for GET /api/v1/settings/onboarding/progress
FieldTypeDescription
steprequiredstring (OnboardingStep)

The step to resume at.

One of: firm, clients, team, review, finish

clientSourcerequiredstring (OnboardingClientSource)nullable

How clients are being brought in; null until chosen.

One of: xero, csv, one, later

invitationsrequiredarray of QueuedInvitation

up to 50 items

invitations[].​emailrequiredstring (email)

up to 254 characters

invitations[].​staffRolerequiredstring (StaffRole)

One of: partner, manager, reviewer, preparer, admin

updatedAtrequiredstring (date-time)nullable

When it was last saved; null when nothing has been saved yet.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Save first-run setup progress

PUT/api/v1/settings/onboarding/progress

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Saves the step reached and the invitations queued so far; nothing is sent. The invitations go out when setup finishes, one POST /invitations each. Firm admins, signed in to the web app.

Request body

Required. application/json: object (SaveOnboardingProgress).

Request body for PUT /api/v1/settings/onboarding/progress
FieldTypeDescription
steprequiredstring (OnboardingStep)

The step to resume at.

One of: firm, clients, team, review, finish

clientSourcestring (OnboardingClientSource)nullable

How clients are being brought in; null until chosen.

One of: xero, csv, one, later

invitationsarray of QueuedInvitation

Replaces the queued invitations when given.

up to 50 items

invitations[].​emailrequiredstring (email)

up to 254 characters

invitations[].​staffRolerequiredstring (StaffRole)

One of: partner, manager, reviewer, preparer, admin

Responses

200 OK, application/json

Body: object (OnboardingProgress).

First-run setup saved as it goes, so it resumes where it was left. Firm details, thresholds and workflows are saved to the settings themselves; this keeps the step reached, how clients are being brought in, and the invitations queued to send on the last step.

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

List workflow templates (presets and the firm’s own)

GET/api/v1/settings/workflows

Scopes
settings:read

Responses

200 OK, application/json

Body: array of WorkflowTemplate.

200 OK response for GET /api/v1/settings/workflows
FieldTypeDescription
[].​idrequiredstring

A preset id (preset-…) or the firm template’s uuid.

[].​namerequiredstring
[].​builtinrequiredboolean

A Tolvi preset (read only).

[].​versionrequiredinteger
[].​stagesrequiredarray of WorkflowTemplateStage
[].​stages[].​idstring

Stage id (read only).

[].​stages[].​namerequiredstring

up to 100 characters

[].​stages[].​rolerequiredstring (WorkflowStageRole)

One of: preparer, reviewer, manager, partner

[].​stages[].​mustDifferrequiredboolean

Must be a different person from every earlier stage.

[].​stages[].​scopestring (StageScope)

Default both.

One of: section, engagement, both

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Replace the firm’s workflow templates

PUT/api/v1/settings/workflows

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

Validated with @tolvi/workflow. Engagements already started keep the template they started with.

Request body

Required. application/json: object (SetWorkflowTemplates).

The firm’s templates (presets are always available). Templates left out are archived.

Request body for PUT /api/v1/settings/workflows
FieldTypeDescription
templatesrequiredarray of WorkflowTemplateInput

up to 20 items

templates[].​idstring (uuid)

Keep to update an existing template.

templates[].​namerequiredstring

up to 100 characters

templates[].​stagesrequiredarray of WorkflowTemplateStage

1 to 8 items

templates[].​stages[].​idstring

Stage id (read only).

templates[].​stages[].​namerequiredstring

up to 100 characters

templates[].​stages[].​rolerequiredstring (WorkflowStageRole)

One of: preparer, reviewer, manager, partner

templates[].​stages[].​mustDifferrequiredboolean

Must be a different person from every earlier stage.

templates[].​stages[].​scopestring (StageScope)

Default both.

One of: section, engagement, both

Responses

200 OK, application/json

Body: array of WorkflowTemplate.

The fields are as shown above.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

List the firm’s people with their roles, capacity and open work

GET/api/v1/members

Scopes
settings:read

Responses

200 OK, application/json

Body: array of Member.

200 OK response for GET /api/v1/members
FieldTypeDescription
[].​idrequiredstring (uuid)
[].​namerequiredstring
[].​emailrequiredstring
[].​initialsrequiredstring
[].​rolerequiredstring (MembershipRole)

One of: owner, admin, staff

[].​staffRolerequiredstring (StaffRole)nullable

One of: partner, manager, reviewer, preparer, admin

[].​isAdminrequiredboolean
[].​capacityrequiredintegernullable
[].​openEngagementsrequiredinteger

Open engagements where it is their turn.

[].​openOnTeaminteger

Open engagements they are on in any role (preparer, reviewer, manager or partner), each counted once.

[].​openByRoleobject (OpenByRole)

Open engagements they are on, by role.

[].​openByRole.​preparerrequiredinteger
[].​openByRole.​reviewerrequiredinteger
[].​openByRole.​managerrequiredinteger
[].​openByRole.​partnerrequiredinteger
[].​joinedAtrequiredstring (date-time)

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 429 Too many requests, as problem details (application/problem+json).

Remove someone from the firm

DELETE/api/v1/members/{userId}

Scopes
settings:admin
Role
Firm admin
Access
A signed-in Tolvi session only, never an API token.

They lose access at once and leave the firm’s sign-in organisation. Only an owner can remove an owner; you can’t remove yourself.

Parameters

Parameters for DELETE /api/v1/members/{userId}
NameInTypeDescription
userIdrequiredpathstring (uuid)

Responses

204 No content

Removed.

Errors: 400 Bad request, 401 Unauthorised, 403 Forbidden, 404 Not found, 429 Too many requests, as problem details (application/problem+json).