SignatureKit
Provider APIs

DocuSeal

Create DocuSeal PDF submissions with X-Auth-Token credentials and typed SignatureKit errors.

DocuSeal creates a PDF submission and returns submitter links. It is a provider request API, not a local signer layer.

Installation

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

When to use

Use DocuSeal when an open-source remote signer should host the submission and collect signatures. Use local signing when SignatureKit must produce the final bytes itself.

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

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

const program = createDocuSealSignatureRequest(
  {
    apiKey: Redacted.make(process.env.DOCUSEAL_API_KEY ?? ""),
    baseUrl: "https://api.docuseal.com",
    sendSms: false,
    submittersOrder: "preserved",
  },
  {
    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

  • Creates a PDF submission through DocuSeal’s API.
  • send: false creates a draft without emailing submitters.
  • Submitter order can be preserved when the upstream supports it.

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