At a glance
26.1.0 brings one change that touches every integration and several that touch specific areas.
The one to plan for: the error catalog was rewritten. Every error type identifier is new, and the HTTP status changed on a large number of failure paths. The error body shape is unchanged, but any client that branches on error.type or on specific status codes needs to be reviewed.
Also in this release:
-
Security improvements — search and aggregation payloads are restricted, and personal data in audit logs is redacted for non-admins.
-
Template restructure — 18 share-related fields moved into a nested
shareSettingsobject. -
KYC identity matching — shares can restrict accepted document types and require the signer's identity data to match.
-
PDF/A control — new
forcePdfAflag; signed PDFs are no longer silently converted (and de-signed). -
Document title search — new analyzers make title search diacritics-insensitive with prefix matching; the
documentTitle.@en/.@arsub-fields were removed. -
Workflow preparation persistence — documents and drafts can now carry
preparationDraftandshareSettings.
1. Breaking changes
1.1 Errors and status codes
|
Change |
What changed |
What you need to do |
|---|---|---|
|
Error |
The old |
Remap every |
|
HTTP status changed on many failure paths |
Main patterns: reference-not-found |
Review status-based retry and branching logic. Several "not found" cases are now 400, and several 4xx are now 5xx. |
|
|
Both statuses can now be returned. |
Handle 410 and 422. |
|
Error messages sanitized |
Database and search-engine derived errors now return generic catalog messages ( |
Don't parse error message strings — use |
|
Bulk response items changed |
Each item gains a machine-readable |
Branch on the per-item |
|
Search backend unavailability returns |
Previously reported as |
Treat 503 as retryable, not as "re-login". |
Error body
The body shape is unchanged. details is present only for errors that carry structured information (e.g. per-field validation results):
{
"status": 400,
"type": "VALIDATION:REFERENCE_NOT_FOUND",
"message": "Some of provided groups doesnt exists.",
"requestId": "9f2c41d7a4b34e5f8c1d0e6a7b25f913",
"details": null
}
Before / after examples
1 — A referenced entity in the request body does not exist
PUT /documents/{id}/rights with an unknown group id.
|
|
26.0.0 |
26.1.0 |
|---|---|---|
|
|
|
|
|
|
|
|
The rule: the resource addressed by the URL still yields 404, but a bad reference inside the payload is now a client input error, so it returns 400. This single pattern accounts for the majority of the changed statuses.
2 — The resource addressed by the URL does not exist
GET /templates/{id} with an unknown id.
|
|
26.0.0 |
26.1.0 |
|---|---|---|
|
|
|
|
|
|
|
|
The status is unchanged, but the type string is different — a client matching on type alone still breaks.
3 — The operation conflicts with the current state
PUT /documents/{version} changing submitted files after the workflow has started.
|
|
26.0.0 |
26.1.0 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
unchanged |
4 — The caller's role is not sufficient
|
|
26.0.0 |
26.1.0 |
|---|---|---|
|
|
|
|
|
|
|
|
Namespaces let you branch on a whole class of failures — for example, everything under AUTH:* is an authentication or authorization problem, and everything under VALIDATION:* is a client-correctable input problem, regardless of the specific identifier.
1.2 Request and response changes
|
Change |
Endpoint / field |
What changed |
What you need to do |
|---|---|---|---|
|
Template entity restructured |
|
18 top-level fields ( |
Move these under |
|
Endpoints removed |
|
Removed; read state is now implicit on main-file download/export. |
Callers get 404. Documents can no longer be marked unread. |
|
Query field removed |
|
|
Remove the parameter. |
|
|
|
Requires the new right |
Have the right granted before upgrading, or |
|
Stricter checkbox / radio annotation text |
Document sign & annotate, share sign |
|
Free-form or empty text for these subtypes now returns 400. |
|
|
|
Both the request field and the response property are gone. |
Aggregation support on these seven endpoints is no longer available. |
|
|
Document/file create, convert, join |
With |
Don't assume |
|
Document title sub-fields removed |
Document search |
|
Queries targeting |
|
Enum keyword size limit |
Enum record create / update / import |
Values above 32 766 bytes are rejected with 400 naming the field (previously an opaque search-engine failure). |
Cleaner error; oversized values are no longer accepted. |
|
Registration no longer reports conflicts |
|
An existing active or suspended account returns success with no side effect instead of an error. A not-yet-activated account is refreshed in place (activation tokens issued earlier are invalidated). Per-address rate limiting applies (429 possible) and every response is delayed 0–1500 ms. |
Flows keying off "user already exists" / "not activated" errors must change. |
|
Group rights validation |
|
Unknown or unavailable groups are now rejected with 400 and a generic message ("One or more groups were not found."), instead of 404 listing the group names. Organization-wide grants are blocked when the new |
Status and error shape change; the response no longer tells you which groups failed. |
|
OAuth login resolution changed |
|
When a token is supplied but the authenticated profile e-mail differs, the token's user is discarded and a fresh login proceeds unless |
Integrations relying on "use the session token's user" must send |
|
SMS reminders can return |
|
SMS-type reminders now check the subscription's SMS capacity. |
Handle 402. |
1.3 Security improvements
|
Change |
Scope |
What changed |
What you need to do |
|---|---|---|---|
|
Aggregation and sort clauses restricted |
|
|
Previously accepted payloads now return 400. |
|
Audit-log data redacted and query-restricted |
|
|
Non-admin consumers lose those properties and queries. Use an organization-admin account where you need them. |
|
CSV export escaping |
CSV exports, reports exporter |
Cells starting with |
Downstream CSV parsers will see a leading apostrophe on those cells. |
2. New and additive
|
Area |
What's new |
|---|---|
|
Certificate of Fulfillment |
|
|
KYC identity matching |
|
|
PDF/A control |
New |
|
Workflow preparation persistence |
New optional nullable |
|
Template bulk mapping |
New optional |
|
Template share notification |
|
|
New annotation subtypes |
|
|
Localized display names |
Document definitions gain an optional |
|
Group ACLs clearable |
|
|
Subscription response additions |
|
|
New settings flags |
|
|
E-mail sub-addressing |
E-mail and username validators accept a single |
|
Signature field |
The |
3. Behaviour changes worth knowing
|
Area |
What changed |
Why it matters |
|---|---|---|
|
Read state is now implicit |
Downloading a main file, exporting to PDF or exporting a file archive marks the document as read for the caller (including share |
Share owners now receive "viewed" notifications triggered by file retrieval rather than by an explicit call. |
|
Annotation substitution |
|
Client-supplied text for those five subtypes is discarded, and renders blank where the profile value is empty. |
|
KYC result verification stricter |
Provider approval alone is no longer sufficient — document type and expected identity data are checked, returning |
Handle the new error codes, and don't re-query a finished result token. |
|
|
Now derived from the KYC verification provider, and becomes |
Consumers parsing this as a bare provider name receive a concatenated value. |
|
|
A new action share is rejected when the workflow's first step already carries a share state (409 |
Sharing after signing, and several previously permitted share/sign combinations, now fail. |
|
Share signing metering |
Share-initiated signatures no longer consume the sharer's signing-transaction quota. |
Billing-visible metering change. |
|
Share expiration notifications |
The fixed 72-hour window is replaced by a tiered rule: shares valid for 3 days or more are notified within 24 h, shorter ones within 2 h. Already-expired shares are excluded and the remaining-hours value is accurate. |
Different notification timing. |
|
Rejection notifies other recipients |
On final rejection, active VIEW shares in the same share group receive a new |
Participants learn why a workflow stopped. |
|
Reports |
Pending recipients now report |
Blank date cells for pending rows and different ordering. |
|
Clone clears signature configuration |
|
Clones use the cloner's resolved provider. |
|
Session list capped |
|
Much cheaper searches; clients counting sessions may undercount for heavy users. |
|
Download and stream errors |
Storage failures now propagate as real 5xx errors instead of a misleading 404 or a truncated/hanging download; client aborts destroy the source stream. Missing records still return 404. |
Failures are detectable instead of silent. |
|
Rate limit on e-mail-triggering endpoints |
|
New 429 responses for repeated requests to the same address. |
|
External sharing gate |
The |
Tenants that deliberately withheld the right gain external sharing after the upgrade unless the setting is turned off. |
|
Signing and preparation fixes |
Timestamp components no longer trip the non-image-signature check; annotate-only merged sub-files are certified and marked signed; the signing certificate is applied on all preparation paths; sign-data page remapping on merged documents was fixed; out-of-sync merged files now fail with a clear 409. |
Fewer spurious failures and correct placement on merged documents. |