API
Guia para integradores. A narrativa completa e as tabelas de escopos estão em API_PLATFORM.md. Para uma visão de contrato parcial, use a referência OpenAPI (subset). O JSON OpenAPI do site é curado manualmente e pode não listar todos os endpoints ou detalhes do runtime; em divergência, prevalece o comportamento da API implantada.
Autenticação
Authorization: Bearer sk_test_… ou sk_live_…. Sessão JWT do app também é aceita em rotas de sign (tenant derivado do token).
Cada API key tem scopes (ex.: envelopes:read, envelopes:write, export:read, webhooks:read, webhooks:write). Sem escopo adequado → 403 com INSUFFICIENT_SCOPE.
API keys
Crie e revogue chaves no portal (Sign → API Keys) ou via GET/POST /api/sign/api-keys. O valor sk_* só aparece na criação — armazene em cofre seguro.
Idempotência
Envie o header Idempotency-Key: <uuid> em POSTs que alteram estado (criação de envelope, resend, cancel, criação de webhook, etc.). Repetições com a mesma chave retornam a mesma resposta armazenada.
Endpoints principais
POST /api/sign/envelopes— criar envelopeGET /api/sign/envelopes— listar (filtros de status, data, signatário)GET /api/sign/envelopes/:id— detalhePOST /api/sign/envelopes/:id/send— enviar convitesPOST /api/sign/envelopes/:id/resend— reenviar pendentes (ver API_PLATFORM.md)POST /api/sign/envelopes/:id/cancel— cancelar (se aplicável; ver API_PLATFORM.md)GET /api/sign/envelopes/:id/export— exportar proof pack (ZIP), scope export:readGET /api/sign/usage— uso do mês / limitesGET /api/sign/api-keys— listar API keysPOST /api/sign/api-keys— criar API keyGET /api/sign/webhooks— listar webhooksPOST /api/sign/webhooks— criar webhook
Ambientes test / live
O prefixo sk_test_* vs sk_live_* define o ambiente. Mesmas rotas; quotas e risco operacional separados.
Exemplo: criar envelope
curl -X POST "https://<host>/api/sign/envelopes" \
-H "Authorization: Bearer sk_test_XXX" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{"title":"Contrato","signers":[{"name":"João","phone":"5511999999999"}]}'Erros comuns
401— token ausente ou inválido.403+INSUFFICIENT_SCOPE— escopo da API key não cobre a rota.429+RATE_LIMITED— limite por janela; respeiteRetry-Afterquando enviado.402/ entitlements — quota ou plano quando aplicável ao produto.