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/documensoWhen 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
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: falsestops 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.