Todos os prazos da API de assinatura em uma página
Numa única assinatura há vários relógios correndo em paralelo, e eles não têm nada a ver uns com os outros: o seu token de acesso, a janela em que o signatário pode assinar, o código enviado por e-mail, a captura de vivacidade, a URL de download. Quase toda dúvida de prazo que chega ao suporte nasce de confundir dois deles — normalmente "meu token expirou, o link do cliente também expirou?", cuja resposta é não, são coisas independentes. Esta é a referência única: o que cada prazo governa, quanto dura, o que é configurável e qual acaba primeiro.
A confusão mais comum, resolvida antes de tudo: o prazo do seu token (15 minutos) e o prazo do link do signatário (72 horas por padrão) são independentes. O token pode vencer e ser renovado dezenas de vezes enquanto a mesma sessão de assinatura continua aberta. Um não afeta o outro.
A tabela
| O que | Duração | Configurável | Começa em |
|---|---|---|---|
| Token de acesso da aplicação | 15 min (900 s) | Não | Emissão do token |
| Janela de assinatura (sessão / envelope) | 72 h por padrão | Sim — 5 min a 7 dias | Criação da sessão |
| Link de assinatura | Herda o da sessão | Não (segue a sessão) | Criação da sessão |
| Código OTP | 10 min | Não | Envio do código |
| Sessão de captura de vivacidade | 15 min | Não | Criação da sessão de captura |
| Token da página hospedada de captura | 10 min | Não | Início da etapa |
| URL de download (evidência, carimbo combinado) | 1 h | Não | Emissão da URL |
| URL pré-assinada de upload | 10 min — confira expiresIn |
Não | Chamada de presign |
| Imagem biométrica de referência | 90 dias | Não | Cadastro |
| Dados em homologação | 7 dias | Não | Criação da entidade |
O único prazo que você escolhe
De toda a tabela, um campo é seu: expiresInMinutes, aceito na criação da sessão de assinatura e do envelope.
A faixa aceita vai de 5 minutos a 10.080 minutos (7 dias). Fora dela, a criação é recusada com 400 — antes de o signatário existir no fluxo, e não no meio dele.
Como calibrar, sem chutar:
| Contexto | Faixa razoável | Por quê |
|---|---|---|
| Assinatura na hora, com a pessoa na tela (balcão, checkout) | 15 a 60 min | Se não assinou agora, não vai assinar — e o link não deveria ficar vivo |
| Envio por e-mail para pessoa física | 24 a 72 h | Cobre o fim de semana sem deixar o link indefinidamente ativo |
| Documento corporativo, várias partes | 3 a 7 dias | Depende de agenda de terceiros e de aprovação interna |
Há um custo em ambos os extremos. Prazo curto demais gera fila de suporte pedindo link novo. Prazo longo demais mantém uma credencial de assinatura circulando por e-mail — e é bom lembrar que o link é a própria autenticação nos perfis mais simples. O padrão de 72 horas é um meio-termo deliberado, não um valor arbitrário.
Os prazos aninhados da biometria
Numa etapa de prova de vida, três relógios correm encaixados:
O menor governa. Na prática, a captura precisa terminar dentro dos 10 minutos que se seguem ao início da etapa — mesmo que a sessão de assinatura ainda tenha seis dias pela frente.
Daí um padrão de uso que falha e parece inexplicável: gerar o link da captura e mandá-lo por e-mail para a pessoa abrir quando puder. Quando ela abre, o token de 10 minutos já morreu. O correto é entregar o link da sessão de assinatura, que tem prazo longo, e deixar que a etapa de vivacidade só comece quando a pessoa efetivamente chegar à tela da câmera.
Um alívio: recarregar a página não queima uma sessão de vivacidade nova. Reiniciar a etapa devolve a mesma sessão, desde que não tenha sido consumida nem vencido — e o reaproveitamento não estende o prazo original, senão bastaria recarregar a cada nove minutos para mantê-la viva para sempre.
Prazos que não estendem
Três casos em que a intuição sugere renovação e não há:
- Reemitir o link não estende a sessão.
POST /v1/signing-sessions/{id}/linkdevolve uma URL nova com oexpiresAtoriginal. Serve para recuperar um link perdido ou já consumido — não para ganhar tempo. - Reenviar o código não estende a sessão. Cria um novo prazo de 10 minutos para o código; a janela de assinatura segue igual.
- Reiniciar a etapa de vivacidade não estende a captura, como acima.
Quando a janela de assinatura realmente vence, não há renovação: cria-se outra sessão — e aí sim há consumo de cota. O runbook do caso está em sessão expirada: reenviar, cancelar ou recriar.
Prazos de URL de download
As URLs devolvidas para baixar arquivos são pré-assinadas e de vida curta — cerca de uma hora no caso da evidência e do carimbo combinado. Duas consequências práticas:
- Não guarde a URL no seu banco. Guarde o identificador (
transactionId,envelopeId) e peça uma URL nova quando precisar. Pedir de novo é barato e sempre funciona. - Não repasse a URL ao cliente final por um canal lento. Se ela chegar por um e-mail lido no dia seguinte, terá expirado. Sirva o arquivo pelo seu próprio backend, ou gere a URL no momento do clique.
Isso vale inclusive para a URL que chega no evento ENVELOPE.ALL_SIGNED: se ela já expirou quando alguém foi usar, o carimbo combinado pode ser pedido de novo, quantas vezes for preciso.
Retenção: prazos de outra natureza
Dois prazos da tabela não governam fluxo, e sim quanto tempo um dado existe:
Imagem biométrica de referência: 90 dias. Depois disso a imagem é apagada e a comparação passa a falhar até haver novo cadastro. O registro do cadastro sobrevive à imagem por mais 30 dias de propósito, para que uma varredura consiga distinguir "venceu" de "nunca cadastrou".
Homologação: 7 dias. Entidades criadas no ambiente de testes desaparecem depois disso. É a causa de uma falha intermitente clássica em suíte automatizada: o teste guarda um transactionId de uma execução anterior e, uma semana depois, ele não existe mais. Crie objetos novos a cada execução — ver como testar sua integração do sandbox ao CI.
Checklist de prazos para a sua integração
- Renove o token por expiração, não por agenda. Guarde o
expires_indevolvido e renove antes do fim; não presuma que um token guardado ontem serve hoje. - Escolha
expiresInMinutesconscientemente. Aceitar o padrão de 72 horas é uma decisão legítima — desde que seja uma decisão. - Não guarde URLs de download. Guarde identificadores e peça a URL na hora.
- Não mande o link da captura biométrica por e-mail. Mande o link da sessão.
- Trate
TRANSACTION.DEADLINE_APPROACHING. É o aviso de que a janela está acabando, e o gancho natural para lembrar o signatário antes que o link morra — ver webhooks e eventos. - Em homologação, não reaproveite ids. Sete dias.
Perguntas Frequentes
Quanto tempo dura o token de acesso?
900 segundos — 15 minutos. É o token que a sua aplicação obtém em POST /oauth2/token. Ele não tem relação com o prazo da sessão de assinatura: o token pode expirar várias vezes enquanto um signatário ainda tem dias para assinar. Renove-o no seu lado; não o guarde entre execuções longas.
Qual é o prazo padrão para o signatário assinar?
72 horas, quando você não informa nada. O campo expiresInMinutes, aceito na criação da sessão e do envelope, permite qualquer valor entre 5 minutos e 10.080 minutos (7 dias). Fora dessa faixa, a criação é recusada com 400.
O link de assinatura tem prazo próprio?
Não — ele herda o da sessão. Emitir um link novo com POST /v1/signing-sessions/{id}/link devolve o mesmo expiresAt da sessão original: relinkar não estende nada. Vencido o prazo da sessão, o caminho é criar outra, e aí sim há consumo de cota.
Quanto tempo o código OTP fica válido?
10 minutos a partir do envio. Um novo pedido de código gera um novo prazo. É bem menos que a janela de assinatura, o que é proposital: o código prova posse do canal naquele momento, e um código de vida longa perde essa propriedade.
E os prazos da biometria?
São dois, encadeados: a sessão de captura de vivacidade vale 15 minutos e o token da página hospedada de captura vale 10 minutos. Na prática manda o menor: a captura precisa ser concluída dentro dos 10 minutos após o início da etapa. Uma etapa reiniciada reaproveita a sessão de vivacidade existente, se ela não foi consumida nem venceu — e o reaproveitamento não estende o prazo original.
Por quanto tempo a imagem biométrica de referência é guardada?
90 dias, com o registro do cadastro sobrevivendo à imagem por mais 30, para que uma varredura consiga distinguir "venceu" de "nunca cadastrou". É um prazo de retenção de dado, de natureza diferente dos prazos de fluxo desta página.
Os dados de homologação também expiram?
Sim. No ambiente de homologação as entidades são retidas por 7 dias. Isso significa que identificadores de transações e sessões antigas deixam de existir — em testes automatizados, crie objetos novos em vez de reaproveitar ids de execuções anteriores.
Dimensione os prazos antes de o primeiro cliente reclamar
A janela de assinatura vai de 5 minutos a 7 dias e é definida por sessão. Teste os extremos no sandbox gratuito antes de fixar o valor da sua operação.
Criar credenciais de homologação Fale com o time comercial