Guias de Desenvolvimento

Política e Conformidade

Signing Sessions

Sessão de Confiança

Guias dos SDKs

Sessão de Confiança — Pacote de Evidências

O pacote de evidências é o produto final de toda Sessão de Confiança concluída. É a prova jurídica de que uma identidade autenticada confirmou uma ação específica em um momento específico. Mesmo formato e mesma força probatória do pacote da Assinatura Expressa — apenas com document: null e action preenchido.

Estrutura

{
  "evidenceId": "ev_01JXYZ...",
  "schemaVersion": "1.0",
  "purpose": "ACTION_AUTHENTICATION",
  "tenantId": "tnt_01HXXX",
  "transactionId": "01JXYZ...",
  "sessionId": "01JXYZ...",
  "document": null,
  "action": {
    "type": "approve_disbursement",
    "description": "Aprovar liberação do empréstimo consignado #INSS-2026-007482"
  },
  "signer": {
    "name": "Maria Souza",
    "cpf": "12345678909",
    "email": "maria@example.com"
  },
  "policy": {
    "profile": "BIOMETRIC_SERPRO"
  },
  "steps": [
    {
      "type": "CLICK_ACCEPT",
      "status": "COMPLETED",
      "startedAt": "2026-05-08T14:00:12Z",
      "completedAt": "2026-05-08T14:00:25Z"
    },
    {
      "type": "BIOMETRIC_LIVENESS",
      "status": "COMPLETED",
      "startedAt": "2026-05-08T14:00:26Z",
      "completedAt": "2026-05-08T14:01:18Z",
      "result": {
        "matchScore": 0.987,
        "livenessScore": 0.994,
        "provider": "AWS_REKOGNITION"
      }
    },
    {
      "type": "SERPRO_IDENTITY_CHECK",
      "status": "COMPLETED",
      "startedAt": "2026-05-08T14:01:19Z",
      "completedAt": "2026-05-08T14:01:42Z",
      "result": {
        "matchScore": 0.962,
        "documentType": "CNH",
        "documentValid": true
      }
    }
  ],
  "timestamps": {
    "createdAt": "2026-05-08T14:00:00Z",
    "completedAt": "2026-05-08T14:01:42Z"
  },
  "context": {
    "ipAddress": "200.123.45.67",
    "userAgent": "Mozilla/5.0 (Linux; Android 13)...",
    "geolocation": { "lat": -23.5505, "lon": -46.6333, "accuracy": 12 }
  },
  "metadata": {
    "regulation": "IN-138-2022",
    "contract_id": "INSS-2026-007482"
  }
}

Campos críticos

Campo Importância
evidenceId Identificador imutável; use como referência cruzada em logs internos
purpose: ACTION_AUTHENTICATION Distingue Sessão de Confiança de Assinatura Expressa
document: null Confirma que nenhum PDF foi anexado (é o esperado nessa modalidade)
action.type + action.description A "coisa autenticada"; deve ser autoexplicativo para um juiz/regulador ler isoladamente
signer.cpf CPF completo (não mascarado) no pacote canônico; mascarado apenas no verificador público
steps[].result Pontuações biométricas e resultados de checks; comprovam a robustez do processo
timestamps UTC ISO 8601; reflete o relógio do servidor SignDocs
context.ipAddress, geolocation Apoia análise de padrão (mesmo dispositivo? mesma localização da criação da conta?)
metadata Suas chaves livres; use para amarrar à sua transação no sistema interno

Formato de armazenamento

Dois formatos disponíveis:

  1. JSON canônico (recomendado para auditoria/integração): GET /v1/verify/{evidenceId} — público, sem auth, retorna a estrutura acima.
  2. PKCS#7/CMS assinado (.p7m) (para apresentação probatória robusta): GET /v1/trust-sessions/{id}/evidence — autenticado; retorna o JSON canônico envelopado em CMS assinado com certificado ICP-Brasil A1. Valida com qualquer cliente PKCS#7 (OpenSSL, Bouncy Castle, .NET SignedCms).

Para apresentação a juiz/regulador, prefira o .p7m — a assinatura ICP-Brasil garante autenticidade e integridade sem confiar em sua palavra.

Como verificar o .p7m com OpenSSL

# Extrai o conteúdo JSON sem verificar assinatura (debug)
openssl cms -verify -in evidence-01JXYZ.p7m -noverify -out evidence.json

# Verifica assinatura contra a cadeia ICP-Brasil (raiz oficial)
openssl cms -verify -in evidence-01JXYZ.p7m \
  -CAfile /usr/share/ca-certificates/icp-brasil-bundle.pem \
  -out evidence-verified.json

A saída evidence-verified.json é byte-a-byte idêntica ao retorno do verificador público — comprova que o JSON não foi alterado.

Retenção e residência

Apresentando ao regulador

Padrão recomendado:

  1. Forneça o evidenceId.
  2. Forneça o link do verificador público (https://verificador.signdocs.com.br/{evidenceId}).
  3. (Opcional) anexe o .p7m baixado.
  4. (Opcional) anexe o JSON canônico baixado, já validado pelo .p7m.

O regulador pode validar tudo independentemente do SignDocs — basta o .p7m, OpenSSL e a cadeia ICP-Brasil pública.

Privacidade e LGPD

O pacote canônico contém PII (nome, CPF, email, foto biométrica indireta via score). Tratamento:

A força probatória do pacote vem da combinação:

Lei 14.063/2020 e MP 2.200-2/2001 + jurisprudência STJ reconhecem esse arranjo como assinatura eletrônica avançada com presunção de autenticidade.