Client - Documents
Manage documents associated with specific clients. Supports creating, listing, updating, and deleting client documents. Includes filtering by document type and review status. Documents uploaded by clients via the portal start with ReviewStatus=PendingReview and must be approved or rejected by an internal user. The list endpoint defaults to showing only Approved documents — use the reviewStatus filter parameter to view PendingReview or Rejected documents. Also serves a tenant-wide list of client documents across all clients, defaulting to only those sent for client approval, used by the Requests page to show outstanding document approvals.
-
GET Stream Document ContentStreams document content. Requires a valid signed token with tenant and client as query parameters. Use the optional 'disposition' parameter to contro.../clientdocument/{code}/stream
-
GET Stream External FileProxies and streams file content from an external storage provider. Requires a valid signed token with tenant and client as query parameters./external-file/{externalFileId}/stream
-
GET List Documents for ClientLists all Documents for the specified client./tenants/{tenant}/clients/{client}/clientdocument
-
POST Create Document for ClientCreates a new Document for the specified client./tenants/{tenant}/clients/{client}/clientdocument
-
GET Get Document for ClientGets a Document for the specified client./tenants/{tenant}/clients/{client}/clientdocument/{code}
-
PUT Update Document for ClientUpdates the specified Document for the specified client./tenants/{tenant}/clients/{client}/clientdocument/{code}
-
DELETE Delete Document for ClientDeletes a Document for the specified client./tenants/{tenant}/clients/{client}/clientdocument/{code}
-
GET List External FilesLists files from the client's external storage folder, enriched with metadata from the database for files tracked by Sodium. Returns 404 if the tenant.../tenants/{tenant}/clients/{client}/external-files
-
POST Create External FolderCreates a folder in the client's external storage folder. Pass `parentFolderId` to create it inside a subfolder; omit it to create at the top level of.../tenants/{tenant}/clients/{client}/external-folders
-
PUT Move External FilesMoves files into a different folder in the practice's external storage. Set `portalFolderPath` to also move the tracked documents to that folder in th.../tenants/{tenant}/clients/{client}/external-files/move
-
GET Get Client Document FolderGets the external folder reference for a client's documents. This is only relevant if an external Document Storage provider has been set for the Tenan.../tenants/{tenant}/clients/{client}/document-folder
-
PUT Set Client Document FolderUpdates the external folder reference for a client's documents. This is only relevant if an external Document Storage provider has been set for the Te.../tenants/{tenant}/clients/{client}/document-folder
-
DELETE Unmap Client Document FolderRemoves the external folder reference for a client's documents. The folder and its files are not deleted from the external storage provider./tenants/{tenant}/clients/{client}/document-folder
-
PUT Review DocumentApprove or reject a document uploaded by a client via the portal./tenants/{tenant}/clients/{client}/clientdocument/{code}/review
-
POST Notify Client of DocumentsSends the specified recipients a single email with a secure link to each document, optionally attaching the files. Completes a linked Upload a Documen.../tenants/{tenant}/clients/{client}/clientdocument/notify
-
POST Request Client ApprovalSends one or more documents to a client for approval. The documents appear in the client portal for approval. In Batch mode they form a single approva.../tenants/{tenant}/clients/{client}/clientdocument/request-approval
-
PUT Cancel Batch Approval RequestCancels a pending batch approval request, resetting every document still awaiting the client./tenants/{tenant}/clients/{client}/clientdocument/approval-batches/{batchCode}/cancel
-
PUT Cancel Client Approval RequestCancel a pending client approval request, resetting the document to no approval status. When the document was sent alongside others, only this documen.../tenants/{tenant}/clients/{client}/clientdocument/{code}/cancel-approval
-
GET Get Portal ViewReturns documents and folders as they would appear in the client portal, grouped by PortalFolderPath. Use the portalFolderPath query param to navigate.../tenants/{tenant}/clients/{client}/clientdocument/portal-view
-
PUT Move Documents to Portal FolderChanges which client portal folder the given documents appear in. Pass an empty or omitted `portalFolderPath` to move them to the portal root. Portal .../tenants/{tenant}/clients/{client}/clientdocument/portal-folder
-
PATCH Set Documents Portal VisibilityShows or hides the given documents in the client portal. Documents already in the requested state are unaffected, and a document pending client approv.../tenants/{tenant}/clients/{client}/clientdocument/portal-visibility
-
POST Bulk Track External FilesCreates document records for files that already exist in the external storage provider. No file upload — titles are derived from the file names. Files.../tenants/{tenant}/clients/{client}/clientdocument/bulk-track-external
-
POST Bulk Delete DocumentsDeletes the given documents, including their stored files. Documents are deleted independently, so the result can contain a mix of successes and failu.../tenants/{tenant}/clients/{client}/clientdocument/bulk-delete
-
POST Create Document from TemplateGenerates a PDF from a document template using client data and custom token values, then saves it as a client document./tenants/{tenant}/clients/{client}/clientdocument/from-template
-
POST Track External FileCreates a document record for a file that already exists in the external storage provider. No file upload — just associates the external file with Sod.../tenants/{tenant}/clients/{client}/clientdocument/track-external
-
GET List Client DocumentsReturns a paged list of client documents across all clients. Defaults to only showing documents sent for client approval (ClientApprovalStatus != None.../tenants/{tenant}/clientdocuments