Pular para o conteúdo principal
O BACEN entrega cada ordem judicial como um arquivo de remessa. A Mensageria recebe o arquivo pelo Lerian STA, registra as ordens e as libera uma de cada vez. O executor executa cada ordem no ledger Midaz e informa o resultado. Depois, a Mensageria escreve o arquivo de resposta e o envia ao BACEN pelo Lerian STA.

Fluxo da ordem


Fluxo de ordens do Lerian SISBAJUD

Entrada das ordens


Os eventos do Lerian STA são o único caminho pelo qual um arquivo de ordens entra na Mensageria. A Mensageria consome o tópico lerian.streaming.br-sta no consumer group br-sisbajud-sta-intake-v1. Ela mantém os eventos cujo produto de origem corresponde à sua configuração STA_SOURCE_PRODUCT e ignora os demais. Antes de baixar um arquivo, a Mensageria compara o tamanho do arquivo com STA_MAX_INBOUND_SIZE_BYTES. Depois do download, ela compara o digest SHA-256 do arquivo com o digest do evento. Uma divergência rejeita o arquivo. A Mensageria lê o ambiente, produção ou homologação, no cabeçalho do arquivo. O arquivo de remessa de bloqueio é texto de largura fixa em ISO-8859-1. O layout 2026 tem registros de 684 caracteres. O layout CNJ v1.11 tem registros de 410 caracteres. SISBAJUD_REMITTANCE_LAYOUTS lista os layouts que a Mensageria aceita. O padrão é v111,v2026. A Mensageria rejeita um arquivo em um layout que não está na lista.

Registro da ordem


A Mensageria transforma cada arquivo em ordens judiciais. Ela registra estes tipos de ordem:
  • BLOQUEIO (bloqueio)
  • DESBLOQUEIO (desbloqueio)
  • REQUISICAO_INFORMACAO (requisição de informação)
  • REITERACAO (reiteração)
  • NOTIFICACAO_RECEBIMENTO_TRANSFERENCIA (aviso de uma transferência judicial a receber, registro 08)
A Mensageria conclui uma ordem NOTIFICACAO_RECEBIMENTO_TRANSFERENCIA quando a registra. O executor não recebe aviso de execução para ela. Um arquivo de resposta de bloqueio responde a ela com o código 01 (Recebida). A Mensageria estaciona as ordens TRANSFERENCIA (transferência) e CANCELAMENTO (cancelamento), e algumas ordens DESBLOQUEIO. Ela também estaciona os pedidos de esclarecimento (registro 09) e as interrupções de um bloqueio permanente (registro 10). Uma ordem passa pelos status PENDING, PROCESSING, MONITORING, COMPLETED e FAILED. A Mensageria criptografa os campos sensíveis com uma chave de dados para cada operação. Uma chave de criptografia de chaves envolve essa chave de dados. O gerenciador de chaves é o HashiCorp Vault Transit ou o AWS KMS.

Bloqueio permanente

No layout 2026, cada registro de bloqueio traz um indicador de bloqueio permanente. O valor P ou D marca um bloqueio permanente, e D também traz uma data de prazo. Qualquer outro valor marca um bloqueio que não é permanente. No layout CNJ v1.11, essas posições são um espaçador, e a Mensageria as ignora.

Ordens estacionadas

A Mensageria não executa uma ordem TRANSFERENCIA nem uma ordem CANCELAMENTO. Ela estaciona a ordem para um procedimento manual. O executor não recebe aviso de execução para uma ordem estacionada, e nenhum arquivo de resposta responde a ela. Para um CANCELAMENTO estacionado, o bloqueio pode continuar no Midaz até que você o libere manualmente. A Mensageria também estaciona uma ordem DESBLOQUEIO quando não tem um registro utilizável do BLOQUEIO original, por exemplo um bloqueio de um sistema anterior. O dinheiro pode continuar bloqueado até que você o libere manualmente. A Mensageria estaciona um pedido de esclarecimento (registro 09) porque uma pessoa deve escrever a resposta. Responda ao juízo manualmente. A Mensageria estaciona a interrupção de um bloqueio permanente (registro 10). O executor mantém esse bloqueio permanente ativo, e novos créditos podem continuar bloqueados até que você pare o bloqueio manualmente. A Mensageria registra em log cada ordem estacionada com o seu ID. A métrica sisbajud_parked_open_total conta as ordens estacionadas em aberto. Quando o prazo da resposta de uma ordem estacionada passa, a Mensageria registra um erro em log com o ID da ordem.

Liberação para o executor


A Mensageria libera as ordens de um sujeito uma de cada vez. Um sujeito é o CPF ou CNPJ que uma ordem atinge, dentro de uma instituição. A próxima ordem de um sujeito é liberada depois que a ordem anterior é resolvida. Um resultado do executor pode resolvê-la. A Mensageria grava a liberação e seu aviso de execução na mesma transação de banco de dados. O banco de dados, e não o broker, mantém a ordem das liberações de um sujeito.

Execução no Midaz


Para cada aviso de execução, o executor:
  1. Obtém a ordem na Mensageria.
  2. Verifica se a instituição da ordem está cadastrada neste executor como sua. Para qualquer outra instituição, ele não escreve nada.
  3. Escreve o bloqueio ou o desbloqueio no Midaz. Cada escrita leva uma chave de idempotência formada pelo ID da ordem e pela revisão da ordem.
  4. Informa o resultado à Mensageria.
Para uma requisição de informação, o executor lê os saldos do sujeito e não escreve nada no ledger. Quando o executor não consegue concluir uma ordem sozinho, ele entrega a ordem a um operador como uma decisão humana. Como o Lerian SISBAJUD executor executa ordens descreve cada operação.

Arquivos de resposta


A Mensageria gera dois tipos de arquivo de resposta:
  • Um arquivo de resposta de bloqueio: 5302 em produção, 5312 em homologação.
  • Um arquivo de resposta de informação: 5309 em produção, 5319 em homologação. Ele responde às requisições de informação.
Uma varredura em um intervalo configurado pega as ordens concluídas que ainda não têm resposta. RETURN_FILE_GENERATION_ENABLED ativa as respostas de bloqueio, e INFORMATION_RETURN_FILE_GENERATION_ENABLED ativa as respostas de informação. Um arquivo de resposta usa o ambiente, produção ou homologação, da remessa que suas ordens respondem. RETURN_FILE_ENVIRONMENT só se aplica quando nenhuma remessa sustenta as ordens. O padrão é HOMOLOGATION. SISBAJUD_RESPONSE_LAYOUT com auto, o padrão, responde no layout da remessa original. Os valores v111 e v2026 forçam um layout. Com STA_TRANSFERS_ENABLED ativado, a Mensageria envia cada arquivo de resposta. Ela grava o arquivo no bucket compartilhado e depois chama POST /v1/transfers no Lerian STA. O transporte de troca de arquivos em si é a integração da instituição que o Lerian STA descreve. O Lerian SISBAJUD é um de seus produtos de origem downstream.