Conecte as etapas da sua
jornada com uma única API
Assinatura e identificação digital, com validade jurídica garantida em cada endpoint.
Documentação
Geral
Introdução à documentação Glossário da API Como resolver errosTime de Engenharia
Referência da API AutenticaçãoRecursos
Integrações nativas Ambientes de produção e testes Ferramentas de IA Trechos de código prontos Coleção Postman e Insomnia Status da APIPasso a passo
Criação do envelope Acompanhar status pelo webhook Modelos de automação Assinatura presencial Práticas para alto volume Testar em SandboxAlém da assinatura
Uma API para coletar dados, outra para autenticar e uma terceira para assinar. Cada nova integração adiciona complexidade, manutenção e tempo até o primeiro envelope sair. A Clicksign resolve tudo isso com uma única API.
Por que usar a API da Clicksign
Gere código com IA, direto na documentação
O que resolve: tempo perdido lendo referência e escrevendo boilerplate à mão.
Integração em duas semanas
O que resolve: backlog de engenharia represado esperando integração de assinatura.
Suporte e documentação em português
O que resolve: tickets em inglês e fuso incompatível travando o deploy.
Erros previsíveis, no padrão JSON:API
O que resolve: horas de debug tentando entender por que uma chamada falhou sem contexto.
Como você quer começar?
Endpoint específico para o seu desafio de hoje ou integração completa da sua jornada de assinatura. Escolha o caminho que faz sentido para o seu momento e construa, passo a passo, uma integração mais eficiente.
Introdução em vídeo
Os conceitos principais da API, em 3 minutos. Depois, siga para o passo a passo.
Confira a explicação com todos os passos comentados em vídeo.
Clickflow
Automatize o fluxo dos seus documentos
Do formulário ao aceite, o cliente não precisa sair da conversa e a sua equipe não perde a venda no meio do caminho.
Click Intelligence
Leitura massiva de documentos
Extraia dados, identifique riscos e transforme cada arquivo assinado em informação pronta para uso, sem abrir um por um.
Quando algo falha
Tratamento de erros globais
Toda falha da API vem no mesmo formato, seguindo o padrão JSON:API. Você sabe exatamente o que quebrou e onde.
| Propriedade | Descrição | Exemplo |
|---|---|---|
| status | O código de status HTTP, expresso como string. | "422" |
| code | Código de erro do ecossistema Clicksign para indexação rápida. | "UNSUPPORTED_MEDIA_FORMAT" |
| title | Descrição curta e legível do problema. | "Unprocessable Entity" |
| detail | Explicação contextualizada da causa exata e de como corrigir. | "O arquivo possui formato inválido." |
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.
# 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]', name: 'Maria Silva', documentation: '12345678900' }] }}.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"]], "signers" => [[ "email" => "[email protected]", "name" => "Maria Silva", "documentation" => "12345678900" ]] ]]) ]);
Perguntas frequentes
As dúvidas mais comuns de quem está integrando.
O que é um Envelope?
Como funciona o ambiente Sandbox?
sandbox.clicksign.com nas requisições. Tokens do Sandbox não funcionam em produção, e vice-versa.O Clickflow tem Sandbox próprio?
clickflow-sandbox.clicksign.com e o executor em clickflow-runner-sandbox.clicksign.com, cada um com a especificação em /api/v1/docs. Lembre que ali o header Authorization leva só o UUID do Access Token, sem Bearer.Como valido a assinatura HMAC dos webhooks?
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?
access_token não expira. Trate-o como uma senha: não exponha no frontend nem versione no repositório. Caso ele seja comprometido, revogue e gere um novo imediatamente para evitar o erro AUTH-401.Quais linguagens têm exemplos prontos?
Vamos olhar para a sua integração?
Traga um fluxo que hoje dá trabalho pro seu time. A gente mapeia os endpoints, os eventos e o resultado final para mostrar onde dá para simplificar.