Leonardo.araujo (discussão | contribs)
Santos.paula (discussão | contribs)
 
(8 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 12: Linha 12:
== Requisitos Funcionais ==
== Requisitos Funcionais ==
<br>
<br>
• [RF001] Autenticar: O sistema deve autenticar o usuário corretamente.
• [RF001] Consultar data do último SIM Swap: A API permite que o consumidor consulte a data e hora do último evento de SIM Swap associado a uma linha móvel.  
<br>
<br>


• [RF002] Escolha de débito: O sistema permite ao usuário escolher qual método
• [RF002] Verificar se houve SIM Swap em um período passado: A API permite verificar se ocorreu SIM Swap dentro de um intervalo definido.
de débito a ser aplicado.
<br>
<br>


• [RF003] Proteção anti-fraudes: Identificação correta do usuário para evitar
• [RF003] Validar período máximo de verificação: O campo maxAge aceita valores entre 1 e 2400 horas e possui valor padrão de 240 horas quando não informado.
fraudes.
<br>
<br>


• [RF004] Serviços de localização: Determinar se o dispositivo móvel está em
• [RF004] Identificar número da linha via token ou payload: A API identifica o número da linha através do campo phoneNumber obrigatório no corpo da requisição.  
área específica.
<br>
<br>


• [RF005] Garantir a comunicação: Garantir canal correto entre dispositivo móvel
• [RF005] Retornar erros padronizados CAMARA: O sistema mapeia erros para Status Codes HTTP padrão e retorna uma estrutura JSON de erro contendo status, code e message.
e ISP.
<br>
<br>


• [RF006] Consulta de dados do assinante: Webservice aceita consultas formato
== Requisitos Não Funcionais ==
E.164 (MSISDN).
<br>
 
• [RNF001] Segurança e Autenticação: A API é protegida através de validação de headers de autenticação. Toda requisição deve conter os headers client_id e access_token.
<br>
 
• [RNF002] Padronização de formatos: Os números de telefone são aceitos e normalizados pelo sistema, removendo símbolos especiais como '+', de acordo com o padrão E.164.
<br>
<br>


• [RF007] Retornar histórico de SIM Swap: Retornar data da última alteração
• [RNF003] Observabilidade: A API registra todas as requisições e respostas através do componente LogGenerate. Cada requisição e resposta é logada com informações da operação (retrieve-date ou check), dados da requisição e dados da resposta.
ou booleano (swapped: true/false) nas últimas 24h.
<br>
<br>


• [RF008] Tratamento de exceções: Mapear erros HTTP (400, 404, 500) e retor-
• [RNF004] Extensibilidade: A estrutura de tratamento de erros é extensível, permitindo adicionar novos códigos de erro através do mapeamento de exceções personalizadas.
nar JSON com code e message.
<br>
<br>


== Requisitos Não Funcionais ==
== Regras de Negócio ==
<br>
<br>


• [RNF001] Garantir qualidade de comunicação: Latência média API-Database < 200ms em 95% das requisições.
• [RN001] Regra de identificação do número: A API requer obrigatoriamente o campo phoneNumber no corpo da requisição para identificar a linha móvel.
<br>
<br>


• [RNF002] Rapidez na resposta: Autenticação em menos de 1 segundo.
• [RN002] Limite regulatório de monitoramento: O campo maxAge na operação de check deve estar entre 1 e 2400 horas.
<br>
<br>


• [RNF003] Segurança: OAuth 2.0 (Client Credentials), JWT e HTTPS (TLS
• [RN003] Tratamento de dados indisponíveis: Quando a data do SIM Swap não puder ser fornecida porque o número não existe ou não foi encontrado no banco de dados SPS, a API retorna erro 404 SIM_SWAP.UNKNOWN_PHONE_NUMBER em vez de retornar null.
1.2+).
<br>
<br>


• [RNF004] Disponibilidade: 99% do tempo, 24 horas por dia.
• [RN004] – Definição de SIM Swap: São considerados SIM Swap eventos registrados na tabela do banco de dados SPS que indicam qualquer mudança na relação MSISDN <-> IMSI, incluindo trocas de SIM por perda ou dano, portabilidade numérica, multisim, nova ativação de SIM para um MSISDN previamente existente ou nova assinatura associada a um número reutilizado.
<br>
<br>


• [RNF005] Padronização: Seguir requisitos do Camara Project.
• [RN005] – Uso para prevenção a fraude: A API é destinada a ser utilizada para avaliação de risco em autenticação baseada em SMS, proteção contra Account Takeover (detectando trocas recentes de SIM) e validação de operações sensíveis como chamadas de call center e transações críticas.
<br>
<br>


• [RNF006] Logs: Registrar logs JSON (timestamp, endpoint, status). Mascarar PII.
• [RN006] – Serviço não aplicável: O serviço é aplicável a qualquer número de telefone que possua registros na tabela do banco de dados SPS. Se o número não possuir registros ou não existir no banco de dados, a API retorna erro 404 UNKNOWN_PHONE_NUMBER.
<br>


= Cronograma =
= Cronograma =
Linha 71: Linha 70:
!RF!!Descrição!! Início !! Tempo em dias !! Data Real entrega !! Maker !! %
!RF!!Descrição!! Início !! Tempo em dias !! Data Real entrega !! Maker !! %
|-  
|-  
|01||         ||       ||               ||                   ||       || 0%
|01||Construção da API em JAVA QUARKUS para conexão entre o SPS e APIs Open Gw (Sensedia)||15/12/2025||10 dias||06/01/2026||Paula Nunes e Lucas Lacerda|| 100%
|-
|02||        ||        ||              ||                  ||      ||  0%
|-
|-
|02||Ajustes no código da API conforme orientação do Marcus Valério e Marcos Devoti||07/01/2026||3 dias||12/01/2026||Lucas Lacerda|| 100%
|- 
|}
|}


Linha 95: Linha 94:
** Mensagens entre Sensedia, Algar e Brain para retomada da configuração dos conectores
** Mensagens entre Sensedia, Algar e Brain para retomada da configuração dos conectores
** Preencher RFs e cronograma neste link.
** Preencher RFs e cronograma neste link.
<br>
* 06/01/2025:
** Reunião de demonstração da API de conexão JAVA QUARKUS para Marcus Valério e Marcos Devoti..
<br>
<br>



Edição atual tal como às 14h42min de 19 de janeiro de 2026

Link do caso de uso: Open Gateway


Escopo



Requisitos


Requisitos Funcionais


• [RF001] Consultar data do último SIM Swap: A API permite que o consumidor consulte a data e hora do último evento de SIM Swap associado a uma linha móvel.

• [RF002] Verificar se houve SIM Swap em um período passado: A API permite verificar se ocorreu SIM Swap dentro de um intervalo definido.

• [RF003] Validar período máximo de verificação: O campo maxAge aceita valores entre 1 e 2400 horas e possui valor padrão de 240 horas quando não informado.

• [RF004] Identificar número da linha via token ou payload: A API identifica o número da linha através do campo phoneNumber obrigatório no corpo da requisição.

• [RF005] Retornar erros padronizados CAMARA: O sistema mapeia erros para Status Codes HTTP padrão e retorna uma estrutura JSON de erro contendo status, code e message.

Requisitos Não Funcionais


• [RNF001] Segurança e Autenticação: A API é protegida através de validação de headers de autenticação. Toda requisição deve conter os headers client_id e access_token.

• [RNF002] Padronização de formatos: Os números de telefone são aceitos e normalizados pelo sistema, removendo símbolos especiais como '+', de acordo com o padrão E.164.

• [RNF003] Observabilidade: A API registra todas as requisições e respostas através do componente LogGenerate. Cada requisição e resposta é logada com informações da operação (retrieve-date ou check), dados da requisição e dados da resposta.

• [RNF004] Extensibilidade: A estrutura de tratamento de erros é extensível, permitindo adicionar novos códigos de erro através do mapeamento de exceções personalizadas.

Regras de Negócio


• [RN001] Regra de identificação do número: A API requer obrigatoriamente o campo phoneNumber no corpo da requisição para identificar a linha móvel.

• [RN002] Limite regulatório de monitoramento: O campo maxAge na operação de check deve estar entre 1 e 2400 horas.

• [RN003] Tratamento de dados indisponíveis: Quando a data do SIM Swap não puder ser fornecida porque o número não existe ou não foi encontrado no banco de dados SPS, a API retorna erro 404 SIM_SWAP.UNKNOWN_PHONE_NUMBER em vez de retornar null.

• [RN004] – Definição de SIM Swap: São considerados SIM Swap eventos registrados na tabela do banco de dados SPS que indicam qualquer mudança na relação MSISDN <-> IMSI, incluindo trocas de SIM por perda ou dano, portabilidade numérica, multisim, nova ativação de SIM para um MSISDN previamente existente ou nova assinatura associada a um número reutilizado.

• [RN005] – Uso para prevenção a fraude: A API é destinada a ser utilizada para avaliação de risco em autenticação baseada em SMS, proteção contra Account Takeover (detectando trocas recentes de SIM) e validação de operações sensíveis como chamadas de call center e transações críticas.

• [RN006] – Serviço não aplicável: O serviço é aplicável a qualquer número de telefone que possua registros na tabela do banco de dados SPS. Se o número não possuir registros ou não existir no banco de dados, a API retorna erro 404 UNKNOWN_PHONE_NUMBER.

Cronograma


RF Descrição Início Tempo em dias Data Real entrega Maker %
01 Construção da API em JAVA QUARKUS para conexão entre o SPS e APIs Open Gw (Sensedia) 15/12/2025 10 dias 06/01/2026 Paula Nunes e Lucas Lacerda 100%
02 Ajustes no código da API conforme orientação do Marcus Valério e Marcos Devoti 07/01/2026 3 dias 12/01/2026 Lucas Lacerda 100%

Diagramas


Projeto


Plano de Testes


Ambiente


Histórico


  • 22/12/2025:
    • Mensagens entre Sensedia, Algar e Brain para retomada da configuração dos conectores
    • Preencher RFs e cronograma neste link.


  • 06/01/2025:
    • Reunião de demonstração da API de conexão JAVA QUARKUS para Marcus Valério e Marcos Devoti..


Equipe


  • Paula Nunes
  • Lucas Lacerda
  • Marcus Brunelli