Clicksign
Create Clicksign v1 document requests with Redacted credentials and typed SignatureKit errors.
Clicksign creates the upstream document and signer, optionally notifies the recipient, then returns a normalized RemoteSignatureRequest. It is not a local Signatures backend and it does not mutate PDF bytes in-process.
Installation
npm install @signature-kit/core @signature-kit/clicksignWhen to use
Use Clicksign when the signing ceremony, reminders, and audit trail live in Clicksign. Use local A1/PDF signing when your app must produce signed bytes directly.
Keep credentials Redacted
Provider tokens enter as Redacted.make(...) and are unwrapped only inside the package HTTP boundary. Never pass remote tokens to React components or logs.
Minimal request
import { signatureHttpClientLive } from "@signature-kit/core/http"
import { createClicksignSignatureRequest } from "@signature-kit/clicksign"
import { Effect, Redacted } from "effect"
const program = createClicksignSignatureRequest(
{
accessToken: Redacted.make(process.env.CLICKSIGN_TOKEN ?? ""),
environment: "sandbox",
locale: "pt-BR",
autoClose: true,
},
{
title: "Service agreement",
message: "Review and sign this document.",
documents: [{ fileName: "contract.pdf", mimeType: "application/pdf", content: pdfBytes }],
recipients: [{ name: "Ada Lovelace", email: "ada@example.com", role: "signer" }],
send: true,
},
).pipe(Effect.provide(signatureHttpClientLive))
const request = await Effect.runPromise(program)Provider facts
- v1 flow creates a document, signer, and optional notification.
- One document per request; multi-document input fails as
signature-kit.UNSUPPORTED_OPERATION. - The access token is unwrapped only inside the package HTTP boundary.
Errors
Invalid input, remote HTTP failures, and invalid response shapes fail as SignatureKitError. The provider, operation, and HTTP status fields are preserved when the upstream response exposes them.