subject_employee_ids — the employees the document is about), a route of approval
and signing steps, and a set of files (print form, signed PDF, e-signature card).
Working with documents through the Developer API means two sets of scopes:
documents:read for reading and downloading files, and documents:write for
creating, routing, sending, and signing.
Effective access is the intersection of the key’s scopes and the key owner’s permission
profile. A scope is necessary but not sufficient: you see only what the key owner’s role
sees. A single document unavailable to the key returns the same
404
DOCUMENT_NOT_FOUND as one that does not exist — the response code cannot verify
whether a hidden document exists.Lifecycle
A draft is filled in with a route (the status does not change while this happens), then launched by sending. From there the document goes through approval and/or signing and reaches completion — or is broken off by a rejection, a change request, or a revocation.Document status transitions (DocumentStatus)
status values live in the status field. Survive unfamiliar values — the set may
grow within v1.
The document object
The full object is returned byGET /documents/{document_id} — together with files and
the route. The list endpoint GET /documents returns only scalar fields (no files,
no route).
Files
Each element offiles[] is { "file_id": "…", "file_type": "…" }. Download a file by
type via GET /documents/{document_id}/download?file_type=….
Route
route describes approval and signing: { "id", "status", "active", "steps": [] }.
Each step is a step_type (STEP_TYPE_APPROVAL or STEP_TYPE_SIGNING), a rule
(STEP_RULE_ALL — all are required, STEP_RULE_ANY_ONE — one is enough), and a list of
participants[].
Route participants are described only by identifiers:
id, employee_id, key_type,
and status. The document object contains no names, IINs, or job titles — to get an
employee’s data by employee_id, read it through the
employees API with your key.Visibility in the list
GET /documents shows documents by initiator and by the key owner’s permission scope. A
document available to the key only through route participation (a participant grant)
will not appear in the list — but GET /documents/{document_id} will return it.
Next
Templates
Find a template and read its
variable_schema.Signing
Create → route → send → sign → download.
Events
The
document.* webhooks and reacting to status changes.