KarmaFlow's e-signature implementation is built to satisfy the core requirements of the US Electronic Signatures in Global and National Commerce Act (ESIGN) and the Uniform Electronic Transactions Act (UETA). This article explains exactly what the platform captures, what it doesn't, and what your team is responsible for.
Before any signer can complete a signature, they must explicitly accept a consent statement disclosing that they are doing business electronically and that their electronic signature has the same legal effect as a handwritten one. KarmaFlow captures this consent per signer, per session, with:
Accept-Language header)This consent record is stored on the documentsigningsessions record and surfaced in the Certificate of Completion.
UETA and ESIGN require an affirmative act demonstrating intent. KarmaFlow's signing portal requires the signer to:
Then click Sign & Submit. That click is the unambiguous affirmative act. The submit event is recorded with timestamp, IP, and user agent on both the signing-session record and the document's audit trail.
Attribution links a signature to a specific identifiable person. KarmaFlow's default attribution mechanism is:
Optional second factor: per-signer SMS OTP can be enabled on a Document Agent. (The schema is in place; wiring it to your existing SMS sender is a configuration step — contact support to enable it for your tenant.)
For higher-stakes signatures (large financial transactions, sensitive HR documents), consider requiring SMS OTP in addition to email delivery.
KarmaFlow records the integrity of the final signed document in two ways:
finalPdfSha256).The Certificate page also lists every audit event with its timestamp and IP, providing a chain-of-custody record that lives inside the document itself.
All document assets are stored in your tenant's namespaced prefix in Google Cloud Storage:
{tenantId}/documents/{documentId}/v{N}/document.pdf{tenantId}/documents/{documentId}/v{N}/document.docx{tenantId}/documents/{documentId}/v{N}/document.html{tenantId}/documents/{documentId}/v{N}/document-signed.pdf{tenantId}/documents/{documentId}/signatures/{signerId}-{timestamp}.pngThese assets are retained indefinitely by default. Your tenant administrator can configure GCS object retention policies for additional compliance requirements (immutability, time-based holds, etc.).
On final signature, KarmaFlow automatically emails a copy of the signed PDF to every signer and the document's creator. This satisfies the ESIGN requirement that signers receive a copy of the executed document. The audit trail records the delivery event.
Every meaningful event on a document is appended (never modified) to the auditTrail array on the document record, with these fields:
ts — timestamp (UTC)event — event name (e.g., created, approved, invite_sent, signed, finalized)actor — user ID, signer email, or actor type labelactorType — one of user, signer, system, aiip — IP address of the actor when knownua — user agent of the actor when knownmeta — event-specific structured dataA parallel record lives on each documentsigningsessions document, tracking that signer's specific journey (sent, opened, viewed, consent_accepted, signed, declined, etc.).
finalPdfSha256GET /internal/document/documents/:id includes the full auditTrail arraydocumentsigningsessions records keyed by documentId + signerIdfinalPdfSha256 field on the document record after finalizationrenderedAssets.pdfGcsPath, signedPdfGcsPath, etc. on the document recordLlmUsage collection under feature document_agent