A API de Dossiê aceita três modos de geração no mesmo POST /dossies. A geração é assíncrona: a resposta 202 retorna o ID; consulte GET /dossies/{dossie_id} para acompanhar o trabalho e obter PDF/DOCX.
Os modos personalizados e a matriz de risco têm liberação controlada por conta. Use um ambiente em que a versão esteja disponível e o workspace tenha sido habilitado. Uma chave com escopos de Dossiê não ativa esses recursos por si só.

Acesso por conta

Envie Authorization: Bearer <chave slhk_…> e Content-Type: application/json. A API exige uma chave com entitlement dossies, escopo dossies:write para criar/repetir e dossies:read para consultar, além da liberação public_api_dossies já existente. modular, provided_data e qualquer risk_matrix exigem também public_api_dossies_custom, desligada por padrão. A liberação é configurada por um administrador para a conta/workspace. Solicite a habilitação ao time responsável pelo acesso à API. Não envie a flag no JSON de criação: ela é verificada a partir da conta autenticada. O workspace vem da chave autenticada; a requisição de geração não escolhe outra conta. A ausência da liberação retorna 403, código dossie_custom_not_enabled, antes de aceitar, cobrar ou enfileirar o job. O retry também verifica a liberação vigente. Não é necessário habilitar a flag para continuar usando a investigação padrão sem matriz.

1. Investigação padrão

Pode explicitar "mode": "standard". subject_type é opcional (cpf ou cnpj), inferido e validado contra o documento. kind é basic (padrão) ou advanced; context, até 2.000 caracteres, é permitido neste modo. O contrato anterior e sua idempotência continuam válidos.

2. Investigação modular

Ao incluir apenas "lawsuits": {"filters": {"categories": ["criminal"]}}, o gerador consulta somente processos criminais, sem expandir conexões. Adicione somente as chaves desejadas; um objeto vazio habilita um módulo sem filtros. Não use booleanos nem enabled. Processos, redes sociais e protestos são consultados para o documento principal. O grau controla apenas a expansão do módulo connections; não solicita esses outros módulos para cada conexão. A seleção de processos aceita até 100 números CNJ, formatados ou com 20 dígitos, vinculados ao documento consultado. Não é uma consulta livre por número. Processos são paginados até 500 registros da fonte. Se houver mais dados, o relatório informa o limite e coverage.status será partial. Falhas de fonte não viram resultado vazio ou baixo risco. O modo modular não executa o pipeline adaptativo padrão. kind mantém a política de cobrança existente e não acrescenta módulos omitidos.

3. Relatório com dados fornecidos

document é opcional. Se informado, deve ser CPF/CNPJ válido e é usado para identificação e políticas de supressão; não dispara pesquisa. Sem documento, subject_type deve ser omitido e a resposta retorna null. Cada seção precisa de text, items ou ambos. items é uma lista de objetos JSON com chaves livres; objetos e listas aninhados são apresentados como conteúdo estruturado. O gerador preserva os dados e textos enviados como conteúdo literal; HTML/Markdown não executam instruções nem carregam imagens externas. O relatório identifica sua origem como dados fornecidos, sem afirmar que houve verificação ou investigação. A cobertura completa significa que o conteúdo enviado foi estruturado.

Matriz de risco opcional

Adicione risk_matrix em qualquer um dos três modos, com a flag personalizada habilitada. A classificação é determinística, baseada nas regras enviadas. A versão identifica a política usada; a API não inventa uma matriz nem calcula risco quando ela não é enviada. Exemplo para os dados fornecidos acima:
path usa pontos para acessar chaves e [] para percorrer listas. Não aceita expressões, scripts, índices ou filtros de JSONPath. Raízes disponíveis: Uma regra corresponde se qualquer valor encontrado satisfizer a condição. Cada regra adiciona seus pontos uma única vez, mesmo com várias correspondências. A soma é limitada a 100. score < medium_min gera low (baixo); medium_min <= score < high_min gera medium (médio); score >= high_min gera high (alto). required é true por padrão. Se uma regra obrigatória não encontrar valor não nulo (ou valor numérico para operadores numéricos), retorna insufficient_data com score/level nulos. Use required: false para campos opcionais e testes de presença que possam faltar. Uma coleção vazia não é evidência de baixo risco para uma regra obrigatória aplicada aos seus itens; para contagens use um campo numérico como modules.lawsuits.source_total. Dados parciais do coletor também impedem classificação, mesmo que algumas regras correspondam. No GET após a conclusão, a resposta inclui:
Esse objeto também está em result.risk_classification e numa seção do relatório/PDF. Não está disponível enquanto a geração está pendente. insufficient_data descreve a classificação; o status do dossiê e coverage descrevem a geração do documento.

Validação, idempotência e retry

Envie Idempotency-Key no POST. Repetir a mesma chave e o mesmo conteúdo retorna o aceite anterior; mudar modo, módulos, dados ou matriz com a mesma chave retorna 409. Use outra chave para uma nova geração. POST /dossies/{dossie_id}/retry, com uma nova chave de idempotência, reutiliza a configuração original inteira, incluindo dados e matriz, e verifica novamente permissões/saldo. O retry não altera o conteúdo do dossiê.
  • O corpo validado aceita até 256 KiB de JSON serializado e 20 níveis de objetos/listas.
  • Dados fornecidos: 1–50 seções com IDs únicos, até 500 itens por seção, títulos até 200 caracteres e textos/resumo até 20.000 caracteres.
  • Matriz: 1–100 regras com IDs únicos, score inteiro 0–100; 1 <= medium_min < high_min <= 100.
  • Selecione pelo menos um módulo. Campos desconhecidos, combinações de modos (modules em provided_data, data em modular) e context nos modos personalizados são rejeitados com 400 validation_error.
  • A cobrança, os artefatos, a reconciliação assíncrona e o isolamento entre contas usam a política pública existente. O erro de flag/validação acontece antes da aceitação/cobrança.
A referência de POST /dossies nesta seção inclui os schemas de entrada e exemplos dos três modos. As condições entre campos (limiares, unicidade e obrigatoriedade de operandos) também são verificadas pela API. Consulte Erros da Plataforma para tratar as respostas de falha.