Mermaid fluxo api lote
sequenceDiagram
autonumber
participant Usuário
participant API
activate Usuário
Usuário->>+API: verificaAtualizacoes
API-->>+Usuário: retorna lista de hashes de capítulos ou fundamentos legais para o dia atual
Usuário->>+API: obterHash
API-->>+Usuário: retorna mensagem informando que o hash será gerado em instantes
Usuário->>+API: obterHash
API-->>+Usuário: retorna hash do arquivo solicitado
Usuário->>+API: realizar download
API-->>+Usuário: retorna arquivo solicitado
sequenceDiagram
participant U as Usuário Importador
participant API as API
%% NCM - Capitulos
U->>API: GET /ncm-capitulos/hashes
API-->>U: Lista de capítulos + hashes
loop Para cada capítulo desejado
U->>API: GET /ncm-capitulos/{capitulo}/tratamentos-tributarios?data&hash
API-->>U: Arquivo do capítulo
end
%% Nomenclaturas Alternativas
U->>API: GET /fundamentos-legais/nomenclaturas-alternativas/hashes
API-->>U: Lista de fundamentos legais + hashes
loop Para cada fundamento legal desejado
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/tratamentos-tributarios?data&hash
API-->>U: Arquivo de nomenclatura alternativa
end
sequenceDiagram
participant U as Usuário Importador
participant API as API
participant LOCAL as Base Local
%% Verificar hashes
U->>API: GET /ncm-capitulos/hashes
API-->>U: Lista de capítulos + hashes
%% Comparação
U->>LOCAL: Comparar hashes recebidos vs armazenados
alt Existe capítulo com hash diferente
loop Para cada capítulo desatualizado
U->>API: GET /ncm-capitulos/{capitulo}/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base local + novo hash
end
else Nenhuma atualização
U->>LOCAL: Nenhuma ação necessária
end
sequenceDiagram
participant U as Usuário Importador
participant API as API
participant LOCAL as Base Local
%% Verificar hashes
U->>API: GET /fundamentos-legais/nomenclaturas-alternativas/hashes
API-->>U: Lista de fundamentos legais + hashes
%% Comparação
U->>LOCAL: Comparar hashes recebidos vs armazenados
alt Existe fundamento legal com hash diferente
loop Para cada fundamento legal desatualizado
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base local + novo hash
end
else Nenhuma atualização
U->>LOCAL: Nenhuma ação necessária
end
sequenceDiagram
participant U as Usuário Importador
participant API as API
participant LOCAL as Base Local
%% Execução inicial
U->>API: Executar processo DUIMP
API-->>U: Erro de parâmetros (possível TTCE desatualizado)
%% Atualização NCM (3.2)
U->>API: GET /ncm-capitulos/hashes
API-->>U: Lista de capítulos + hashes
U->>LOCAL: Comparar hashes NCM
alt Existe capítulo desatualizado
loop Para cada capítulo desatualizado
U->>API: GET /ncm-capitulos/{capitulo}/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base NCM
end
end
%% Atualização Nomenclaturas Alternativas (3.3)
U->>API: GET /fundamentos-legais/nomenclaturas-alternativas/hashes
API-->>U: Lista de fundamentos legais + hashes
U->>LOCAL: Comparar hashes nomenclaturas
alt Existe fundamento legal desatualizado
loop Para cada fundamento legal desatualizado
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base nomenclaturas
end
end
%% Reprocessamento
U->>LOCAL: Corrigir dados com base atualizada
U->>API: Reexecutar processo DUIMP
API-->>U: Sucesso
sequenceDiagram
participant U as Usuário Importador
participant API as API
participant LOCAL as Base Local
%% Execução inicial
U->>API: Executar processo DUIMP
API-->>U: Erro de parâmetros (possível TTCE desatualizado)
%% Verificação inicial NCM
U->>API: GET /ncm-capitulos/hashes
API-->>U: Lista de capítulos + hashes (status G)
alt Arquivos em geração (status G)
U->>U: Aguardar alguns minutos
U->>API: GET /ncm-capitulos/hashes (retry)
API-->>U: Lista atualizada (status concluído)
end
%% Comparação NCM
U->>LOCAL: Comparar hashes NCM
alt Existe capítulo desatualizado
loop Para cada capítulo desatualizado
U->>API: GET /ncm-capitulos/{capitulo}/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base NCM
end
end
%% Nomenclaturas Alternativas
U->>API: GET /fundamentos-legais/nomenclaturas-alternativas/hashes
API-->>U: Lista de fundamentos legais + hashes
U->>LOCAL: Comparar hashes nomenclaturas
alt Existe fundamento legal desatualizado
loop Para cada fundamento legal desatualizado
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/tratamentos-tributarios?data&hash
API-->>U: Arquivo atualizado
U->>LOCAL: Atualizar base nomenclaturas
end
end
%% Reprocessamento
U->>LOCAL: Corrigir dados com base atualizada
U->>API: Reexecutar processo DUIMP
API-->>U: Sucesso
sequenceDiagram
participant U as Usuário Importador
participant API as API
%% Solicitação de hash
U->>API: GET /ncm-capitulos/{capitulo}/hash?data
API-->>U: Resposta inicial
alt Arquivo já disponível
API-->>U: Retorna hash do arquivo
else Arquivo ainda não disponível
API-->>U: Mensagem: arquivo em geração
U->>U: Aguardar alguns instantes
U->>API: GET /ncm-capitulos/{capitulo}/hash?data (retry)
API-->>U: Retorna hash do arquivo
end
%% Download do arquivo
U->>API: GET /ncm-capitulos/{capitulo}/tratamentos-tributarios?data&hash
API-->>U: Arquivo solicitado
sequenceDiagram
participant U as Usuário Importador
participant API as API
%% Solicitação de hash
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/hash?data
API-->>U: Resposta inicial
alt Arquivo já disponível
API-->>U: Retorna hash do arquivo
else Arquivo ainda não disponível
API-->>U: Mensagem: arquivo em geração
U->>U: Aguardar alguns instantes
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/hash?data (retry)
API-->>U: Retorna hash do arquivo
end
%% Download do arquivo
U->>API: GET /fundamentos-legais/{codigoFundamentoLegal}/nomenclaturas-alternativas/tratamentos-tributarios?data&hash
API-->>U: Arquivo solicitado