Sharing & signatures

Your automation makes the object. The person still proves who they are.

A share and a signature envelope are records in the organisation. Creating them is an API call. Opening them is a separate door: mailbox proof, watermark on a public share, a signing ceremony. Your client secret never becomes their session.

Call these from an API user with shares or organisation (and signatures for envelopes). Recipients never present this token. If they did, they would be you.

Download limits belong to the organisation

GET /v1/organisations/share-policy · PUT /v1/organisations/share-policy

If you omit max_downloads on a new share, Casewelt uses the organisation default (one, unless you raised it). You cannot exceed the organisation ceiling. Codes you may see: share_policy_invalid, max_downloads_exceeds_org_policy.

POST Create an external share

/v1/shares

shares

The response includes a public URL for the recipient door, and the one-time code. By default the code is not in the same email as the link. otp_required and watermark are required for external shares; omitting them fails closed. List with GET /v1/shares?file_id=.

{
  "workspace_id": "…",
  "file_id": "…",
  "version_id": "…",
  "notify_email": "jordan@example.com",
  "otp_required": true,
  "watermark_required": true,
  "ttl_amount": 14,
  "ttl_unit": "day",
  "max_downloads": 1,
  "note": "Board pack — version you approved.",
  "include_otp_in_email": false,
  "scheduled_send_at": null
}
{
  "share_id": "…",
  "public_url": "https://share.casewelt.com/…",
  "otp": "482913",
  "otp_delivered": false,
  "send_status": "sent",
  "expires_at": "2026-09-20T00:00:00Z"
}

POST Revoke

/v1/shares/{id}/revoke

Ends the share and any viewer sessions already open. A later open is refused and recorded. You do not rotate staff passwords to achieve this.

{ "status": "share_revoked", "share_id": "…", "viewer_sessions_revoked": 2 }

Internal shares

GET /v1/internal-shares · POST /v1/internal-shares

A colleague or a group, still inside the organisation. No public door, no watermark for staff. Authorisation is still checked. List colleagues for a workspace with GET /v1/internal-shares/colleagues?workspace_id=.

POST Signature envelope

/v1/signature-envelopes

signatures

{
  "workspace_id": "…",
  "file_id": "…",
  "version_id": "…",
  "signers": [
    { "email": "counsel@example.com", "name": "Jordan A." }
  ]
}

List with GET /v1/signature-envelopes. Read one for status, certificate, final document and evidence. Standard versus qualified is an entitlement on the organisation, not a flag you invent. When the allowance is used up, create fails with a usage error rather than sending a half-ceremony.

When create is refused

CodeMeaning
policy_deniedThis file must not leave. The caller is still authenticated.
otp_required_for_external_shareThe product will not emit an unmarked public copy.
watermark_required_for_external_shareSame: public copy must be marked.
external_share_disabledOrganisation policy has closed that door.
denyThis principal may not share this file.