API pública do Simples Sign para sistemas e agentes de IA: criar envelopes, consultar status, baixar PDF assinado e prova pública, validar documentos e analisar contratos (IA). Operações pagas debitam créditos da organização (comprados em reais no painel; válidos por 12 meses). Autenticação: Authorization: Bearer sks_... (chave criada em Organização → API e agentes de IA). Limite: 120 requisições/min por chave.
Base: https://sign.simples.media/api · Especificação: openapi.json · Agentes: guia MCP
Crie a chave em Organização → API e agentes de IA (só administradores). Ela aparece uma única vez; guardamos apenas o hash SHA-256. Escopos: envelopes:read, envelopes:write, verify, credits:read, ai. Revogação imediata pela mesma tela.
curl https://sign.simples.media/api/v1/credits -H "Authorization: Bearer $SIGN_API_KEY"
| Operação | Custo |
|---|---|
| Criar envelope | 10 créditos |
| Validar documento | 1 crédito |
| Análise de contrato por IA | 5 créditos (0 se já analisado) |
| Status, listar, PDF assinado, prova | grátis |
Créditos são comprados em reais (cartão ou Pix, Stripe) pelo painel em Organização → API e agentes de IA. Não há recarga por transferência, carteira, envio entre organizações, saque ou revenda. Regras: validade de 12 meses por compra; cada nova compra revalida todo o saldo (inclusive vencido); avisos por e-mail 30 e 7 dias antes; consumo dos lotes mais antigos primeiro; créditos pagos e bônus separados; pessoa física pode pedir reembolso do pago vencido (devolução em até 30 dias), pessoa jurídica perde, bônus vence sem reembolso. Falha do nosso lado (5xx, erro de IA) estorna automaticamente (refunded: true no erro). Sem créditos a operação retorna 402 insufficient_credits e nada é cobrado.
/v1/envelopesCriar envelope. Cria o envelope e envia os convites por e-mail. Custo: 10 créditos.
Escopo: envelopes:write
/v1/envelopesListar envelopes. Mais recentes primeiro. Custo: grátis.
Escopo: envelopes:read
/v1/envelopes/{id}Status do envelope. Status do envelope e de cada signatário. Custo: grátis.
Escopo: envelopes:read
/v1/envelopes/{id}/signed-pdfPDF assinado. URL temporária do PDF assinado (só concluídos; 409 not_completed caso contrário). Custo: grátis.
Escopo: envelopes:read
/v1/envelopes/{id}/proofProva pública. Página /v, JSON de validação, trilha de auditoria, recibo OpenTimestamps e âncora na Simples Ledger. Custo: grátis.
Escopo: envelopes:read
/v1/envelopes/{id}/analysisAnalisar contrato (IA). Resumo, cláusulas de risco e perguntas. Resultado em cache pelo SHA-256 do PDF (repetição não é cobrada). Custo: 5 créditos (0 se já analisado).
Escopo: ai
/v1/verifyValidar documento. Confere se o PDF (ou o SHA-256) corresponde a um documento assinado no Simples Sign. Custo: 1 crédito.
Escopo: verify
/v1/creditsCréditos. Saldo (pago/bônus), validade, lotes, preços e como comprar. Custo: grátis.
Escopo: credits:read
/v1/credits/syncDesativado (410 ledger_deposits_disabled): a recarga por Simples Ledger foi removida.
/mcpServidor MCP (Streamable HTTP). JSON-RPC 2.0 do Model Context Protocol, sem sessão, respostas application/json. Veja /docs/mcp/.
curl -X POST https://sign.simples.media/api/v1/envelopes \
-H "Authorization: Bearer $SIGN_API_KEY" -H 'content-type: application/json' \
-d '{"title":"Contrato de serviço","pdf_base64":"'$(base64 -w0 contrato.pdf)'",
"signers":[{"name":"Ana","email":"ana@empresa.com","auth":"email"}]}'
Configure a URL (https público, porta 443) em Organização → API e agentes de IA. O segredo whsec_... é exibido uma vez. Eventos: envelope.created, signer.signed, envelope.completed (e ping no teste).
import { createHmac, timingSafeEqual } from 'node:crypto';
function valid(req, rawBody, secret) {
const [t, v1] = req.headers['x-sign-signature'].split(',').map((p) => p.split('=')[1]);
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; // anti-replay
const mac = createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
return timingSafeEqual(Buffer.from(mac), Buffer.from(v1));
}
Responda 2xx em até 5 s. Falhas são re-tentadas até 4 vezes (2, 4, 8, 16 min). Use X-Sign-Delivery (id do evento) para descartar duplicados.
| HTTP | error |
Significado |
|---|---|---|
| 401 | invalid_api_key |
chave ausente, inválida ou revogada |
| 403 | insufficient_scope |
a chave não tem o escopo exigido |
| 402 | insufficient_credits |
créditos insuficientes (cost, balance) |
| 409 | not_completed |
envelope ainda não concluído |
| 429 | rate_limited |
mais de 120 req/min por chave (Retry-After) |
A análise por IA é automática e informativa: não é aconselhamento jurídico.
Simples Media LTDA · Termos · Privacidade