Skip to main content

📋 Documentação da API - Detalhamento de Proposta por Número

Endpoint

GET /api/gestor/v1/propostas/numero/:proposeNumber

Descrição

Retorna o detalhamento completo de uma proposta específica através do seu número identificador. Esta rota consolida informações do plano contratado, beneficiários (titular e dependentes), anexos, arquivos gerados, pendências, contraprestação pecuniária, serviços adicionais, desistências/reaberturas e dados de consolidação. É uma rota essencial para visualização e gerenciamento completo de propostas.


🔐 Autenticação

Esta rota requer autenticação via token JWT e api-key.

Headers obrigatórios:

api-key: <sua-api-key>
Authorization: Bearer <seu-token-jwt>

🌐 Hostnames

DEV:

  • VPN: 100.113.139.94:3002
  • PUBLIC: 136.116.58.209:3002

URL Completa de Exemplo (DEV):

http://136.116.58.209:3002/api/gestor/v1/propostas/numero/2026010001

📥 Parâmetros

Path Parameters

ParâmetroTipoObrigatórioDescriçãoExemplo
proposeNumbernumberSimNúmero identificador único da proposta1315412

Query Parameters

ParâmetroTipoObrigatórioDescriçãoExemplo
userIdnumberNãoID do usuário solicitante (usado para validar permissões de visualização de arquivos sensíveis como DS e Auditoria)19
onlyFilesnumberNãoSe 1, retorna apenas os arquivos gerados. Se 0 ou omitido, retorna dados completos0 ou 1

📤 Resposta de Sucesso

Status Code: 200 OK

Estrutura da Resposta

{
"timestamp": "02/02/2026 22:35:53",
"dadosSincronizados": false,
"dadosCustumer": {
"cliente": "LUCAS PARREIRA MENDES",
"email": "[email protected]",
"telefone": "(34) 99689-2252",
"tipoClinte": "Pessoa Jurídica"
},
"informacoesPlano": {
"nome": "PLENO ON EMPRESARIAL ENFERMARIA",
"endereco": {
"cep": "38405-194",
"estado": "MG",
"cidade": "Uberlândia",
"bairro": "Custódio Pereira",
"logradouro": "Rua Ângelo Zoccolli",
"numero": "580",
"complemento": "",
"anexos": [
{
"nome": "Comprovante de Endereço",
"anexo": ""
}
]
},
"anexosNovo": {
"contratante": [
{
"nomeArquivo": "cpf",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
},
{
"nomeArquivo": "comprovante-endereco",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
}
],
"empresa": [
{
"nomeArquivo": "contrato-social",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
},
{
"nomeArquivo": "rg-adm",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
}
],
"dependentes": [
{
"nomeDependente": "LUCAS PARREIRA MENDES",
"cpf": "931.827.166-20",
"nomeArquivo": "cpf",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
},
{
"nomeDependente": "CARLA VIEIRA MOTA PARREIRA",
"cpf": "618.015.851-72",
"nomeArquivo": "certidao-casamento",
"url": "https://somosuni.s3.sa-east-1.amazonaws.com/..."
}
]
},
"servicosAdicionaisCompleto": [],
"ans": "497676232",
"tabelaVariacao": 2,
"tabelaVariacaoNome": "Tabela Pessoa Jurídica",
"margemVenda": 0,
"valorBase": 169.51,
"servicosAdicionais": [],
"desconto": 0,
"valorTotal": 669.11,
"valorComDesconto": 1506.35,
"valorComAdicionais": 720.71,
"descontosServicosAdicionaisFull": [],
"descontosProgressivosGlobaisAplicados": [],
"descontosProgressivosPlanoAplicados": [],
"valorAdicionais": 51.6,
"responsaveisLegaisAdicionais": [],
"grupoEconomico": "",
"followUpInfo": {
"type": "pj",
"leadId": "cf9fab22-1a15-4f22-a9c6-50c47798a6ac",
"shortLongId": "CF9FAB",
"sourceLead": "custom-funil",
"etapa_kanban": 3
},
"numeroPropostasFilhas": [],
"tipoContratacao": "Pessoa Jurídica",
"acomodacao": "Enfermaria",
"abrangenciaGeografica": "Municipal",
"areaCobertura": [
"Ambulatorial + Hospitalar com obstetrícia"
]
},
"beneficiarios": [
{
"nome": "LUCAS PARREIRA MENDES",
"cpf": "931.827.166-20",
"parentesco": "Titular",
"prc": "PRC 10",
"cns": "706305721904179",
"rg": "53.685.731-3",
"tipoVenda": {
"id": 1,
"titulo": "PLENO ON ENFERMARIA CA",
"status": 1,
"arquivos": [...],
"gestor_user_Id": 1,
"tipo_pessoa": "PJ",
"id_plano_especifico": 10,
"com_adicionais": 1
},
"dataNascimento": "04/06/1973",
"sexo": "masculino",
"servicosAdicionais": [3, 4],
"servicosAdicionaisCompleto": [
{
"id": 3,
"label": "UTI MÓVEL TERRESTRE",
"descricao": "AMBULÂNCIA",
"valor": 9,
"status": 1,
"gestor_user_Id": 24,
"criado_em": "2025-12-30T23:06:05.000Z",
"tipo": 0,
"url_modelo": "",
"pre_setado": 1,
"ordem": 1,
"descontosAplicados": []
}
],
"orgaoEmissor": "SSP",
"estadoEmissor": "SP",
"cidadeNascimento": "Uberlândia",
"estadoNascimento": "MG",
"naturalidade": "Uberlândia-undefined",
"nomeMae": "MARIA HELENA PARREIRA",
"estadoCivil": "casado",
"escolaridade": "3 Grau",
"profissao": "SOCIO",
"tipoVinculo": "colaborador",
"vinculoColaborador": null,
"anexos": [
{
"nome": "RG",
"hash": ""
},
{
"nome": "CPF",
"hash": ""
},
{
"nome": "Anamnese",
"anexo": ""
}
]
}
],
"endereco": {
"endereco": "Rua Ângelo Zoccolli, 580, Custódio Pereira, Uberlândia, MG"
},
"generatedFiles": [
{
"id": 1724,
"id_arquivo_tipo_venda": 10,
"cpf": "931.827.166-20",
"updateAt": "2026-01-07T19:28:25.000Z",
"url_arquivo_gerado": "https://somosuni.s3.sa-east-1.amazonaws.com/...",
"numero_proposta": 268279,
"modelOriginalFileTitle": "MANUAL DE ORIENTAÇÃO",
"order": 1
},
{
"cpf": "618.015.851-72",
"modelOriginalFileTitle": "Decl. anexada 618.015.851-72",
"url_arquivo_gerado": "https://somosuni.s3.sa-east-1.amazonaws.com/...",
"extension": "pdf"
}
],
"pendenciesFull": [],
"contraprestacaoPecuniaria": [
{
"nome": "LUCAS PARREIRA MENDES",
"valorCotado": 565.91,
"dataNascimento": "04/06/1973",
"desconto": 0,
"valorComDesconto": 565.91,
"faixaEtaria": "49 a 53 anos"
}
],
"anexosNew": {
"contratante": [...],
"empresa": [...],
"dependentes": [...]
},
"anexos": [
{
"nome": "Anexo Proposta",
"link": ""
},
{
"nome": "Anexo Anamnese",
"link": ""
}
],
"status": 1,
"desistenciasReaberturasProposta": [],
"propostaConsolidada": 0,
"nomeUserPropostaConsolidada": null,
"permissionToShowDsAndAuditFile": 1,
"signedFileUrl": null,
"userIdUploadedSignedFile": null,
"dsFrontUrl": "https://ds-dev.somosuni.com.br/?tenant=384577",
"empresa": {
"cnpj": "10.368.691/0001-34",
"emailEmpresa": "[email protected]",
"dataAbertura": "19/09/2008",
"naturezaJuridica": "associação privada",
"telefoneComercial": "(34) 99689-2252",
"razaoSocial": "IGREJA PRESBITERIANA SETOR LESTE",
"nomeFantasia": "",
"atividadePrincipal": "Atividades de organizações religiosas ou filosóficas",
"cnae": "9491000",
"porteEmpresa": "Micro Empresa",
"inscricaoMunicipal": "",
"inscricaoEstadual": "",
"endereco": {
"cep": "38405-194",
"estado": "MG",
"cidade": "Uberlândia",
"bairro": "Custódio Pereira",
"logradouro": "Rua Ângelo Zoccolli",
"numero": "580",
"complemento": ""
},
"comprovantes": {
"contrato-social": [
"https://somosuni.s3.sa-east-1.amazonaws.com/..."
],
"rg-adm": [
"https://somosuni.s3.sa-east-1.amazonaws.com/..."
]
}
}
}

📊 Campos Detalhados da Resposta

Campos Principais

CampoTipoDescrição
timestampstringData e hora de criação da proposta (formato DD/MM/YYYY HH:mm:ss)
statusnumberStatus da proposta (0 = inativa, 1 = ativa)
propostaConsolidadanumberIndica se a proposta foi consolidada (0 = não, 1 = sim)
nomeUserPropostaConsolidadastring | nullNome do usuário que consolidou a proposta
signedFileUrlstring | nullURL do arquivo de proposta assinada (se houver)
userIdUploadedSignedFilenumber | nullID do usuário que fez upload da proposta assinada

dadosCustumer (Objeto)

Informações básicas do cliente/contratante.

CampoTipoDescrição
clientestringNome completo do cliente
emailstringE-mail do cliente
telefonestringTelefone de contato
tipoClintestringTipo de cliente ("Pessoa Física" ou "Pessoa Jurídica")

informacoesPlano (Objeto)

Informações detalhadas do plano contratado.

CampoTipoDescrição
nomestringNome comercial do plano
ansstringRegistro ANS do plano
tabelaVariacaostringID da tabela de variação de preços
tabelaVariacaoNomestringNome da tabela de variação
margemVendanumberMargem de venda aplicada (%)
valorBasenumberValor base do plano
servicosAdicionaisarrayIDs dos serviços adicionais contratados
servicosAdicionaisCompletoarrayDetalhes completos dos serviços adicionais (objetos com id, nome, valor)
descontonumberPercentual de desconto aplicado
valorTotalnumberValor total sem desconto
valorComDescontonumberValor total com desconto aplicado
valorComAdicionaisnumberValor incluindo serviços adicionais
valorAdicionaisnumberValor total apenas dos adicionais
descontosServicosAdicionaisFullarrayLista de descontos aplicados aos serviços adicionais
descontosProgressivosGlobaisAplicadosarrayDescontos progressivos globais aplicados
descontosProgressivosPlanoAplicadosarrayDescontos progressivos do plano aplicados
responsaveisLegaisAdicionaisarrayResponsáveis legais adicionais (para dependentes menores)
grupoEconomicostringNome do grupo econômico/empresa
tipoContratacaostringTipo de contratação ("Individual", "Coletivo Empresarial", "Coletivo por Adesão")
acomodacaostringTipo de acomodação ("Enfermaria", "Apartamento")
abrangenciaGeograficastringAbrangência geográfica do plano
areaCoberturaarrayArray com descrições das áreas de cobertura
followUpInfoobjectInformações do lead vinculado à proposta
numeroPropostasFilhasarrayPropostas multiplanos associadas
enderecoobjectEndereço completo do contratante
anexosNovoobjectAnexos organizados por categoria (empresa, contratante, dependentes)
dsFrontUrlstringURL do frontend de Declaração de Saúde

anexosNovo (Sub-objeto)

Anexos da proposta organizados por categoria. Cada categoria contém um array de objetos com os seguintes campos:

Para contratante e empresa:

CampoTipoDescrição
nomeArquivostringNome/slug do tipo de arquivo (ex: "cpf", "rg", "contrato-social")
urlstringURL assinada do arquivo (temporária)

Para dependentes:

CampoTipoDescrição
nomeDependentestringNome completo do dependente
cpfstringCPF do dependente (formatado)
nomeArquivostringNome/slug do tipo de arquivo
urlstringURL assinada do arquivo (temporária)

followUpInfo (Sub-objeto)

CampoTipoDescrição
typestringTipo da proposta ("pf" ou "pj")
leadIdstringLong ID do lead vinculado (UUID)
shortLongIdstringVersão curta do long_id (6 primeiros caracteres)
sourceLeadstringOrigem do lead
etapa_kanbannumberEtapa atual do lead no kanban

beneficiarios (Array)

Lista de todos os beneficiários (dependentes) da proposta. O titular não está incluído neste array.

CampoTipoDescrição
nomestringNome completo do beneficiário
cpfstringCPF do beneficiário
rgstringRG do beneficiário
dataNascimentostringData de nascimento (formato DD/MM/YYYY)
sexostringSexo ("masculino" ou "feminino")
parentescostringParentesco com o titular
prcstring | nullNúmero do PRC (Prontuário)
cnsstring | nullNúmero do Cartão Nacional de Saúde
tipoVendaobjectObjeto com detalhes do tipo de venda (id, titulo, status, arquivos, gestor_user_Id, tipo_pessoa, id_plano_especifico, com_adicionais)
servicosAdicionaisarrayIDs dos serviços adicionais do beneficiário
servicosAdicionaisCompletoarrayDetalhes completos dos serviços (com descontos aplicados)
orgaoEmissorstringÓrgão emissor do RG
estadoEmissorstringUF de emissão do RG
cidadeNascimentostringCidade de nascimento
estadoNascimentostringEstado de nascimento
naturalidadestringNaturalidade completa (Cidade-UF)
nomeMaestringNome completo da mãe
estadoCivilstringEstado civil
habitosobject | nullDados de anamnese/hábitos
escolaridadestringNível de escolaridade
profissaostringProfissão
tipoVinculostringTipo de vínculo ("colaborador" ou "dependente")
vinculoColaboradorobject | nullDados do vínculo empregatício
anexosarrayArray de anexos (RG, CPF, Anamnese)

generatedFiles (Array)

Lista de arquivos gerados automaticamente para a proposta (fichas, declarações, etc.).

CampoTipoDescrição
idnumberID do arquivo gerado (pode não existir para arquivos anexados manualmente)
cpfstringCPF do beneficiário relacionado ao arquivo
numero_propostanumberNúmero da proposta
id_arquivo_tipo_vendanumberID do modelo de arquivo base
url_arquivo_geradostringURL assinada do arquivo (válida temporariamente)
updateAtstringData/hora de atualização do arquivo (ISO 8601)
modelOriginalFileTitlestringNome/título do modelo original
ordernumberOrdem de exibição do arquivo
extensionstringExtensão do arquivo ("pdf", "docx", etc.)

Tipos especiais de arquivos incluídos:

  • Declarações anexadas externamente: Com título "Decl. anexada [CPF]"
  • Auditorias anexadas: Com título "Auditoria anexada [CPF]"
  • CPT Externas: Com título "CPT Ext. [CPF]"
  • Auditorias geradas: Com título "Auditoria. gerada [CPF]"
  • Declarações geradas internamente: Com título "Decl. gerada [CPF]"

pendenciesFull (Array)

Lista completa de pendências da proposta (resolvidas e não resolvidas).

CampoTipoDescrição
idnumberID da pendência
numero_propostanumberNúmero da proposta
tipo_beneficiariostringTipo ("titular", "dependente", "empresa")
cpf_beneficiariostringCPF do beneficiário
cnpj_empresastring | nullCNPJ da empresa (se aplicável)
descricaostringDescrição da pendência
statusnumberStatus (0 = criada, 1 = em análise, 2 = resolvida)
annexesarrayAnexos enviados para resolver a pendência
criado_emstringData/hora de criação (ISO 8601)

contraprestacaoPecuniaria (Array)

Lista de valores de contraprestação pecuniária por beneficiário.

CampoTipoDescrição
nomestringNome do beneficiário
valorCotadonumberValor cotado sem desconto
dataNascimentostringData de nascimento
descontonumberPercentual de desconto aplicado
valorComDescontonumberValor final com desconto
faixaEtariastringFaixa etária aplicada (ex: "30 a 33 anos")

desistenciasReaberturasProposta (Array)

Lista de motivos de cancelamento ou reabertura da proposta (não do lead).

CampoTipoDescrição
idnumberID do motivo
id_longo_leadstringLong ID do lead vinculado
id_tipo_motivonumberID do tipo de motivo
titulostringTítulo/descrição do motivo
gestor_user_IdnumberID do usuário responsável
numero_propostanumberNúmero da proposta
criado_emstringData/hora de registro (ISO 8601)
typeMotivestringTipo do motivo ("lead" ou "propose")

empresa (Objeto) - Opcional

Dados da empresa contratante (apenas para propostas PJ).

CampoTipoDescrição
cnpjstringCNPJ formatado
emailEmpresastringE-mail corporativo da empresa
dataAberturastringData de abertura da empresa (formato DD/MM/YYYY)
naturezaJuridicastringNatureza jurídica da empresa
telefoneComercialstringTelefone comercial
razaoSocialstringRazão social da empresa
nomeFantasiastringNome fantasia da empresa
atividadePrincipalstringDescrição da atividade principal
cnaestringCódigo CNAE
porteEmpresastringPorte da empresa ("Micro Empresa", "Pequena Empresa", etc.)
inscricaoMunicipalstringInscrição municipal
inscricaoEstadualstringInscrição estadual
enderecoobjectEndereço da empresa (cep, estado, cidade, bairro, logradouro, numero, complemento)
comprovantesobjectComprovantes organizados por tipo de documento

comprovantes (Sub-objeto)

Comprovantes/anexos da empresa organizados por categoria:

CampoTipoDescrição
contrato-socialarrayURLs dos contratos sociais (podem ser múltiplos)
rg-admarrayURLs dos RGs dos administradores
insc-mun-alvaraarrayURLs de inscrições municipais e alvarás
dctfarrayURLs de DCTFs
outrosarrayURLs de outros documentos

❌ Respostas de Erro

400 - Bad Request (Número da Proposta Obrigatório)

{
"status": "error",
"message": "Número da proposta é obrigatório"
}

400 - Bad Request (userId Inválido)

Retornado quando o userId informado é inválido ou não existe.

{
"status": "error",
"message": "userId inválido"
}

OU

{
"status": "error",
"message": "Usuário não encontrado"
}

400 - Bad Request (Proposta Não Encontrada)

{
"status": "error",
"message": "Proposta não encontrada"
}

400 - Bad Request (Tabela de Variação Não Encontrada)

{
"status": "error",
"message": "Tabela de variação não encontrada, para o plano escolhido"
}

400 - Bad Request (Erro ao Consultar Auditorias)

{
"message": "Erro ao consultar auditorias (audit app)",
"error": "Descrição do erro"
}

500 - Internal Server Error

Retornado em caso de erro interno não tratado.

{
"error": "Internal server error",
"message": "Descrição do erro"
}

📊 Exemplos de Uso

Exemplo 1: Buscar detalhes completos de uma proposta

Request:

curl -X GET "http://136.116.58.209:3002/api/gestor/v1/propostas/numero/2026010001" \
-H "Authorization: Bearer seu-token-jwt" \
-H "api-key: sua-api-key"

Response:

{
"timestamp": "05/02/2026 14:30:45",
"dadosSincronizados": false,
"dadosCustumer": {
"cliente": "Maria Silva Santos",
"email": "[email protected]",
"telefone": "11999887766",
"tipoClinte": "Pessoa Física"
},
"informacoesPlano": {
"nome": "Plano Especial 450 E",
"ans": "384577",
"valorComDesconto": 1665.00
},
"beneficiarios": [...],
"status": 1
}

Exemplo 2: Buscar proposta com validação de permissões do usuário

Request:

curl -X GET "http://136.116.58.209:3002/api/gestor/v1/propostas/numero/2026010001?userId=19" \
-H "Authorization: Bearer seu-token-jwt" \
-H "api-key: sua-api-key"

Response: Retorna dados completos com permissionToShowDsAndAuditFile indicando se o usuário pode visualizar arquivos sensíveis.

Exemplo 3: Buscar apenas arquivos gerados da proposta

Request:

curl -X GET "http://136.116.58.209:3002/api/gestor/v1/propostas/numero/2026010001?onlyFiles=1" \
-H "Authorization: Bearer seu-token-jwt" \
-H "api-key: sua-api-key"

Response:

[
{
"id": 1234,
"cpf": "12345678900",
"numero_proposta": 2026010001,
"url_arquivo_gerado": "https://...",
"modelOriginalFileTitle": "Ficha de Inscrição",
"order": 1,
"extension": "pdf"
}
]

🔄 Fluxo de Processamento

  1. Validação de Parâmetros: Verifica se proposeNumber foi fornecido
  2. Validação de Usuário (se userId fornecido):
    • Verifica se o usuário existe
    • Valida permissões individuais do usuário
    • Verifica permissões de departamento
    • Define se pode visualizar arquivos de DS e Auditoria
  3. Busca da Proposta: Consulta proposta pelo número
  4. Parsing de Dados: Extrai e formata dados do JSON da proposta
  5. Busca de Tipo de Venda: Obtém configuração de arquivos do tipo de venda
  6. Enriquecimento de Dados:
    • Busca tabela de variação de preços
    • Verifica se proposta foi consolidada
    • Busca serviços adicionais de proposta e beneficiários
    • Busca follow-up vinculado ao lead
    • Busca leads unificados para etapa do kanban
  7. Processamento de Anexos:
    • Reassina URLs de anexos antigos (S3/Azure)
    • Reassina URLs de anexos novos
    • Substitui anexos por versões de pendências resolvidas
  8. Arquivos Gerados:
    • Busca arquivos gerados automaticamente por tipo de venda
    • Reassina URLs dos arquivos
    • Adiciona arquivos de DS anexados externamente (se permissão)
    • Adiciona arquivos de auditoria (se permissão)
    • Adiciona arquivos de DS gerados internamente (se permissão)
    • Ordena arquivos por ordem de exibição
  9. Pendências: Busca todas as pendências da proposta
  10. Cálculo de Contraprestação:
    • Calcula valores com desconto
    • Determina faixa etária de cada beneficiário
  11. Desistências/Reaberturas: Busca motivos de cancelamento/reabertura
  12. Consolidação: Monta objeto final com todas as informações
  13. Resposta: Retorna dados completos ou apenas arquivos (se onlyFiles=1)

🔐 Segurança

  • ✅ Autenticação JWT obrigatória via middleware verificaToken
  • ✅ Validação de entrada de dados
  • ✅ Controle de permissões para arquivos sensíveis (DS e Auditoria):
    • Baseado em permissões individuais do usuário
    • Baseado em permissões de departamento
    • Apenas usuários com cargos de "diretoria", "supervisor" ou "profissional" têm acesso
    • Ou usuários em departamentos com permissão especial "verArquivosDsAuditoria"

⚡ Performance

Otimizações Implementadas

  • URLs de arquivos reassinadas com validação temporária (SAS/Pre-signed URLs)
  • Cache de dados de usuários para reduzir chamadas à API
  • Busca paralela de dados relacionados quando possível
  • Filtros em memória para evitar múltiplas queries

Pontos de Atenção

  • Reassinatura de URLs de arquivos pode adicionar latência (múltiplas chamadas S3/Azure)
  • Grande quantidade de beneficiários e arquivos aumenta tempo de resposta
  • Consultas a serviços externos (audit app) podem falhar ou ser lentas

Tempo Médio de Resposta

  • Proposta simples (PF, poucos anexos): 500-800ms
  • Proposta média (PJ, múltiplos beneficiários): 1-2s
  • Proposta complexa (muitos arquivos e beneficiários): 2-4s

🔧 Middlewares Aplicados

  1. verificaToken: Validação de token JWT para autenticação e identificação de tenant

📝 Notas Importantes

  1. URLs Assinadas: Todas as URLs de arquivos são reassinadas com tokens temporários de acesso (AWS S3 ou Azure Blob Storage)
  2. Permissões de Arquivos Sensíveis: Arquivos de DS e Auditoria só são retornados se:
    • O parâmetro userId for fornecido
    • O usuário tiver as permissões adequadas
  3. Substituição de Anexos: Se uma pendência foi resolvida com envio de novo anexo, o anexo original é substituído pela versão mais recente
  4. Arquivos Gerados: A lista inclui apenas a versão mais recente de cada tipo de arquivo por CPF
  5. Follow-up: Informações do lead vinculado são buscadas automaticamente
  6. Consolidação: Se a proposta foi consolidada, retorna o nome do usuário responsável
  7. Faixa Etária: Calculada automaticamente com base na data de nascimento e tabela de variação
  8. Serviços Adicionais: Descontos progressivos são calculados e aplicados automaticamente
  9. Responsividade: Para propostas com muitos arquivos, considere usar onlyFiles=1 para otimizar a consulta

📌 Versão da API

Versão: 1.0
Última Atualização: Fevereiro de 2026
Mantido por: Equipe de Desenvolvimento UNI API
Arquivo Controller: propostas.controller.js
Função: getDetalhesPropostaNumber