Boas práticas e checklist de produção
Segurança do token, novas tentativas com espera progressiva, como evitar envelopes duplicados, webhooks confiáveis, testes sem ambiente separado e proteção de dados.
6 min de leitura Avançado Atualizado em 11 de novembro de 2026
Nesta página
Uma integração que funciona no primeiro teste nem sempre aguenta o dia a dia: tempo esgotado no meio do envio, servidor fora do ar na hora do webhook, token vazado num log. Este guia reúne o que fazer antes de ligar a integração em produção, com a lista de conferência no final.
Proteja o token
- Guarde o token em variável de ambiente ou cofre de segredos. Nunca no código-fonte, no repositório, em planilhas,
em mensagens ou em logs (mascare o cabeçalho
Authorizationnos registros de requisição). - Chame a API só do seu servidor. O token não pode ir para páginas web, aplicativos de celular ou qualquer código que rode no aparelho do cliente.
- Crie o token com um usuário dedicado à integração (por exemplo, "Integração ERP"), com o perfil mínimo necessário: Remetente se a integração só gerencia os envelopes que ela mesma envia; Administrador se precisa ver os da conta toda.
- Um token por sistema integrado, com nome claro. Se um token vazar, peça a revogação ao suporte e troque (veja Se o token vazar).
Repita só o que pode ser repetido
| Resposta | O que fazer |
|---|---|
2xx |
seguir |
401 |
não repetir: o token é inválido ou o usuário foi bloqueado. Alerte a equipe |
403, 404, 405, 422 |
não repetir igual: corrija a chamada ou os dados (a mensagem diz o quê) |
429 |
esperar os segundos de Retry-After e repetir |
500, 502, 503, 504 ou sem resposta |
repetir com espera progressiva: 1 s, 2 s, 4 s, 8 s... com um pouco de variação aleatória, até umas 5 tentativas |
Leituras (GET) podem ser repetidas à vontade. Para POST /envelopes, veja a seção abaixo antes de repetir.
Dica: Os cabeçalhos
X-RateLimit-Remainingmostram quanto ainda cabe no minuto (120 requisições por usuário). Se o seu sistema faz envios em lote, espalhe as chamadas em vez de disparar todas de uma vez.
Evite envelopes duplicados
A API não tem chave de idempotência: se o POST /envelopes esgotar o tempo do seu lado depois de o ODSign já ter
criado o envelope, repetir cria outro. Para não duplicar:
- Use um tempo limite generoso no envio (60 s ou mais, por causa do upload e da conversão dos arquivos).
- Grave o
iddevolvido junto do registro do seu sistema assim que a resposta chegar. - Se a resposta não veio, antes de repetir, liste os envelopes recentes e procure o seu:
GET /envelopes?from_date=AAAA-MM-DDe compare osubject(inclua nele o número do seu contrato ou pedido, como "Contrato 123 - Prestação de serviços"). - Se encontrar, use aquele
id; se não, repita.
Um 422 com send=1 também não pede um novo envelope: ele ficou salvo como rascunho, com as pendências em
errors.envelope. Corrija pelo app (Envelopes › Rascunhos) ou anule e recrie conscientemente.
Webhooks confiáveis
- Confira a assinatura de toda entrega antes de usar o conteúdo (veja Validar a assinatura dos webhooks).
- Responda em poucos segundos com
2xxe processe depois, numa fila. Respostas lentas contam como falha e geram novas tentativas. - Ignore repetições: guarde a combinação
event+envelope.id+recipient.idjá processada. - Não conte com a ordem: uma nova tentativa pode chegar depois de um evento mais novo. Na dúvida, consulte o envelope pela API.
- Confira periodicamente: são até 3 tentativas em cerca de 1 minuto. Se o seu servidor ficar fora do ar por mais
tempo, o evento não chega de novo. Uma conferência de hora em hora com
GET /envelopes?from_date=...resolve (veja Exemplos de integração). - Descarte eventos muito antigos se quiser uma proteção a mais contra reenvio malicioso: o
sent_atfaz parte do corpo assinado.
Teste sem ambiente separado
Não há um ambiente de testes à parte: tudo acontece na conta do token. Para desenvolver com segurança:
- Crie rascunhos (sem
send): eles não saem para ninguém e não contam no limite mensal. Exclua-os depois em Envelopes › Rascunhos. - Para o fluxo completo, use o seu e-mail ou celular como destinatário.
- Se quiser isolar de vez, use uma conta separada para desenvolvimento e homologação, com o próprio token e o próprio webhook.
- Teste o receptor de webhooks sem eventos reais com a ferramenta Validar e simular e com o botão Testar em Configurações › Webhooks.
Escolha a forma de autenticação pelo risco
| Documento | Sugestão |
|---|---|
| Aceites simples, termos internos, recibos | link ou signature |
| Contratos comerciais, propostas | email, sms ou whatsapp (token de 6 dígitos na hora de assinar) |
| Contratos de maior risco, abertura de conta, locação | document (foto do documento de identidade), conforme o plano |
A forma de autenticação, o IP, a data e a hora de cada ação vão para a trilha de assinaturas do documento. Veja Validade jurídica para os tipos de documento que exigem forma especial em lei.
Proteção de dados (LGPD)
- Nos envelopes que o seu sistema cria, a sua empresa é a controladora dos dados dos destinatários e do conteúdo dos documentos; o ODSign trata esses dados em seu nome (veja o Acordo de tratamento de dados).
- Envie só o necessário: nome, e-mail e, quando for usar WhatsApp, SMS ou token pelo celular, o celular.
- Informe os signatários sobre o uso da assinatura eletrônica e dos dados, como faria com qualquer contrato.
- Guarde os PDFs baixados com o mesmo cuidado dos originais: eles trazem os dados de todos os participantes.
Checklist de produção
- Token em cofre de segredos, criado por um usuário dedicado, com o perfil mínimo necessário.
- Cabeçalho
Authorizationmascarado nos logs do seu sistema. - Tempo limite de 60 s ou mais no
POST /envelopese oidgravado logo que a resposta chega. - Novas tentativas só em
429(comRetry-After) e5xx/sem resposta (com espera progressiva). - Busca antes de repetir um
POST /envelopessem resposta. -
422tratado: mostra a pendência para alguém resolver, sem recriar o envelope. - Webhook com
https, assinatura conferida em tempo constante e resposta2xxem poucos segundos. - Repetições de webhook ignoradas e processamento numa fila.
- Conferência periódica com
GET /envelopes?from_date=.... - Download do documento assinado com conferência do SHA-256 contra
final_sha256. - Código que ignora campos e valores novos nas respostas e eventos desconhecidos.
- Alerta para
401(token revogado ou usuário bloqueado) e para entregas de webhook com Falhou.
Este artigo foi útil?
Artigos relacionados
- Exemplos de integração completosCódigo pronto para criar e enviar envelopes, receber os webhooks com a assinatura conferida e baixar o documento assinado, em PHP (Laravel), Node.js e Python.
- Webhooks de saídaReceba no seu sistema um aviso a cada envio, visualização, assinatura, recusa, anulação e conclusão de envelopes, com assinatura HMAC e novas tentativas.
- Criar e usar um token de APIGere um token pessoal em Configurações › Conta, guarde-o com segurança e use-o no cabeçalho Authorization das chamadas.
- Proteção de dados e LGPDQuais dados o ODSign registra na assinatura, onde os documentos ficam guardados, como as contas são isoladas e quais cookies o app usa.