Each of these is real, wired, and returns a sound verdict. Each one runs over input the caller supplied, stores nothing, and stands between no one and a signature. They are genuinely useful — an operator can ask where a document type must be routed, or which condition a consent ceremony fails — and describing them as protections would be false.
Advisory · persists nothingCarve-out signing path
POST /v1/esign/signing-path
Resolves whether a document type may be signed electronically at all, and where it must go instead — wet ink, a witness, or a notary — plus whether the signer’s state has permanent remote online notarization.
It answers a question you ask it. It does not gate a capture, and it structurally cannot: the capture request has no document-type field for it to read. Wiring it into capture is a code change, not a setting. It persists nothing.
esign.ts:1049-1065
Advisory · persists nothingDelivery-path policy
POST /v1/esign/delivery-check
Separates an in-app signature, which flows through the engine, from a printed-and-wet-signed return, which bypasses the engine entirely and is verified by a document match plus a present wet signature.
★ It reads who is logged in from the request body. A caller asserts the authenticated recipient rather than the server resolving it — the exact opposite of how the capture route builds attribution. Useful as policy; not a control. It persists nothing.
esign.ts:1119-1155, the recipient field at :1106 and :1124
Advisory · persists nothingSigning-link and upload policy
POST /v1/esign/email-link-check
Grades a signing invitation against single-use, expiry, intended recipient and intended document, and grades an upload against a document-only type list and a size ceiling. All four link checks fail closed.
The email send is honest-off: no network, no delivery, no persistence. And see the next section — the function that would actually burn a used link has no caller anywhere in production, so a link is not consumed by signing today.
esign.ts:1179-1199
Advisory · persists nothingRetention policy verdict
POST /v1/esign/retention-status
Applies the retention rule — kept, retrievable, accurately reproducing, and still inside its window — and returns a verdict with the failing condition named.
★ It grades booleans the caller sends it. Whether the record is really retained, really retrievable and really reproduces accurately is measured by a storage layer and handed in. This endpoint never reads bytes, and its own reply says so.
esign.ts:971-993, the asserted booleans at :974-981
Advisory · persists nothingCertificate-of-completion trail
POST /v1/esign/certificate-status
Checks an audit trail for completeness, ordering and single-document consistency, fail-closed, and projects a summary with no personal data in it.
★ It grades a trail the caller hands it, not one assembled from the ledger. And the certificate document itself is honest-off: this validates a trail, it does not render a certificate.
esign.ts:1009-1022, the supplied events at :1012
Advisory · persists nothingConsent-ceremony preview
POST /v1/esign/consumer-consent-gate
Runs the four statutory consumer-consent conditions against values you supply, so an operator can see exactly which condition a given ceremony fails.
A preview of the rule, over supplied values, and it persists nothing. The enforcing copy of this gate is wall four on the capture route above, and that one resolves the conditions server-side instead of accepting them. Calling this endpoint does not admit anybody to signing.
esign.ts:1076
Advisory · persists nothingClause assist
POST /v1/esign/docassist
Constrained to a supplied set of approved clause templates, with a disclaimer attached to every output and a hard answer that this is not legal advice.
No model is injected. It fails closed to an honest-off verdict and returns no suggestions. It cannot invent legal language today because there is nothing there to invent it.
esign.ts:1208-1224