Tolvi API reference
The Tolvi API has 606 operations in 41 areas. This reference is built from the OpenAPI 3.1 specification that the API generates from its own code (API version 1.0.0), so it matches what the API does.
Conventions
- Base URL
- Paths in this reference start
/api/v1and are relative tohttps://api.tolvi.co.uk. - Authentication
Authorization: Bearer <token>with a personal access token, a client-credentials token or an OAuth access token. Each operation lists the scopes it needs, and the caller's role also applies. Tokens, scopes and roles.- Firm
- If you belong to several firms, send
x-firm-idwith the firm's id. It must be one of your own firms. It isn't repeated in each operation below. - Money
- Every amount is an integer number of pence, in fields ending
Pence:123456is 1,234.56 pounds. There are no decimal amounts anywhere. Trial balance amounts are debit positive, so credits are negative. - Dates and times
- Dates are
YYYY-MM-DD(formatdate). Times are ISO 8601 in UTC (formatdate-time). - Pagination
- Lists are cursor-based. Pass
limit(1 to 100) and the previous page'snextCursorascursor. Lists returnrows,nextCursorandpageSize; anullcursor means the last page.GET /api/v1/clients?limit=50 → { "rows": [ … ], "nextCursor": "eyJ…", "pageSize": 50 } GET /api/v1/clients?limit=50&cursor=eyJ… → { "rows": [ … ], "nextCursor": null, "pageSize": 50 } - Idempotency
- Operations that accept an
Idempotency-Keyheader can be retried safely. The first successful response is replayed for 24 hours withIdempotent-Replayed: true. Reusing a key for a different request is a 422. - Rate limits
- Every response carries
RateLimit-Limit,RateLimit-Remaining,RateLimit-ResetandRateLimit-Policy. Limits by plan, person and firm. - Fields
- "Required" fields are always present in a response and must be sent in a request. "Nullable" fields can be
null. New optional fields may appear within version 1, so ignore any you don't know.
Errors
Errors are RFC 9457 problem details, with Content-Type: application/problem+json. The status code says what kind of error it is, and detail says what to fix. The OAuth token endpoint is the one exception: it answers with the OAuth error shape that OAuth clients expect.
| Field | Type | Description |
|---|---|---|
typerequired | string | A URI for the problem type; about:blank means "see the status". example "about:blank" |
titlerequired | string | The HTTP status phrase. example "Forbidden" |
statusrequired | integer | example 403 |
detail | string | example "This needs the Manager role or above" |
instance | string | The request path. example "/api/v1/work/assign" |
errors | array of string | Every validation message, when there was more than one. |
rateLimitScope | string (RateLimitScope) | On a 429, which limit was hit: One of: example "person" |
HTTP/1.1 403 Forbidden
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "This needs the Manager role or above",
"instance": "/api/v1/work/assign"
}- 400 the request isn't valid.
errorslists every message when there's more than one. - 401 no token, or the token isn't valid or has expired.
- 403 the role or the token's scopes don't allow it, or a workflow rule blocks it.
- 404 not found in your firm. Another firm's records are never visible, so they're a 404 too.
- 409 and 422 the change conflicts with the current state, or an idempotency key was reused.
- 429 over a rate limit. Wait for
Retry-Afterseconds;rateLimitScopesays whose limit it was (client,person,firmorip).
Operations
Each area has its own page with the full detail of every operation.
Filter by path, method or summary, for example "review point" or "POST".
Imports 16 operations
- GET
/api/v1/importsList imports - POST
/api/v1/importsStart an import - GET
/api/v1/imports/kindsList what can be imported - GET
/api/v1/imports/templates/{kind}Download a template - GET
/api/v1/imports/{id}Get an import - DELETE
/api/v1/imports/{id}Discard an import - POST
/api/v1/imports/{id}/uploadedSay the file has uploaded - PUT
/api/v1/imports/{id}/layoutChoose the sheet or heading row - PUT
/api/v1/imports/{id}/mappingConfirm the columns - GET
/api/v1/imports/{id}/rowsList an import’s rows - PATCH
/api/v1/imports/{id}/rows/{line}Decide one row - POST
/api/v1/imports/{id}/rows/decideDecide every row of a status - POST
/api/v1/imports/{id}/confirmConfirm and import - POST
/api/v1/imports/{id}/retryCarry on after a stop - POST
/api/v1/imports/{id}/undoUndo an import - GET
/api/v1/imports/{id}/reportDownload the results report
Health 1 operation
OAuth 2 operations
Sign-in 3 operations
Clients 19 operations
- GET
/api/v1/clients/{clientId}/linksList a client’s links - POST
/api/v1/clients/{clientId}/linksLink a person and a company - PATCH
/api/v1/clients/{clientId}/links/{linkId}Change a link - DELETE
/api/v1/clients/{clientId}/links/{linkId}Remove a link - GET
/api/v1/cross-product-suggestionsWhat a linked client’s other work suggests here - POST
/api/v1/cross-product-suggestions/decideAccept or dismiss a suggestion - GET
/api/v1/clientsList or search clients - POST
/api/v1/clientsCreate a client - GET
/api/v1/clients/duplicatesFind existing clients a new one may duplicate - GET
/api/v1/clients/{clientId}/checklist-stepsList a client’s own checklist steps - POST
/api/v1/clients/{clientId}/checklist-stepsAdd a checklist step for this client - GET
/api/v1/clients/{clientId}Get a client with its settings, notes and year-end history - GET
/api/v1/clients/{clientId}/mappingsList the client’s remembered mappings - GET
/api/v1/clients/{clientId}/settingsGet the client’s overrides of the firm settings - PATCH
/api/v1/clients/{clientId}/settingsChange the client’s overrides - GET
/api/v1/clients/{clientId}/notesGet the client’s permanent notes - PATCH
/api/v1/clients/{clientId}/notesReplace the client’s permanent notes - POST
/api/v1/clients/{clientId}/books-link/opening/previewPreview starting a client’s books from its final trial balance - POST
/api/v1/clients/{clientId}/books-link/openingStart a client’s books from its final trial balance
Tolvi Hub 18 operations
- GET
/api/v1/hub/homeGet the home page - GET
/api/v1/hub/work-itemsList work across the products - GET
/api/v1/hub/widgetsList the dashboard widgets you can see - GET
/api/v1/hub/widgets/{key}Get one widget’s figures - GET
/api/v1/hub/dashboardsList dashboards - POST
/api/v1/hub/dashboardsSave a new dashboard - PUT
/api/v1/hub/dashboards/defaultChoose your default dashboard - PATCH
/api/v1/hub/dashboards/{id}Change a dashboard - DELETE
/api/v1/hub/dashboards/{id}Delete a dashboard - GET
/api/v1/clients/{clientId}/overviewGet one client across the suite - GET
/api/v1/clients/{clientId}/period-chainGet one year end across the products - GET
/api/v1/clients/{clientId}/recordGet the client’s central record - PATCH
/api/v1/clients/{clientId}/recordChange the client’s central record - GET
/api/v1/clients/{clientId}/company-factsGet the company facts on the record - PUT
/api/v1/clients/{clientId}/directorsSave directors to the record - POST
/api/v1/clients/{clientId}/contactsAdd a contact - PATCH
/api/v1/clients/{clientId}/contacts/{contactId}Change a contact - DELETE
/api/v1/clients/{clientId}/contacts/{contactId}Remove a contact
Client list 10 operations
- GET
/api/v1/client-list/fieldsList the fields of the client list - GET
/api/v1/client-listList clients with chosen columns and filters - GET
/api/v1/client-list/exportExport the client list as CSV - GET
/api/v1/client-list/viewsList saved views - POST
/api/v1/client-list/viewsSave a view - PATCH
/api/v1/client-list/views/{viewId}Change a saved view - DELETE
/api/v1/client-list/views/{viewId}Delete a saved view - POST
/api/v1/client-list/views/{viewId}/duplicateDuplicate a saved view - PUT
/api/v1/client-list/views/{viewId}/defaultOpen the client list on this view - DELETE
/api/v1/client-list/default-viewStop opening the client list on a saved view
Accounts 28 operations
- GET
/api/v1/accountsList accounts - POST
/api/v1/accountsStart accounts - GET
/api/v1/accounts/statement-linesList statement lines - GET
/api/v1/accounts/{id}Get accounts - PATCH
/api/v1/accounts/{id}Change accounts - GET
/api/v1/accounts/{id}/trial-balance/versionsList trial balance versions - POST
/api/v1/accounts/{id}/trial-balance/versionsAdd a trial balance version - POST
/api/v1/accounts/{id}/trial-balance/previewRead a trial balance file - POST
/api/v1/accounts/{id}/linkLink to a Working Papers file - POST
/api/v1/accounts/{id}/refreshBring in the file’s latest figures - POST
/api/v1/accounts/{id}/roll-forwardStart next year’s accounts - POST
/api/v1/accounts/{id}/send-for-reviewSend for review - POST
/api/v1/accounts/{id}/approveRecord the directors’ approval - POST
/api/v1/accounts/{id}/reopenReopen accounts - POST
/api/v1/accounts/{id}/reviseStart revised accounts - POST
/api/v1/accounts/{id}/review-pointsRaise a review point - POST
/api/v1/accounts/{id}/review-points/{pointId}/clearClear a review point - POST
/api/v1/accounts/{id}/draft-noteDraft a note’s wording with Tolvi AI - GET
/api/v1/accounts/{id}/pdfDownload the accounts - GET
/api/v1/accounts/{id}/wordExport the accounts to Word - GET
/api/v1/accounts/{id}/ixbrlDownload the iXBRL accounts - POST
/api/v1/accounts/{id}/companies-house/submitFile with Companies House - POST
/api/v1/accounts/{id}/companies-house/submissions/{submissionId}/pollAsk Companies House for its answer - GET
/api/v1/companies-house/presentersList Companies House presenters - POST
/api/v1/companies-house/presentersAdd a Companies House presenter - DELETE
/api/v1/companies-house/presenters/{presenterId}Remove a Companies House presenter - PUT
/api/v1/companies-house/presenters/{presenterId}/credentialsSave the presenter details - DELETE
/api/v1/companies-house/presenters/{presenterId}/credentialsDelete the saved details
Corporation Tax 30 operations
- GET
/api/v1/corporation-tax/returnsList returns - POST
/api/v1/corporation-tax/returnsStart a return - GET
/api/v1/corporation-tax/returns/{id}Get a return - PATCH
/api/v1/corporation-tax/returns/{id}Change a return - GET
/api/v1/corporation-tax/returns/{id}/group-reliefGroup relief for a return - POST
/api/v1/corporation-tax/returns/{id}/group-relief/noticesRecord a notice of consent - POST
/api/v1/corporation-tax/returns/{id}/group-relief/notices/{noticeId}/withdrawWithdraw a notice of consent - POST
/api/v1/corporation-tax/returns/{id}/sources/linkLink a source - POST
/api/v1/corporation-tax/returns/{id}/sources/refreshRefresh from the source - POST
/api/v1/corporation-tax/returns/{id}/roll-forwardStart next period’s return - POST
/api/v1/corporation-tax/returns/{id}/send-for-reviewSend for review - POST
/api/v1/corporation-tax/returns/{id}/review-pointsRaise a review point - POST
/api/v1/corporation-tax/returns/{id}/review-points/{pointId}/clearClear a review point - POST
/api/v1/corporation-tax/returns/{id}/approveApprove a return - POST
/api/v1/corporation-tax/returns/{id}/reopenReopen a return - POST
/api/v1/corporation-tax/returns/{id}/amendStart an amended return - POST
/api/v1/corporation-tax/returns/{id}/filed-elsewhereRecord a return as filed outside Tolvi - POST
/api/v1/corporation-tax/returns/{id}/client-confirmationRecord the client’s confirmation - POST
/api/v1/corporation-tax/returns/{id}/submitFile with HMRC - POST
/api/v1/corporation-tax/returns/{id}/submissions/{submissionId}/pollAsk HMRC for its answer - GET
/api/v1/corporation-tax/returns/{id}/downloads/ct600.pdfDownload the CT600 - GET
/api/v1/corporation-tax/returns/{id}/downloads/computation.pdfDownload the computation - GET
/api/v1/corporation-tax/returns/{id}/downloads/accounts.xhtmlDownload the iXBRL accounts - GET
/api/v1/corporation-tax/returns/{id}/downloads/computation.xhtmlDownload the iXBRL computation - GET
/api/v1/corporation-tax/returns/{id}/downloads/ct600.xmlPreview the CT600 XML - GET
/api/v1/corporation-tax/agent-accountsList HMRC accounts - POST
/api/v1/corporation-tax/agent-accountsAdd an HMRC account - DELETE
/api/v1/corporation-tax/agent-accounts/{id}Remove an HMRC account - PUT
/api/v1/corporation-tax/agent-accounts/{id}/credentialsSave the HMRC sign-in - DELETE
/api/v1/corporation-tax/agent-accounts/{id}/credentialsDelete the saved sign-in
Self Assessment 48 operations
- GET
/api/v1/self-assessment/returnsList returns - POST
/api/v1/self-assessment/returnsStart a return - GET
/api/v1/self-assessment/returns/{id}Get a return - PATCH
/api/v1/self-assessment/returns/{id}Change a return - GET
/api/v1/self-assessment/returns/{id}/planGet what a return needs - PUT
/api/v1/self-assessment/returns/{id}/planAnswer what a return needs - GET
/api/v1/self-assessment/returns/{id}/pdfDownload the full return - GET
/api/v1/self-assessment/returns/{id}/sa302Download the SA302 - PUT
/api/v1/self-assessment/returns/{id}/partnersSet the partners on an SA800 - POST
/api/v1/self-assessment/returns/{id}/r185Download an R185 - POST
/api/v1/self-assessment/returns/{id}/import/working-papersBring in section T - GET
/api/v1/self-assessment/returns/{id}/hmrc-dataSee what HMRC holds - POST
/api/v1/self-assessment/returns/{id}/hmrc-data/refreshAsk HMRC what it holds - POST
/api/v1/self-assessment/returns/{id}/hmrc-data/applyPut HMRC’s figures on the return - POST
/api/v1/self-assessment/returns/{id}/send-for-reviewSend for review - POST
/api/v1/self-assessment/returns/{id}/return-to-draftReturn to draft - POST
/api/v1/self-assessment/returns/{id}/review-pointsRaise a review point - POST
/api/v1/self-assessment/returns/{id}/review-points/{pointId}/clearClear a review point - POST
/api/v1/self-assessment/returns/{id}/approveApprove a return - POST
/api/v1/self-assessment/returns/{id}/client-approvalRecord the client’s approval - POST
/api/v1/self-assessment/returns/{id}/submitFile with HMRC - POST
/api/v1/self-assessment/returns/{id}/submissions/{submissionId}/pollAsk HMRC for its answer - GET
/api/v1/self-assessment/returns/{id}/aiGet AI Mode on a return - POST
/api/v1/self-assessment/returns/{id}/ai/messagesTell or ask AI Mode - POST
/api/v1/self-assessment/returns/{id}/ai/completeHave AI Mode fill the boxes - POST
/api/v1/self-assessment/returns/{id}/ai/confirmConfirm figures AI filled - POST
/api/v1/self-assessment/returns/{id}/documentsAdd a document for AI Mode - POST
/api/v1/self-assessment/returns/{id}/documents/{documentId}/completeFinish uploading a document - POST
/api/v1/self-assessment/returns/{id}/documents/{documentId}/readHave AI Mode read a document - GET
/api/v1/self-assessment/returns/{id}/documents/{documentId}/downloadGet a link to a document - DELETE
/api/v1/self-assessment/returns/{id}/documents/{documentId}Remove a document - GET
/api/v1/self-assessment/agent-accountsList HMRC accounts - POST
/api/v1/self-assessment/agent-accountsAdd an HMRC account - PATCH
/api/v1/self-assessment/agent-accounts/{id}Rename an HMRC account - DELETE
/api/v1/self-assessment/agent-accounts/{id}Remove an HMRC account - PUT
/api/v1/self-assessment/agent-accounts/{id}/credentialsSave the HMRC sign-in - DELETE
/api/v1/self-assessment/agent-accounts/{id}/credentialsDelete the saved sign-in - POST
/api/v1/self-assessment/agent-accounts/{id}/authorizeConnect to HMRC - POST
/api/v1/self-assessment/agent-accounts/callbackFinish connecting to HMRC - DELETE
/api/v1/self-assessment/agent-accounts/{id}/connectionDisconnect from HMRC - POST
/api/v1/self-assessment/informal-estateWork out an informal estate computation - POST
/api/v1/self-assessment/informal-estate/pdfDownload an informal estate computation - POST
/api/v1/self-assessment/trust-accountsWork out a trust accounts pack - POST
/api/v1/self-assessment/trust-accounts/pdfDownload a trust accounts pack - POST
/api/v1/self-assessment/r40Work out an R40 schedule - POST
/api/v1/self-assessment/r40/pdfDownload an R40 schedule - GET
/api/v1/self-assessment/trust-registrations/{clientId}A trust’s registration and what’s due - PUT
/api/v1/self-assessment/trust-registrations/{clientId}Record a trust’s registration
Filing queue 5 operations
Practice VAT 7 operations
- GET
/api/v1/practice-vat/returnsList clients’ VAT returns - POST
/api/v1/practice-vat/returnsPrepare a client’s VAT return - POST
/api/v1/practice-vat/returns/read-sheetRead a bridging sheet - GET
/api/v1/practice-vat/returns/{id}A client’s VAT return - POST
/api/v1/practice-vat/returns/{id}/approveApprove - POST
/api/v1/practice-vat/returns/{id}/client-approvalRecord the client’s approval - POST
/api/v1/practice-vat/returns/{id}/submitFile with HMRC
Making Tax Digital for Income Tax 12 operations
- GET
/api/v1/mtd-income-tax/sourcesList income sources - POST
/api/v1/mtd-income-tax/sourcesAdd an income source - GET
/api/v1/mtd-income-tax/sources/{id}/obligationsThe year’s four updates - POST
/api/v1/mtd-income-tax/sources/{id}/read-sheetRead a spreadsheet - PUT
/api/v1/mtd-income-tax/sources/{id}/updatesSave a cumulative update - POST
/api/v1/mtd-income-tax/updates/{id}/approveApprove an update - POST
/api/v1/mtd-income-tax/updates/{id}/submitSend an update - GET
/api/v1/mtd-income-tax/declarationsWhere a final declaration has got to - POST
/api/v1/mtd-income-tax/declarations/calculateAsk for the calculation - POST
/api/v1/mtd-income-tax/declarations/reviewMark the calculation reviewed - POST
/api/v1/mtd-income-tax/declarations/client-approvalRecord the client’s approval - POST
/api/v1/mtd-income-tax/declarations/submitSubmit the final declaration
Work 8 operations
- GET
/api/v1/workList the work queue - GET
/api/v1/work/countsCount each saved view, with the KPI cards - GET
/api/v1/work/groupsCount a view grouped by status, deadline day or whose turn it is - POST
/api/v1/work/startStart engagements (one or in bulk) - POST
/api/v1/work/filedRecord the dates accounts were filed - GET
/api/v1/work/peopleList the firm’s people, for filters and assignment - POST
/api/v1/work/assignAssign engagements in bulk - GET
/api/v1/work/{id}Get one engagement with its workflow timeline
Invitations 7 operations
- GET
/api/v1/invitationsList the firm’s invitations - POST
/api/v1/invitationsInvite someone to the firm - POST
/api/v1/invitations/{id}/revokeRevoke a pending invitation - POST
/api/v1/invitations/acceptAccept an invitation - POST
/api/v1/invitations/previewPreview an invitation - POST
/api/v1/invitations/{id}/accept-for-meAccept one of your own pending invitations - GET
/api/v1/me/pending-invitationsList invitations waiting for you
Sign-up 1 operation
Credentials 4 operations
Audit 1 operation
Engagements 27 operations
- POST
/api/v1/engagementsStart an engagement for a client - POST
/api/v1/engagements/{id}/cancelCancel an engagement - GET
/api/v1/engagements/{id}Get an engagement overview - GET
/api/v1/engagements/{id}/sectionsList the engagement’s sections and their statuses - GET
/api/v1/engagements/{id}/sections/{code}Get a section: checklist, issues, sign-off, review points, evidence and next step - GET
/api/v1/engagements/{id}/sections/{code}/lead-scheduleGet a lead schedule - GET
/api/v1/engagements/{id}/sections/{code}/reconciliationsList a section’s reconciliations (F bank, H VAT, I payroll) - GET
/api/v1/engagements/{id}/next-stepsGet your next step on the engagement and each section - PUT
/api/v1/engagements/{id}/accounts/{code}/noteWrite or change a variance note - DELETE
/api/v1/engagements/{id}/accounts/{code}/noteRemove your variance note - PUT
/api/v1/engagements/{id}/accounts/{code}/tickmarkSet a tickmark - DELETE
/api/v1/engagements/{id}/accounts/{code}/tickmarkRemove your tickmark - PUT
/api/v1/engagements/{id}/reconciliations/{code}Set a reconciliation: source balance, reconciling items and note - PATCH
/api/v1/engagements/{id}/checklist/{itemId}Mark a checklist step done or N/A, or add a note - POST
/api/v1/engagements/{id}/evidenceAttach evidence - POST
/api/v1/engagements/{id}/evidence/{evidenceId}/confirmConfirm an evidence upload - GET
/api/v1/engagements/{id}/evidence/{evidenceId}Get an evidence file’s status - DELETE
/api/v1/engagements/{id}/evidence/{evidenceId}Remove evidence you attached - POST
/api/v1/engagements/{id}/evidence/{evidenceId}/uploadPresign an evidence upload again - GET
/api/v1/engagements/{id}/evidence/{evidenceId}/downloadGet a short-lived download URL for evidence - GET
/api/v1/engagements/{id}/roll-forwardGet what was brought forward from the prior year - POST
/api/v1/engagements/{id}/roll-forwardRe-roll from prior year - GET
/api/v1/engagements/{id}/tb/pullGet where the trial balance would be pulled from - POST
/api/v1/engagements/{id}/tb/pullPull the trial balance from the bookkeeping software - POST
/api/v1/engagements/{id}/tb/pull/previewPreview pulling the trial balance from the bookkeeping software - POST
/api/v1/engagements/{id}/books/post-back/previewPreview sending an engagement’s journals to the client’s Tolvi Books - POST
/api/v1/engagements/{id}/books/post-backSend an engagement’s journals to the client’s Tolvi Books and lock the year
Trial balance 6 operations
- POST
/api/v1/engagements/{id}/tb/previewPreview a trial balance import - GET
/api/v1/engagements/{id}/tb/versionsList trial balance versions, newest first - POST
/api/v1/engagements/{id}/tb/versionsImport a trial balance (CSV or JSON) - GET
/api/v1/engagements/{id}/tbGet the final trial balance - GET
/api/v1/engagements/{id}/mappingsGet account mappings - PUT
/api/v1/engagements/{id}/mappingsSet account mappings
Journals 10 operations
- GET
/api/v1/engagements/{id}/journalsList journals - POST
/api/v1/engagements/{id}/journalsCreate a journal (draft by default) - POST
/api/v1/engagements/{id}/journals/impactPreview what a journal change would do - POST
/api/v1/engagements/{id}/journals/{journalId}/postPost a draft journal - POST
/api/v1/engagements/{id}/journals/{journalId}/unpostUnpost a journal - DELETE
/api/v1/engagements/{id}/journals/{journalId}Delete a journal - GET
/api/v1/engagements/{id}/journal-accountsList journal-only accounts - POST
/api/v1/engagements/{id}/journal-accountsAdd journal-only accounts - DELETE
/api/v1/engagements/{id}/journal-accounts/{code}Remove a journal-only account - GET
/api/v1/engagements/{id}/accountsList the accounts to choose from
Tax 6 operations
- GET
/api/v1/engagements/{id}/taxGet the corporation tax computation - PUT
/api/v1/engagements/{id}/tax/inputsSet tax inputs (associated companies, other adjustments) - POST
/api/v1/engagements/{id}/tax/journals/previewPreview the tax or deferred tax journal - POST
/api/v1/engagements/{id}/tax/journalsPost the tax or deferred tax journal - GET
/api/v1/engagements/{id}/self-assessmentGet the self assessment computation - PUT
/api/v1/engagements/{id}/self-assessment/inputsSet the self assessment inputs
Fixed assets 15 operations
- GET
/api/v1/engagements/{id}/fixed-assetsGet the fixed asset register - PUT
/api/v1/engagements/{id}/fixed-assets/settingsSet the depreciation part-year policy and the tax pools brought forward - POST
/api/v1/engagements/{id}/fixed-assets/classesAdd an asset class - PATCH
/api/v1/engagements/{id}/fixed-assets/classes/{classId}Change an asset class - DELETE
/api/v1/engagements/{id}/fixed-assets/classes/{classId}Delete an empty asset class - POST
/api/v1/engagements/{id}/fixed-assets/assetsAdd an asset - PATCH
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}Change an asset - DELETE
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}Delete an asset from the register - POST
/api/v1/engagements/{id}/fixed-assets/assets/previewPreview adding an asset - POST
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}/previewPreview changing an asset - POST
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}/disposal/previewPreview a disposal - PUT
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}/disposalRecord the disposal of an asset - DELETE
/api/v1/engagements/{id}/fixed-assets/assets/{assetId}/disposalRemove a disposal (the asset is held again) - POST
/api/v1/engagements/{id}/fixed-assets/journal/previewPreview the fixed asset journal - POST
/api/v1/engagements/{id}/fixed-assets/journalPost the fixed asset journal
Review points 7 operations
- GET
/api/v1/engagements/{id}/review-pointsList review points - POST
/api/v1/engagements/{id}/review-pointsRaise a review point - GET
/api/v1/engagements/{id}/review-points/{pointId}Get a review point with its thread - POST
/api/v1/engagements/{id}/review-points/{pointId}/commentsComment on a review point - POST
/api/v1/engagements/{id}/review-points/{pointId}/answerAnswer a review point - POST
/api/v1/engagements/{id}/review-points/{pointId}/clearClear a review point - POST
/api/v1/engagements/{id}/review-points/{pointId}/reopenReopen a review point
Workflow 7 operations
- POST
/api/v1/engagements/{id}/sections/{code}/signSign a section off at its current stage - POST
/api/v1/engagements/{id}/sections/{code}/unsignRemove your own sign-off from a section - GET
/api/v1/engagements/{id}/workflowGet the engagement workflow and its event history - POST
/api/v1/engagements/{id}/workflow/submitSubmit the engagement for review - POST
/api/v1/engagements/{id}/workflow/approveApprove the engagement at its current stage - POST
/api/v1/engagements/{id}/workflow/returnReturn the engagement to an earlier stage - POST
/api/v1/engagements/{id}/workflow/reopenReopen an approved engagement whose content changed
Notifications 7 operations
- GET
/api/v1/notificationsList your notifications, newest first - POST
/api/v1/notifications/{notificationId}/readMark a notification read - GET
/api/v1/email-preferencesGet your email preferences - PUT
/api/v1/email-preferencesChange your email preferences - GET
/api/v1/email/preferencesGet email preferences from an email link - PUT
/api/v1/email/preferencesChange email preferences from an email link - POST
/api/v1/email/unsubscribeOne-click unsubscribe (RFC 8058)
Settings 24 operations
- GET
/api/v1/settings/mapping-rulesGet the firm’s mapping rules, in order - PUT
/api/v1/settings/mapping-rulesReplace the firm’s mapping rules - GET
/api/v1/settings/checklistsGet the firm’s checklist template for every section - PUT
/api/v1/settings/checklists/{code}Set the firm’s checklist for a section - GET
/api/v1/settingsGet the firm’s settings - PATCH
/api/v1/settings/firmUpdate the firm’s name, tagline and offices - PUT
/api/v1/settings/thresholdsSet the review thresholds new engagements use - PUT
/api/v1/settings/approvalsSet who approves accounts and returns - PUT
/api/v1/settings/remindersSet deadline reminder days - PUT
/api/v1/settings/default-workflowsSet the default workflow for each entity type - PUT
/api/v1/settings/notificationsSet the firm’s notification channels - PUT
/api/v1/settings/syncSet sync settings - PUT
/api/v1/settings/emailSet when digests and deadline reminders are emailed - PUT
/api/v1/settings/securitySet security settings - PUT
/api/v1/settings/capacitySet capacity by role - PUT
/api/v1/settings/aiSet Tolvi AI controls - GET
/api/v1/settings/onboardingGet onboarding progress - POST
/api/v1/settings/onboardingComplete or skip onboarding - GET
/api/v1/settings/onboarding/progressGet first-run setup progress - PUT
/api/v1/settings/onboarding/progressSave first-run setup progress - GET
/api/v1/settings/workflowsList workflow templates (presets and the firm’s own) - PUT
/api/v1/settings/workflowsReplace the firm’s workflow templates - GET
/api/v1/membersList the firm’s people with their roles, capacity and open work - DELETE
/api/v1/members/{userId}Remove someone from the firm
Integrations 21 operations
- GET
/api/v1/integrations/providersList bookkeeping providers - POST
/api/v1/integrations/callbackFinish connecting a client’s books - POST
/api/v1/integrations/practice/authorizeStart importing clients from Xero - POST
/api/v1/integrations/practice/callbackFinish importing clients from Xero - GET
/api/v1/integrations/practice/grantsList practice authorisations - GET
/api/v1/integrations/practice/grants/{grantId}/organisationsList the organisations to import - POST
/api/v1/integrations/practice/grants/{grantId}/importImport clients from Xero - DELETE
/api/v1/integrations/practice/grants/{grantId}Remove a practice authorisation - GET
/api/v1/clients/{clientId}/connectionGet a client’s bookkeeping connection - DELETE
/api/v1/clients/{clientId}/connectionDisconnect a client’s books - POST
/api/v1/clients/{clientId}/connection/authorizeStart connecting a client’s books - PUT
/api/v1/clients/{clientId}/connection/organisationChoose the client’s organisation - GET
/api/v1/clients/{clientId}/chart-of-accountsGet a client’s chart of accounts - PUT
/api/v1/clients/{clientId}/chart-of-accountsImport a client’s chart of accounts from a CSV - POST
/api/v1/clients/{clientId}/chart-of-accounts/refreshRead a client’s chart of accounts again - GET
/api/v1/clients/{clientId}/books-linkGet a client’s link to Tolvi Books - PUT
/api/v1/clients/{clientId}/books-linkLink a client to a business’s Tolvi Books - DELETE
/api/v1/clients/{clientId}/books-linkUnlink a client from Tolvi Books - GET
/api/v1/clients/{clientId}/books-link/candidatesList businesses’ books this client could be linked to - PUT
/api/v1/clients/{clientId}/books-link/sourceChoose which source a client’s engagements use - POST
/api/v1/clients/{clientId}/books-link/invitationInvite a client’s business to Tolvi Books
Sync health 9 operations
- GET
/api/v1/syncSync health overview - GET
/api/v1/sync/engagementsList engagements for Sync health - POST
/api/v1/sync/runsRun the sign-off check now - POST
/api/v1/sync/remindersRemind people to reconnect bookkeeping - GET
/api/v1/sync/runs/{id}Get a sign-off check run - GET
/api/v1/engagements/{id}/sync-checkGet an engagement’s sign-off check - POST
/api/v1/engagements/{id}/sync-check/acceptAccept and re-sync - POST
/api/v1/engagements/{id}/sync-check/acknowledgeAcknowledge a change without re-syncing - POST
/api/v1/engagements/{id}/sync-check/post-filingRecord a post-filing change
Working paper file 4 operations
- GET
/api/v1/engagements/{id}/exportsList the engagement’s working paper file exports, newest first - POST
/api/v1/engagements/{id}/exportsExport the working paper file - GET
/api/v1/engagements/{id}/exports/{exportId}Get one export (poll this while it renders) - GET
/api/v1/engagements/{id}/exports/{exportId}/downloadGet a short-lived download URL for a ready export
Tolvi AI 9 operations
- GET
/api/v1/ai/balanceGet the firm’s token balance, expiry and this month’s use - GET
/api/v1/ai/usageToken use by month, person, feature, engagement or model, with recent ledger entries - GET
/api/v1/ai/packsList the token packs and prices (net, VAT, gross in pence) - POST
/api/v1/ai/checkoutBuy a token pack (Stripe Checkout) - GET
/api/v1/ai/suggestionsList recent AI suggestions - GET
/api/v1/ai/suggestions/{id}Get an AI suggestion - POST
/api/v1/ai/suggestions/{id}/acceptAccept an AI suggestion - POST
/api/v1/ai/suggestions/{id}/discardDiscard an AI suggestion - POST
/api/v1/ai/{feature}Run a Tolvi AI feature
Billing 21 operations
- GET
/api/v1/billing/accountGet the firm’s billing account, plan and this period’s engagements - GET
/api/v1/billing/planGet the per-engagement tiers the plans are priced from - GET
/api/v1/billing/plansList the plans with monthly and annual prices, allowances, AI tokens, overage rates and entitlements - GET
/api/v1/billing/subscriptionGet the subscription: plan, interval, allowance used this plan year, AI tokens this month, next invoice, entitlements - POST
/api/v1/billing/subscriptionChoose or change plan - POST
/api/v1/billing/subscription/previewPreview a plan change - GET
/api/v1/billing/meetingsGet the Meetings tiers, the firm’s Meetings plan and this month’s minutes - PUT
/api/v1/billing/meetingsChoose, change or cancel the Meetings plan - POST
/api/v1/billing/subscription/cancelCancel the subscription - POST
/api/v1/billing/subscription/resumeKeep a subscription that is set to cancel - GET
/api/v1/billing/usageList billable engagements (started and credited) in a period (default: this month) - GET
/api/v1/billing/invoicesList invoices (Stripe-hosted) - POST
/api/v1/billing/setupSet billing details (contact, VAT number) and create the Stripe customer - POST
/api/v1/billing/portalOpen the Stripe Customer Portal (payment method, billing details, invoices) - GET
/api/v1/billing/start-statusCheck whether new engagements can start - GET
/api/v1/books/billingGet the business’s Tolvi Books plan and the tiers - PUT
/api/v1/books/billing/planChoose, change or cancel the business’s Tolvi Books plan - POST
/api/v1/books/billing/portalOpen the Stripe Customer Portal for the business - GET
/api/v1/practice/books/billingList the firm’s Tolvi Books clients and whose Books it pays for - POST
/api/v1/practice/books/billing/clients/{linkId}Pay for a client’s Tolvi Books - POST
/api/v1/practice/books/billing/clients/{linkId}/stopStop paying for a client’s Tolvi Books
Webhooks 11 operations
- GET
/api/v1/webhooks/event-typesList the webhook event types - GET
/api/v1/webhooksList webhook subscriptions - POST
/api/v1/webhooksCreate a webhook subscription - GET
/api/v1/webhooks/{id}Get a webhook subscription - PATCH
/api/v1/webhooks/{id}Update a webhook subscription - DELETE
/api/v1/webhooks/{id}Delete a webhook subscription - POST
/api/v1/webhooks/testSend a test event to an endpoint - POST
/api/v1/webhooks/{id}/rotate-secretRotate the signing secret - GET
/api/v1/webhooks/{id}/deliveriesList a subscription’s deliveries, newest first - GET
/api/v1/webhooks/{id}/deliveries/{deliveryId}Get a delivery with its payload and every attempt - POST
/api/v1/webhooks/{id}/deliveries/{deliveryId}/replayReplay a delivery
Getting started 2 operations
Suite 9 operations
- GET
/api/v1/searchSearch clients, engagements, sections, meetings and people - GET
/api/v1/productsList the products in the Tolvi suite - GET
/api/v1/me/productsList the products you can open in this firm - GET
/api/v1/firm/productsList the products your firm has - POST
/api/v1/firm/products/{key}Start a trial of a product - PATCH
/api/v1/firm/products/{key}Change who can use a product - GET
/api/v1/product-accessGet the people × products view - PUT
/api/v1/product-access/{key}/members/{userId}Give someone access to a product - DELETE
/api/v1/product-access/{key}/members/{userId}Take away someone’s access to a product
Meetings 12 operations
- GET
/api/v1/meetingsList meetings - POST
/api/v1/meetingsSend a note-taker to a meeting - GET
/api/v1/meetings/usageGet this month’s recorded minutes against the firm’s allowance - GET
/api/v1/meetings/{id}Get a meeting with its transcript, summary and actions - PATCH
/api/v1/meetings/{id}Rename a meeting or file it against a client - POST
/api/v1/meetings/{id}/follow-upsTurn next steps into follow-ups - POST
/api/v1/meetings/{id}/cancelStop the note-taker - GET
/api/v1/me/calendarGet your connected calendar and its upcoming meetings - DELETE
/api/v1/me/calendarDisconnect your calendar - POST
/api/v1/me/calendar/connectStart connecting your Outlook calendar - PUT
/api/v1/me/calendar/events/{eventId}/notetakerSend a note-taker to a calendar meeting - DELETE
/api/v1/me/calendar/events/{eventId}/notetakerStop sending a note-taker to a calendar meeting
Books 46 operations
- POST
/api/v1/books/signupSign a business up to Tolvi Books - GET
/api/v1/books/businessGet the business’s profile - PATCH
/api/v1/books/businessChange the business’s details - GET
/api/v1/books/accountantsList the business’s accountants - POST
/api/v1/books/accountants/invitationsInvite an accountant - PATCH
/api/v1/books/accountants/{linkId}Change an accountant’s access - POST
/api/v1/books/accountants/{linkId}/endEnd an accountant’s access - GET
/api/v1/books/accountants/requestsList practices’ requests for access - POST
/api/v1/books/accountants/requests/{linkId}/approveApprove a practice’s request - POST
/api/v1/books/accountants/requests/{linkId}/declineDecline a practice’s request - GET
/api/v1/practice/books/linksList the firm’s links to businesses’ books - POST
/api/v1/practice/books/requestsAsk a business for access to its books - POST
/api/v1/practice/books/link-invitations/previewSee what a business’s invitation offers - POST
/api/v1/practice/books/link-invitations/acceptAccept a business’s invitation - POST
/api/v1/practice/books/links/{linkId}/endEnd the firm’s access to a business’s books - POST
/api/v1/practice/books/businessesSet Tolvi Books up for a client - POST
/api/v1/practice/books/businesses/{businessId}/owner-invitationInvite the owner of a business the firm set up - GET
/api/v1/practice/books/clientsList clients’ books - GET
/api/v1/books/accountsGet the chart of accounts - POST
/api/v1/books/accountsAdd an account - PATCH
/api/v1/books/accounts/{accountId}Rename or recategorise an account - DELETE
/api/v1/books/accounts/{accountId}Delete an unused account - POST
/api/v1/books/accounts/{accountId}/archiveArchive an account - POST
/api/v1/books/accounts/{accountId}/restoreRestore an archived account - GET
/api/v1/books/accounts/{accountId}/ledgerGet one account’s ledger - GET
/api/v1/books/entriesList posted entries - GET
/api/v1/books/entries/{entryId}Get a posted entry - POST
/api/v1/books/entries/{entryId}/reverseReverse an entry - GET
/api/v1/books/journalsList journals - POST
/api/v1/books/journalsStart a journal - GET
/api/v1/books/journals/{journalId}Get a journal - PATCH
/api/v1/books/journals/{journalId}Change a draft journal - DELETE
/api/v1/books/journals/{journalId}Discard a draft journal - POST
/api/v1/books/journals/{journalId}/postPost a journal - POST
/api/v1/books/journals/{journalId}/voidVoid a posted journal - POST
/api/v1/books/journals/{journalId}/amendAmend a posted journal - GET
/api/v1/books/trial-balanceGet the trial balance at a date - GET
/api/v1/books/ledger/changesList changes since a ledger point - GET
/api/v1/books/ledger/integrityCheck the ledger’s hash chain - GET
/api/v1/books/locksGet the period locks - POST
/api/v1/books/locksLock or unlock the books - GET
/api/v1/books/opening-balancesGet the opening balances in force - POST
/api/v1/books/opening-balancesPost opening balances - POST
/api/v1/books/opening-balances/previewPreview opening balances - GET
/api/v1/books/getting-startedGet the getting-started checklist - PUT
/api/v1/books/getting-startedAnswer or hide the getting-started checklist
Books: purchases and receipts 28 operations
- GET
/api/v1/books/receiptsList receipts - POST
/api/v1/books/receiptsAdd a receipt - GET
/api/v1/books/receipts/email-addressGet the address for emailing receipts in - POST
/api/v1/books/receipts/email-addressCreate or replace the address for emailing receipts in - GET
/api/v1/books/receipts/{id}Get a receipt - DELETE
/api/v1/books/receipts/{id}Delete a receipt for good - GET
/api/v1/books/receipts/{id}/imageGet a short-lived link to a receipt’s image - POST
/api/v1/books/receipts/{id}/uploadPresign a receipt upload again - POST
/api/v1/books/receipts/{id}/upload-completeFinish a receipt upload - POST
/api/v1/books/receipts/{id}/read-againRead a receipt again - POST
/api/v1/books/receipts/{id}/confirmConfirm a receipt - POST
/api/v1/books/receipts/{id}/discardDiscard a receipt - GET
/api/v1/books/purchases/summaryWhat the business owes - GET
/api/v1/books/suppliersList suppliers - POST
/api/v1/books/suppliersAdd a supplier - GET
/api/v1/books/suppliers/{id}Get a supplier - PATCH
/api/v1/books/suppliers/{id}Change or archive a supplier - GET
/api/v1/books/billsList bills - POST
/api/v1/books/billsStart or add a bill - GET
/api/v1/books/bills/from-receipt/{receiptId}A bill as Tolvi AI read it - GET
/api/v1/books/bills/{id}Get a bill - PATCH
/api/v1/books/bills/{id}Change a draft bill - DELETE
/api/v1/books/bills/{id}Delete a draft bill - POST
/api/v1/books/bills/{id}/postAdd a draft bill to the books - POST
/api/v1/books/bills/{id}/creditRecord a supplier credit note - POST
/api/v1/books/bills/{id}/voidCancel a bill - POST
/api/v1/books/bills/{id}/paymentsRecord a payment made - POST
/api/v1/books/bills/{id}/payments/{paymentId}/undoUndo a payment recorded by hand
Books: VAT and reports 30 operations
- GET
/api/v1/books/reports/profit-and-lossGet the profit and loss - GET
/api/v1/books/reports/balance-sheetGet the balance sheet - GET
/api/v1/books/reports/aged-debtorsGet aged debtors (who owes the business) - GET
/api/v1/books/reports/aged-creditorsGet aged creditors (whom the business owes) - GET
/api/v1/books/reports/vatGet the VAT owed per the books - GET
/api/v1/books/reports/cash-flowGet cash flow by month - GET
/api/v1/books/reports/sa103Get SA103 totals (sole traders) - GET
/api/v1/books/reports/drill-downList the entries behind a report figure - GET
/api/v1/books/reports/tax-estimateEstimate the tax to set aside - GET
/api/v1/books/reports/{report}/exportDownload a report as CSV or PDF - GET
/api/v1/books/homeGet the home screen figures - GET
/api/v1/books/tax-details/{taxYear}Get the extra information for the tax estimate - PUT
/api/v1/books/tax-details/{taxYear}Save the extra information for the tax estimate - GET
/api/v1/books/vat/summaryGet VAT at a glance - GET
/api/v1/books/vat/settingsGet the VAT settings - PUT
/api/v1/books/vat/settingsChange the VAT settings - GET
/api/v1/books/vat/obligationsList the VAT periods - GET
/api/v1/books/vat/returns/{periodKey}Get a VAT return - GET
/api/v1/books/vat/returns/{periodKey}/linesList the lines behind a VAT return - POST
/api/v1/books/vat/returns/{periodKey}/checkCheck a VAT return before filing - POST
/api/v1/books/vat/returns/{periodKey}/error-notificationRecord telling HMRC about corrections over the limit - POST
/api/v1/books/vat/returns/{periodKey}/submitFile a VAT return with HMRC - GET
/api/v1/books/vat/submissionsList VAT returns sent to HMRC - GET
/api/v1/books/vat/paymentsGet VAT owed and paid at HMRC - GET
/api/v1/books/vat/hmrcGet the HMRC connection - DELETE
/api/v1/books/vat/hmrcDisconnect from HMRC - POST
/api/v1/books/vat/hmrc/authorizeStart connecting to HMRC - POST
/api/v1/books/vat/hmrc/callbackFinish connecting to HMRC - POST
/api/v1/books/vat/hmrc/obligations/refreshGet the VAT periods from HMRC - POST
/api/v1/books/vat/hmrc/payments/refreshGet VAT owed and paid from HMRC
Books: bank and inbox 34 operations
- GET
/api/v1/books/bank/providersCan a bank be connected? - GET
/api/v1/books/bank/accountsList bank accounts - POST
/api/v1/books/bank/accountsAdd a bank account kept by statements - GET
/api/v1/books/bank/accounts/{id}Get a bank account - PATCH
/api/v1/books/bank/accounts/{id}Rename a bank account or record its statement balance - GET
/api/v1/books/bank/accounts/{id}/reconciliationReconcile a bank account - POST
/api/v1/books/bank/accounts/{id}/imports/previewPreview a statement file - POST
/api/v1/books/bank/accounts/{id}/importsImport a statement file - POST
/api/v1/books/bank/connectionsConnect a bank - POST
/api/v1/books/bank/connections/callbackFinish connecting a bank - GET
/api/v1/books/bank/connections/{id}/accountsThe accounts a bank shared - POST
/api/v1/books/bank/connections/{id}/accountsAdd accounts from a connected bank - POST
/api/v1/books/bank/connections/{id}/reconfirmKeep sharing for another 90 days - POST
/api/v1/books/bank/connections/{id}/disconnectDisconnect a bank - POST
/api/v1/books/bank/connections/{id}/syncRead the bank now - GET
/api/v1/books/bank/linesList bank lines - POST
/api/v1/books/bank/lines/confirmConfirm a group of lines - GET
/api/v1/books/bank/lines/{id}Get a bank line - POST
/api/v1/books/bank/lines/{id}/explainExplain a bank line - POST
/api/v1/books/bank/lines/{id}/undoUndo a line’s explanation - POST
/api/v1/books/bank/lines/{id}/excludeSet a line aside - POST
/api/v1/books/bank/lines/{id}/includeBring back a line set aside - GET
/api/v1/books/bank/rulesList rules - POST
/api/v1/books/bank/rulesAdd a rule - POST
/api/v1/books/bank/rules/previewPreview a rule - PUT
/api/v1/books/bank/rules/{id}Change a rule - POST
/api/v1/books/bank/rules/{id}/removeRemove a rule - GET
/api/v1/books/inboxGet the inbox - POST
/api/v1/books/inbox/confirmConfirm lines from the inbox - POST
/api/v1/books/inbox/undoUndo lines confirmed from the inbox - GET
/api/v1/books/inbox/lines/{id}/whyWhy Tolvi suggested this - GET
/api/v1/books/inbox/activityWho confirmed what - POST
/api/v1/books/inbox/rule-offers/acceptAccept a rule offer (“Yes, always”) - POST
/api/v1/books/inbox/rule-offers/declineDecline a rule offer
Books: sales 41 operations
- GET
/api/v1/books/sales/summaryWho owes the business money - GET
/api/v1/books/sales/settingsGet the invoice settings - PATCH
/api/v1/books/sales/settingsChange the invoice settings - GET
/api/v1/books/sales/settings/logoGet a short-lived link to the logo - POST
/api/v1/books/sales/settings/logoStart uploading a logo - DELETE
/api/v1/books/sales/settings/logoTake the logo off invoices - POST
/api/v1/books/sales/settings/logo/completeFinish uploading a logo - GET
/api/v1/books/customers/{id}/statementGet a customer’s statement - GET
/api/v1/books/customers/{id}/statement/pdfGet a customer’s statement as a PDF - POST
/api/v1/books/customers/{id}/statement/sendEmail a customer their statement - GET
/api/v1/books/customersList customers - POST
/api/v1/books/customersAdd a customer - GET
/api/v1/books/customers/{id}Get a customer - PATCH
/api/v1/books/customers/{id}Change a customer - POST
/api/v1/books/customers/{id}/archiveArchive a customer - POST
/api/v1/books/customers/{id}/restoreRestore an archived customer - GET
/api/v1/books/invoicesList invoices or credit notes - POST
/api/v1/books/invoicesStart a draft invoice - POST
/api/v1/books/invoices/draft-from-sentenceDraft an invoice from a sentence (Tolvi AI) - GET
/api/v1/books/invoices/{id}Get an invoice or credit note - PATCH
/api/v1/books/invoices/{id}Change a draft - DELETE
/api/v1/books/invoices/{id}Delete a draft - POST
/api/v1/books/invoices/{id}/duplicateCopy an invoice as a new draft - POST
/api/v1/books/invoices/{id}/issueIssue an invoice or credit note - POST
/api/v1/books/invoices/{id}/credit-notesDraft a credit note for an issued invoice - POST
/api/v1/books/invoices/{id}/voidCancel an issued invoice - POST
/api/v1/books/invoices/{id}/paymentsRecord a payment received - GET
/api/v1/books/invoices/{id}/pdfGet the PDF - POST
/api/v1/books/invoices/{id}/sendEmail an issued invoice or credit note - GET
/api/v1/books/remindersList payment reminders - PATCH
/api/v1/books/reminders/{id}Edit a reminder before sending it - POST
/api/v1/books/reminders/{id}/sendApprove and send a reminder - POST
/api/v1/books/reminders/{id}/dismissDismiss a reminder - GET
/api/v1/books/recurring-invoicesList repeating invoices - POST
/api/v1/books/recurring-invoicesRepeat an invoice - GET
/api/v1/books/recurring-invoices/{id}Get a repeating invoice - PATCH
/api/v1/books/recurring-invoices/{id}Change a repeating invoice - POST
/api/v1/books/recurring-invoices/{id}/auto-sendTurn automatic sending on or off - POST
/api/v1/books/recurring-invoices/{id}/pausePause a repeating invoice - POST
/api/v1/books/recurring-invoices/{id}/resumeResume a paused repeating invoice - POST
/api/v1/books/recurring-invoices/{id}/stopStop a repeating invoice