Clicksign
Create Clicksign v1 document requests with Redacted credentials and typed SignatureKit errors.
Clicksign cria o documento e o signatário no upstream, opcionalmente notifica o destinatário e devolve um RemoteSignatureRequest normalizado. Não é backend local de Signatures e não muta bytes de PDF no processo.
Instalação
npm install @signature-kit/core @signature-kit/clicksignQuando usar
Use Clicksign quando a cerimônia, lembretes e trilha de auditoria vivem na Clicksign. Use assinatura A1/PDF local quando o app precisa produzir os bytes assinados diretamente.
Mantenha credenciais Redacted
Tokens de provider entram como Redacted.make(...) e são abertos apenas dentro da fronteira HTTP do pacote. Nunca passe tokens remotos para componentes React ou logs.
Request mínimo
import * as Alchemy from "alchemy"
import { ClicksignSignatureRequest, providers as clicksignProviders } from "@signature-kit/clicksign"
import { signatureHttpClientLive } from "@signature-kit/core/http"
import { Effect, Layer, Redacted } from "effect"
export default Alchemy.Stack(
"Contracts",
{
providers: clicksignProviders({
accessToken: Redacted.make(process.env.CLICKSIGN_TOKEN ?? ""),
environment: "sandbox",
locale: "pt-BR",
autoClose: true,
}).pipe(Layer.provide(signatureHttpClientLive)),
},
Effect.gen(function* () {
return yield* ClicksignSignatureRequest("contrato-de-servico", {
title: "Contrato de serviço",
message: "Revise e assine este documento.",
documents: [{ fileName: "contract.pdf", mimeType: "application/pdf", contentBase64: pdfBase64 }],
recipients: [{ name: "Ana Silva", email: "ada@example.com", role: "signer" }],
send: true,
})
}),
)Fatos do provider
- Fluxo v1 cria documento, signatário e notificação opcional.
- Um documento por request; múltiplos documentos falham como
signature-kit.UNSUPPORTED_OPERATION. - O token é aberto apenas na fronteira HTTP do pacote.
Erros
Input inválido, falhas HTTP remotas e shapes de resposta inválidos falham como SignatureKitError. Os campos provider, operation e status HTTP são preservados quando a resposta upstream expõe esses dados.