Skip to main content

Signatures, Activation & Bundles

Collect signatures correctly and activate safely; manage the bundle.

C
Written by Catalin Fetean
Updated over 2 weeks ago

Audience: Admins, Legal, PMs, Developers
Outcomes: Fully signed, enforceable contract; clean bundle

Request signatures (server)

curl -X POST $API_BASE/api/contracts/blockchain -b cookies.txt \ -H 'Content-Type: application/json' \ -d '{ "title":"Design SOW", "description":"LP redesign", "amount":150000, "currency":"USD", "buyerEmail":"[email protected]" }'
  • Response includes a signatureRequest

  • If wallet-backed, client prompts wallet; signature is posted back

Options

  • Signing order (e.g., seller → buyer)

  • Multi-signer per party; all must sign

  • Time-boxed signature windows with auto-expire

Activation & automation

  • Status → active

  • Events: contract.fully_signed, contract.activated

  • Optional: auto-create order from paymentTerms

  • Notifications to both parties; SSE example:

const es = new EventSource('/api/events/stream', { withCredentials: true }); es.addEventListener('contract.fully_signed', e => { const data = JSON.parse(e.data); console.log('Contract signed:', data.contractId); });

Appendices & exhibits

  • Allowed: PDF, DOC/DOCX, images, archives; default 10 MB/file

  • AV + MIME validation

  • Version pinning: hash stored; exact file baked into bundle at signature

  • Download bundle from Contracts → Active → Download

Access & visibility

  • Member: edit own drafts; see assigned active contracts

  • Admin/Owner: see all org contracts; approve/manage

  • Cross-org: each party sees shared items only; private notes stay in-org

  • Exports: admin can export bundle; optional redaction for PII

Edge cases

  • Signed PDF missing appendix ⇒ add via addendum (not retroactive)

  • Legal hold ⇒ locks amendments/deletions

QA checklist

  • All assigned signers required; signing order observed

  • Bundle contains contract + signatures + pinned exhibits

Runbook: “Counterparty can’t see draft”

  • Ensure it’s shared for review; drafts are org-scoped until shared

Did this answer your question?