Documentação da API · Clicksign

API de Assinaturas Digitais com Validade Jurídica

Integre assinaturas eletrônicas em minutos. Crie envelopes com vários documentos, configure a autenticação e receba os eventos em tempo real por webhook.

Ilustração de uma pessoa desenvolvedora programando em um notebook, com uma janela de código e engrenagens ao fundo. Ilustração de uma pessoa desenvolvedora programando em um notebook, com uma janela de código e engrenagens ao fundo.

Por que usar a API da Clicksign

Integre mais rápido com IA

Use nossas ferramentas de IA para gerar trechos de código, esclarecer dúvidas da documentação e acelerar cada etapa da integração.

Conhecer as ferramentas de IA

Integração em duas semanas

Do upload do documento ao envelope enviado, com código testado e pronto para executar.

Ver primeiros passos

Suporte e documentação em português

Guias, exemplos de código e referência completa no seu idioma, com um time pronto para ajudar quando você precisar.

Ver agora
JSON:API

Padrão JSON:API Compliant: erros padronizados e documentados para acelerar seu debugging.

Exemplos prontos

Copie, cole e execute

Cada endpoint traz exemplos na linguagem que você usa. Comece com nossas coleções oficiais de Postman e Insomnia.

POST /api/v3/envelopes
# Criar envelope com 1 documento e 1 signatário
curl -X POST 'https://sandbox.clicksign.com/api/v3/envelopes' \
  -H 'Authorization: Bearer SEU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "envelope": {
      "name": "Contrato de Prestação",
      "documents": [{ "id": "doc_abc123" }],
      "signers": [{
        "email": "[email protected]",
        "name": "Maria Silva",
        "documentation": "12345678900"
      }]
    }
  }'
// Criar envelope com 1 documento e 1 signatário
const res = await fetch(
  'https://sandbox.clicksign.com/api/v3/envelopes', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ envelope: {
    name: 'Contrato de Prestação',
    documents: [{ id: 'doc_abc123' }],
    signers: [{ email: '[email protected]',
      name: 'Maria Silva',
      documentation: '12345678900' }]
  }})
});
# Criar envelope com 1 documento e 1 signatário
import requests
res = requests.post(
  "https://sandbox.clicksign.com/api/v3/envelopes",
  headers={"Authorization": f"Bearer {TOKEN}"},
  json={"envelope": {
    "name": "Contrato de Prestação",
    "documents": [{"id": "doc_abc123"}],
    "signers": [{
      "email": "[email protected]",
      "name": "Maria Silva",
      "documentation": "12345678900"}]
  }})
# Criar envelope com 1 documento e 1 signatário
require 'net/http'; require 'json'
uri = URI('https://sandbox.clicksign.com/api/v3/envelopes')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = "Bearer #{TOKEN}"
req['Content-Type'] = 'application/json'
req.body = { envelope: {
  name: 'Contrato de Prestação',
  documents: [{ id: 'doc_abc123' }],
  signers: [{ email: '[email protected]' }]
}}.to_json
// Criar envelope com 1 documento e 1 signatário
$ch = curl_init('https://sandbox.clicksign.com/api/v3/envelopes');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer $TOKEN",
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode(["envelope" => [
    "name" => "Contrato de Prestação",
    "documents" => [["id" => "doc_abc123"]]
  ]])
]);
Resposta: 201 Created · { "envelope": { "id": "...", "status": "draft" } }

Quando algo falha

Tratamento de erros globais

Para garantir consistência e previsibilidade, toda falha na API da Clicksign segue estritamente a especificação JSON:API v1.0. Você sempre recebe o mesmo formato, com causa e ponto exato do problema.

Propriedade Descrição Exemplo
status O código de status HTTP, expresso como inteiro. 422
code Código de erro do ecossistema Clicksign para indexação rápida. "bad_request"
title Descrição curta e legível do problema. "Não autorizado"
detail Explicação contextualizada da causa exata e de como corrigir. "O arquivo possui formato inválido."
Ver biblioteca completa de erros

Integre a sua operaçãocom os principais sistemas do mercado

Integração
n8n
Pipefy
Agendor
SoftExpert
Pluga
HubSpot
RD Station
Salesforce
Groner

Perguntas frequentes

As dúvidas mais comuns de quem está integrando.

O que é um Envelope?
Um envelope é um agrupador que reúne vários documentos e vários signatários em uma única transação. Ele substitui o modelo da API 1.9, em que cada documento exigia uma requisição separada.
Como funciona o ambiente Sandbox?
O Sandbox é um ambiente isolado para testes. Os documentos criados nele não têm valor legal e não geram cobrança. Teste à vontade. Use sandbox.clicksign.com nas requisições. Tokens do Sandbox não funcionam em produção, e vice-versa.
Como valido a assinatura HMAC dos webhooks?
Cada aviso inclui o cabeçalho x-clicksign-signature. Recalcule o HMAC do corpo recebido com sua chave secreta e compare com o cabeçalho antes de processar. Trate cada evento como idempotente, porque os avisos podem ser reenviados.
Os tokens de acesso expiram?
Sim. O access_token expira após 90 dias. Trate-o como uma senha: não exponha no frontend nem versione no repositório. Configure rotação automática ou alertas de expiração para evitar o erro AUTH-401.
Quais linguagens têm exemplos prontos?
Cada endpoint traz exemplos em cURL, Node.js, Python, PHP e Ruby. Também disponibilizamos coleções oficiais de Postman e Insomnia para você importar e executar direto.