Guias de Desenvolvimento

Política e Conformidade

Signing Sessions

Sessão de Confiança

Guias dos SDKs

Sessão de Confiança — Aprovação de Transação

Fluxo para autorizar operações sensíveis sem precisar de contrato/PDF: liberação de empréstimo consignado (IN 138/2022), aprovação de PIX de alto valor, liberação de escrow, autorização de mudança de plano, aceite de uma decisão executiva em ERP/CRM.

Quando preferir Sessão de Confiança a OTP+SMS

Cenário OTP+SMS basta? Use Sessão de Confiança
Login em portal interno Sim Não
Transferência interna pequena Sim Não
Empréstimo consignado INSS Não (IN 138/2022 exige biometria) Sim
PIX > R$ 5.000 entre contas não-recorrentes Possivelmente Recomendado (auditoria robusta)
Liberação de escrow OTP fraco demais Sim
Aprovação de M&A / resolução de diretoria OTP fraco demais Sim (BIOMETRIC + DIGITAL_SIGN_A1)
Mudança de Pix Key Sim, na maioria Recomendado em fraude alta

Padrão de uso

1. Liberação de consignado (IN 138/2022)

{
  "action": {
    "type": "approve_payroll_loan_disbursement",
    "description": "Aprovar liberação de empréstimo consignado #INSS-2026-007482 no valor de R$ 8.450,00 em 60 parcelas"
  },
  "policy": {
    "profile": "BIOMETRIC_SERPRO"
  },
  "signer": {
    "name": "Maria Souza",
    "cpf": "123.456.789-09",
    "email": "maria@example.com",
    "phone": "+5511999990000",
    "otpChannel": "sms"
  },
  "metadata": {
    "regulation": "IN-138-2022",
    "contract_id": "INSS-2026-007482",
    "benefit_number": "1234567890",
    "amount_cents": 845000,
    "installments": 60
  },
  "expiresInMinutes": 30
}

A IN 138/2022 do INSS exige biometria facial em cada novo contrato de consignado. A Sessão de Confiança com BIOMETRIC_SERPRO cumpre o requisito e produz evidência aceita em auditoria do INSS.

2. PIX de alto valor

{
  "action": {
    "type": "authorize_high_value_pix",
    "description": "Autorizar PIX para chave joao@example.com no valor de R$ 9.850,00"
  },
  "policy": {
    "profile": "OTP_AND_BIOMETRIC"
  },
  "signer": { "name": "...", "cpf": "...", "email": "...", "otpChannel": "sms" },
  "metadata": {
    "pix_request_id": "PIX-A47291",
    "amount_cents": 985000,
    "destination_key": "joao@example.com"
  },
  "expiresInMinutes": 10
}

OTP_AND_BIOMETRIC é a combinação típica para PIX: OTP por SMS prova a posse do telefone, biometria prova a identidade. Use expiresInMinutes: 10 para evitar janelas longas em flows tempo-sensíveis.

3. Aprovação de resolução de diretoria

{
  "action": {
    "type": "board_resolution_approval",
    "description": "Aprovar Ata da Reunião de Diretoria nº 2026-04 — aporte de capital de R$ 1.200.000,00 na subsidiária X"
  },
  "policy": {
    "profile": "FULL_PLUS_A1"
  },
  "signer": {
    "name": "Ewerton Sava",
    "cpf": "987.654.321-00",
    "email": "ewerton@example.com",
    "otpChannel": "email"
  },
  "metadata": {
    "board_resolution_id": "BR-2026-04",
    "amount_cents": 120000000,
    "company_cnpj": "12.345.678/0001-90"
  }
}

FULL_PLUS_A1 (perfil customizado a contratar com seu CS) executa CLICK_ACCEPT + OTP + BIOMETRIC + DIGITAL_SIGN_A1 sobre o hash da ação — atende o requisito mais rigoroso de governança corporativa quando a empresa quer prova ICP-Brasil sem precisar materializar um PDF.

Padrão de integração: webhook + idempotência

Para evitar dupla aprovação em retries:

  1. Gere X-Idempotency-Key no seu sistema vinculada ao recurso (ex: loan_disbursement:INSS-2026-007482).
  2. Crie a Sessão de Confiança com essa chave no header.
  3. Aguarde o webhook trust_session.completed com o evidenceId.
  4. Antes de executar a operação (desembolso, PIX, transferência), confirme em sua base que evidenceId ainda não foi consumido. Marque-o como consumido na mesma transação que realiza a operação.

Isso fecha o ciclo: a operação irreversível só acontece uma vez, mesmo que o webhook chegue duplicado ou que o retry do cliente seja agressivo.

Cancelamento

Se o usuário não conclui ou o sistema upstream cancela a operação:

curl -X POST https://api-hml.signdocs.com.br/v1/trust-sessions/$SESSION_ID/cancel \
  -H "Authorization: Bearer $JWT"

A cota monthlyTrustSessions consumida não é reembolsada (regra herdada de monthlyTransactions). Isso evita o abuso de criar e cancelar em loop para esquentar contadores.