Documentação da API

Guia completo para utilizar e testar os endpoints da aplicação.

Endpoints de Autenticação e Senha

Autenticar Cliente e Obter Dados

POST /api/authenticate

Autentica um cliente usando username e senha e retorna seus dados básicos, além de um token para futuras requisições.

Exemplo (Body)

{
  "username": "meu_username",
  "password": "minha_senha"
}

Teste Interativo

Solicitar Redefinição de Senha

POST /api/clients/forgot-password

Inicia o fluxo de recuperação de senha. Se o e-mail existir, um link com um token de redefinição será enviado.

Exemplo (Body)

{
  "email": "cliente.esquecido@email.com"
}

Teste Interativo

Redefinir Senha com Token

POST /api/clients/reset-password

Conclui o fluxo de recuperação de senha usando o token recebido por e-mail e uma nova senha.

Exemplo (Body)

{
  "token": "seu-token-recebido-por-email",
  "newPassword": "uma-nova-senha-forte"
}

Teste Interativo

Alterar Senha de um Cliente (Admin)

POST /api/clients/{id}/change-password

Permite que um administrador altere a senha de um cliente específico. Requer autenticação via API Key.

Exemplo (Body)

{
  "newPassword": "nova-senha-definida-pelo-admin"
}

Teste Interativo

Endpoints de Clientes

Registrar Novo Cliente

POST /api/clients/register

Cria um novo cliente, salva as respostas do questionário e uma assinatura de teste gratuito com 60 minutos.

Exemplos de Requisição (Body)

Pessoa Física (CPF):

{
  "username": "novo_cliente_pf", "password": "123", "name": "Pessoa Física",
  "email": "pf@email.com", "phone": "11987654321", "isCompany": false, "cpf": "123.456.789-00",
  "intensaoUso": "Pessoal", "profissao": "Desenvolvedor", "areaAtuacao": "Tecnologia"
}

Pessoa Jurídica (CNPJ):

{
  "username": "empresa_pj", "password": "123", "name": "Nome Fantasia", "email": "pj@email.com",
  "phone": "1140028922", "isCompany": true, "cnpj": "12.345.678/0001-99", "corporateName": "Razão Social",
  "responsibleName": "Responsável", "responsibleEmail": "responsavel@empresa.com",
  "areaAtuacao": "Saúde", "faturamento": "1-5 Milhões", "dores": "Gestão de documentos"
}

Teste Interativo

Upgrade de Assinatura

POST /api/clients/{id}/upgrade-subscription

Atualiza a assinatura de um cliente para um novo plano pré-definido. Requer autenticação via API Key.

Exemplo (Body)

{ "planId": 2 }

Teste Interativo

Criar Assinatura Personalizada

POST /api/clients/{id}/personalized-subscription

Cria ou atualiza uma assinatura com serviços e minutos selecionados pelo cliente. O preço é calculado dinamicamente. Requer autenticação via API Key.

Exemplo (Body)

{
  "serviceIds": [1, 2],
  "minutes": 100
}

Teste Interativo

Analisar Áudio

POST /api/clients/{clientId}/analyze

Envia um áudio para transcrição e análise de IA. Debita os minutos da assinatura do cliente. Requer autenticação via API Key.

Exemplo (Body)

{
  "audioUrl": "URL_DO_SEU_AUDIO.mp3",
  "selectedTopics": ["analise_sentimento", "topicos"]
}

Teste Interativo

Listar Transcrições de um Cliente

GET /api/clients/{clientId}/transcriptions

Retorna uma lista de todas as transcrições de um cliente específico. Requer autenticação via API Key.

Teste Interativo


Endpoints de Administração

Listar Todos os Clientes (Admin)

GET /api/admin/clients

Retorna uma lista de todos os clientes do sistema. Requer autenticação via API Key com permissão de SUPERADMIN.

Teste Interativo

Listar Todas as Transcrições (Admin)

GET /api/admin/transcriptions

Retorna uma lista de todas as transcrições de todos os clientes. Requer autenticação via API Key com permissão de SUPERADMIN.

Teste Interativo

Listar Credenciais (Admin)

GET /api/admin/credentials

Retorna todas as credenciais do sistema. Requer autenticação via API Key com permissão de SUPERADMIN.

Teste Interativo

Adicionar Credencial (Admin)

POST /api/admin/credentials/add

Adiciona uma nova credencial ao sistema. Requer autenticação via API Key com permissão de SUPERADMIN.

Exemplo (Body)

{
  "key": "nome_da_chave",
  "value": "valor_da_chave_secreta"
}

Teste Interativo

Atualizar Credenciais (Admin)

POST /api/admin/credentials/update

Atualiza o valor de uma ou mais credenciais existentes. Requer autenticação via API Key com permissão de SUPERADMIN.

Exemplo (Body)

{
  "chave_existente": "novo_valor_secreto",
  "outra_chave": "outro_novo_valor"
}

Teste Interativo

Listar Usuários do Sistema (Admin)

GET /api/admin/system-users

Retorna uma lista de todos os usuários do sistema. Requer autenticação via API Key com permissão de SUPERADMIN.

Teste Interativo

Adicionar Usuário do Sistema (Admin)

POST /api/admin/system-users/add

Adiciona um novo usuário ao sistema. Requer autenticação via API Key com permissão de SUPERADMIN.

Exemplo (Body)

{
  "username": "novo-usuario",
  "password": "senha-segura",
  "role": "ADMIN"
}

Teste Interativo

Atualizar Usuário do Sistema (Admin)

PUT /api/admin/system-users/{id}

Atualiza um usuário existente. Requer autenticação via API Key com permissão de SUPERADMIN.

Exemplo (Body)

{
  "username": "novo-nome",
  "password": "nova-senha",
  "role": "SUPERADMIN"
}

Teste Interativo

Deletar Usuário do Sistema (Admin)

DELETE /api/admin/system-users/{id}

Deleta um usuário existente. Requer autenticação via API Key com permissão de SUPERADMIN.

Teste Interativo