API Reference
Documents
Upload, list, update, and delete files in a workspace document library. Large files use a chunked upload flow. Partner responses omit internal storage paths and download URLs.
Last updated 2026-06-10
Overview
The Documents API lets your integration store files in a workspace document library. Upload a file directly with multipart form data, or use the chunked upload flow for larger files. Every document is identified by a UUID returned as `id`.
Partner JSON responses omit sensitive storage fields including `password`, numeric foreign keys, `azureBlobPath`, and `fileUrl`. Use `fileName`, nested related objects (vendor, customer, person, project), and the document `id` for display. Download URLs are not returned — add a separate controlled flow if partners need file bytes.
Key concepts
Multipart upload
POST /partners/documents accepts multipart form data with a `file` field and optional text fields (`folderPath`, `vendorUuid`, `customerUuid`, `personUuid`, `projectUuid`). HMAC signing uses sha256(JSON.stringify({})) for the body hash because multer runs after signature verification.
Chunked upload
For large files, call initiate → upload chunks → complete. Track progress with the progress endpoint using the returned uploadProgressId.
UUID-only list filters
List filters use comma-separated UUID query params: `vendorUuids`, `customerUuids`, `personUuids`, `projectUuids`. Numeric ID query params are stripped by middleware.
Rate limits
Documents have separate read/write and upload/chunk rate limit tiers per client and workspace. Responses may include X-RateLimit-* and Retry-After headers.
The document object
Fields returned on document records. Related entities expose UUID `id` values only.
Attributes
iduuidDocument identifier (UUID). Use in path parameters.
fileNamestringOriginal file name.
folderPathstringFolder path within the workspace library.
mimeTypestringMIME type of the uploaded file.
fileSizeintegerFile size in bytes.
vendorobjectLinked vendor with UUID `id`, or null.
customerobjectLinked customer with UUID `id`, or null.
personobjectLinked person with UUID `id`, or null.
projectobjectLinked project with UUID `id`, or null.
createdAtdatetimeISO 8601 creation timestamp.
updatedAtdatetimeISO 8601 last update timestamp.
{
"id": "d9e0f1a2-b3c4-5678-def0-890123456789",
"fileName": "contract-acme-2026.pdf",
"folderPath": "Contracts",
"mimeType": "application/pdf",
"fileSize": 245760,
"vendor": null,
"customer": {
"id": "dfa3219e-6af8-4c53-997a-037534f63a35",
"customer": "Acme Corporation"
},
"person": null,
"project": null,
"createdAt": "2026-03-01T09:00:00.000Z",
"updatedAt": "2026-03-01T09:00:00.000Z"
}Protected paths
Deletion is blocked for documents under Period Close system roots and the Bank Statements/ folder.Password routes not exposed
Document password validate/set endpoints exist on the internal JWT /documents API only — they are not available under /partners/documents.Related
Recent changes
Budgets API and documentation parity
Added the Budgets API reference (14 endpoints), invoice send-history, and account sub-types list. Introduced an automated parity check (`npm run check:parity`) that compares documented routes against count-dev. Normalized customer path parameters to `{uuid}` and fixed the documents chunk-upload progress path.
Webhooks and Documents reference
Added full API reference groups for Webhooks and Documents, including chunked upload and signature verification guidance.
Endpoints
/partners/documentsReturns a paginated list of documents with optional UUID filters.
/partners/documents/{uuid}Returns a single document by UUID.
/partners/documentsUploads a file via multipart form data.
/partners/documents/{uuid}Updates document metadata and link fields.
/partners/documents/{uuid}Deletes the document blob and database row.
/partners/documents/chunk-upload/initiateStarts a chunked upload session for a large file.
/partners/documents/chunk-upload/chunkUploads a single chunk of a multipart upload.
/partners/documents/chunk-upload/completeFinalizes a chunked upload and creates the document record.
/partners/documents/chunk-upload/progress/{uploadProgressId}Returns progress for an in-flight chunked upload.
