Acesso de assinatura
OTP de 6 dígitos, uso único, TTL de 10 min e até 5 tentativas. Ticket de assinatura válido por 15 min.
Doc Chain
assinatura eletrônica / nível L1
Cadeia de hashes SHA-256, dossiê de evidências e ancoragem externa diária de tempo. Integre tudo por API REST.
A confiança não vem da palavra da plataforma. Vem de evidências que qualquer pessoa pode recomputar na página pública /verificar.
O arquivo original recebe um SHA-256 antes de qualquer assinatura.
sha256(original) = 222385b617ad19e2b5fe6c9175a19a67486e836541aa43c3015bb5f23d7aa2f1O evento de assinatura é serializado de forma canônica com o prevHash.
canonical(signature_event, prevHash) = 206e5595ae196f16b4a316e97608ca83f9d5cdbca453396e18f68bd4261b8dbbAdvisory lock protege o append: a signature_event forma uma cadeia append-only.
advisory_lock(signature_event) → tip = ec9fb929cbc71306d470b2fb1a4ed686606fa0ae0986da48407f6f65304b89e1O PDF recebe selo visual e QR apontando para a página pública /verificar.
stamp.pdf + qr(/verificar) → 1405513e920f8f8b079deaee46c8f624c9749ff2e00d5503f12f9d4a8c4865c1Hashes, signatários, eventos em UTC, cadeia e hash final (tip) ficam reunidos.
dossier.pdf { hashes, signers, events@UTC, chain, tip } → accf2938b483afdcbab23878b640b1487498c58b1639695e7007a230d2b3f77dA raiz do dia segue para o OpenTimestamps e seu calendário Bitcoin; a confirmação pode levar horas.
ots(root@UTC) · pending → submitted → confirmed → ec134516cfe329f84c5fede02531427dc83d9ae57996df5dfcb3b357238239cc7f9e2d46-7b71-4a1f-9e2d-4f4c7b0d8a16cadeia válida
todos os elos foram recomputados
A verificação pública recomputa a cadeia de hashes; ela não consulta a âncora OTS.
Verificar um documento agoraOTP de 6 dígitos, uso único, TTL de 10 min e até 5 tentativas. Ticket de assinatura válido por 15 min.
A página pública aplica limite de 10/min por combinação de IP + token.
signature_event é append-only e distinta de audit_logs, a auditoria administrativa genérica.
CPF opcional com dígito verificador validado e procedência registrada. IP e user-agent também são registrados.
Documentos concluídos e dossiê ficam retidos por ≥ 5 anos. Exclusões por obrigação legal são registradas.
O link do convite tem prazo próprio (30 dias por padrão) e o documento expira sozinho, com evento na cadeia.
02 / Integração
10 endpoints REST, autenticação por chave + HMAC e webhooks assinados — do rascunho ao dossiê sem sair do seu backend.
POST /api/v1/documentoscurl -X POST https://seu-dominio.example/api/v1/documentos \ -H "Authorization: Bearer sk_live_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \ -H "X-Timestamp: 1778933400" \ -H "X-Nonce: 8f38e4e3-8f26-4e5c-9a9c-7c6a9d9f1c01" \ -H "X-Signature: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: contrato-2026-0001" \ --data '{"titulo":"Contrato de prestação de serviços"}'HTTP/1.1 201 Created{"id":"3d7e8f5a-1d3c-4cb3-8e39-7c6a9d9f1c01","status":"draft"}6 movimentos para operar um envelope; 10 endpoints no total.
Assinatura de requisição
Bearer sk_live_…sk_live_ + 32 bytes aleatórios em hex; armazenada com hash
unix em segundosjanela de aceitação ±300s
UUIDTTL de 10 min; anti-replay
HMAC-SHA256calculada sobre o corpo canônico
Fórmula da assinatura
HMAC-SHA256(chave, timestamp + "." + nonce + "." + SHA256(body))Janela ±300s · nonce com TTL de 10 min.
Limite de 60 requisições / 60spor chave; excesso responde com Retry-After.
Eventos verificáveis
envelope.createdenvelope.sentenvelope.completedenvelope.canceledenvelope.expiredHeader assinado
X-Webhook-Signature: t=<unix>, v1=<hex>Corpo + entrega
{ evento, envelopeId, applicationId, dados }Ack em 2xx · timeout de 5s · 5 tentativas com backoff 30s × 2^n.
Primeiro acesso
A aprovação manual protege a superfície de integração. Depois disso, a chave torna o caminho direto.
No portal Aplicações, informe o endpoint e a capacidade necessária.
A aplicação fica pending até a aprovação manual por um super-admin — controle, não atrito.
A chave sk_live_ é exibida uma única vez. Rotação revoga a anterior imediatamente.
Webhook: endpoint HTTPS obrigatório.
Próximo passo
Veja payloads, estados e respostas completas.
03 / Fluxo
Cada transição exibe o estado do envelope e os registros que formam a prova técnica verificável.
evento na cadeia de hashes
horário em UTC no evento
IP e user-agent registrados
IP, user-agent e horário em UTC
dossiê de evidências e hash final
Cancelado
Documento cancelado
Expirado
Documento expirado
01 / Quem envia
Cria o documento, adiciona signatários, envia convites e acompanha o andamento.
02 / Quem assina
Abre pelo link do convite e confirma um OTP de 6 dígitos válido por 10 min. O CPF é opcional.
03 / Quem audita
Verifica pelo UUID do documento ou pelo SHA-256 em /verificar. Depois, baixa o dossiê de evidências com a cadeia e o hash final.
04 / Próximo movimento
Doc Chain transforma cada assinatura eletrônica em uma prova técnica verificável — do primeiro convite ao dossiê.