SignatureKit
Provider APIs

Documenso

Create Documenso v2 envelopes with multipart PDF uploads and typed SignatureKit errors.

Documenso creates a v2 envelope, uploads PDFs as multipart files, and can distribute the envelope when send is enabled.

Installation

npm install @signature-kit/core @signature-kit/documenso

When to use

Use Documenso when envelope ownership, routing, and recipient actions live in Documenso. Use local signing for in-process PDF/PAdES bytes.

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

documenso.ts
import { signatureHttpClientLive } from "@signature-kit/core/http"
import { createDocumensoSignatureRequest } from "@signature-kit/documenso"
import { Effect, Redacted } from "effect"

const program = createDocumensoSignatureRequest(
  {
    apiKey: Redacted.make(process.env.DOCUMENSO_API_KEY ?? ""),
    baseUrl: "https://app.documenso.com/api/v2",
  },
  {
    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

  • Uses the v2 envelope API with multipart file uploads.
  • send: false stops after creation and returns a draft request.
  • Recipient roles and signing order map to Documenso envelope fields.

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.

On this page