Carregando...
Carregando...
Integre assinatura eletrônica no seu sistema. REST API completa com webhooks, autenticação por sessão ou API key.
https://api.assinova.com.br/api/v1urlTodas as rotas começam com /api/v1. Respostas em JSON com envelope { success, data, error }.
Dois métodos: sessão (cookies httpOnly) ou API Key.
# Login — recebe cookies httpOnly automaticamente
curl -X POST https://api.assinova.com.br/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"voce@email.com","password":"sua-senha"}' \
-c cookies.txt
# Usar cookies autenticados em requests subsequentes
curl https://api.assinova.com.br/api/v1/documents \
-b cookies.txtcurlCrie chaves em Dashboard → Integração → API Keys. Cada chave tem escopos (leitura, escrita, webhooks).
# Usar API Key no header Authorization
curl https://api.assinova.com.br/api/v1/documents \
-H "Authorization: Bearer ak_sua_chave_aqui"curlFluxo completo: criar documento → upload → signatário → enviar.
# 1. Criar documento
curl -X POST https://api.assinova.com.br/api/v1/documents \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{
"title": "Contrato de Prestação de Serviços",
"description": "Contrato referente ao projeto X"
}'
# 2. Upload do PDF (multipart)
curl -X POST https://api.assinova.com.br/api/v1/documents/DOC_ID/upload \
-b cookies.txt \
-F "file=@contrato.pdf"
# 3. Adicionar signatário
curl -X POST https://api.assinova.com.br/api/v1/documents/DOC_ID/signers \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{
"name": "João Silva",
"email": "joao@email.com",
"phone": "+5511999999999"
}'
# 4. Enviar para assinatura
curl -X POST https://api.assinova.com.br/api/v1/documents/DOC_ID/send \
-b cookies.txtcurlReceba notificações em tempo real quando eventos acontecem. Configure a URL em Dashboard → Integração → Webhooks.
document.createdDocumento criadodocument.sentDocumento enviado para assinaturadocument.signedSignatário assinoudocument.completedTodos assinaram — documento concluídodocument.cancelledDocumento canceladodocument.expiredDocumento expirousigner.openedSignatário abriu o linksigner.refusedSignatário recusou assinarCada webhook inclui o header X-Webhook-Signature (HMAC SHA-256 do body). Sempre verifique antes de processar.
# Verificar assinatura do webhook (HMAC SHA-256)
# O header X-Webhook-Signature contém o HMAC do body
# Node.js:
const crypto = require("crypto");
const signature = crypto
.createHmac("sha256", webhookSecret)
.update(rawBody)
.digest("hex");
const isValid = signature === req.headers["x-webhook-signature"];curl| Código | Significado |
|---|---|
200 | Sucesso |
201 | Criado com sucesso |
400 | Dados inválidos (verifique o body) |
401 | Não autenticado (login necessário) |
403 | Sem permissão (escopo insuficiente) |
404 | Recurso não encontrado |
409 | Conflito (ex: email já cadastrado) |
422 | Entidade não processável (validação falhou) |
429 | Rate limit — aguarde e tente novamente |
500 | Erro interno do servidor |
⚠️ Todas as rotas públicas têm rate limiting. O header X-RateLimit-Remaining indica quantas requests restam.
5 req/min por IP3 req/min por signatário60 req/min por usuário120 req/min por chave10 req/min por IPO SDK oficial está em desenvolvimento. Enquanto isso, use os exemplos acima ou o cliente HTTP de sua preferência.
Próximos: SDK JavaScript/TypeScript (npm), SDK Python (pip), SDK PHP (composer).
Nossa equipe está pronta para ajudar com a integração.