Skip to main content
O Lerian BC Correios roda um worker de polling por tenant. Cada ciclo pede ao BC Correio as pastas e as correspondências do usuário Sisbacen do tenant, e armazena o que é novo.

Ciclo de polling


O tenant define o intervalo de polling nas suas configurações: 5, 15, 30 ou 60 minutos. Uma mudança no intervalo entra em vigor sem restart. Cada ciclo executa estes passos:
  1. Lista as pastas do BC Correio que o usuário Sisbacen pode ver.
  2. Lê cada pasta página por página, até que uma página volte vazia.
  3. Lê cada correspondência nova, busca seus anexos e depois os armazena.
  4. Para uma correspondência que já armazena, busca os anexos que falharam em um ciclo anterior.
Um erro em uma pasta ou em uma correspondência não interrompe o ciclo. O próximo ciclo tenta esse trabalho de novo.

Pastas


Quando o Lerian BC Correios armazena uma correspondência nova, ele a coloca na pasta local que corresponde à sua pasta no BC Correio: Uma movimentação posterior da correspondência no BC Correio não muda a sua pasta local. Você não pode restaurar uma correspondência de CANCELLED.

Sincronização inicial


O primeiro ciclo de um tenant armazena as correspondências que já existem no BC Correio. O Lerian BC Correios não envia esse acervo ao provedor de IA. Você ainda pode pedir a análise de uma correspondência desse acervo. Um ciclo que falha ao ler uma pasta não conclui a sincronização inicial. O próximo ciclo a executa de novo.

Armazenamento de correspondências e anexos


O Lerian BC Correios armazena cada correspondência no PostgreSQL. Ele armazena os anexos em um armazenamento de objetos compatível com S3 ou no sistema de arquivos local, com o checksum SHA-256 de cada arquivo. Quando você baixa um anexo, o serviço confere o arquivo com o seu checksum. Um arquivo que falha na verificação retorna BCC-0010.

Envio de mensagem


POST /mails/send envia uma mensagem de texto a um departamento do BACEN pelo BC Correio. A mensagem vai para o destino da requisição. Sem ele, vai para o destino padrão do tenant. Sem os dois, vai para DEINF. O tenant precisa de credenciais do BC Correio armazenadas. Sem elas, a requisição retorna 401 BCC-2001, e o Lerian BC Correios não armazena nada. O Lerian BC Correios registra a mensagem como PENDING antes de chamar o BC Correio. O resultado então decide o status e a resposta: Uma repetição da requisição com a mesma chave X-Idempotency não envia a mensagem de novo. Enquanto a primeira requisição roda, a repetição pode retornar 409 BCC-0012 com um header Retry-After. Fora isso, o status armazenado da primeira requisição decide a resposta: TRANSMISSION_PENDING_GRACE_SEC define a janela de tolerância, 30 segundos por padrão. Não envie a mensagem de novo depois de BCC-2010. O BC Correio pode já tê-la. Confirme com o BACEN, pelo canal manual dele, que a mensagem não chegou, e só então envie-a com uma chave nova. O Lerian BC Correios não repete um envio por conta própria.

Ações locais sobre correspondências


Marcar como lida, arquivar e restaurar mudam a sua cópia local de uma correspondência. O Lerian BC Correios não envia essas ações ao BC Correio. Uma restauração de uma correspondência na pasta CANCELLED ou SENT retorna 409 BCC-0014.

Insight de IA


Um tenant pode configurar um provedor de IA: openai, anthropic ou gemini, com a sua própria chave de API. O Lerian BC Correios envia o corpo da correspondência a esse provedor, junto com o texto que extrai de anexos TXT, CSV, XML, PDF e DOCX. Quando o tenant tem um provedor de IA, cada correspondência nova aguarda análise. No ciclo de polling, o Lerian BC Correios analisa uma correspondência sem anexos e com um corpo de pelo menos AI_BODY_INLINE_THRESHOLD caracteres. Um worker em segundo plano analisa as outras correspondências. Você pode pedir uma nova análise de uma correspondência com POST /mails/{id}/reanalyze. Quando o provedor responde em até 20 segundos, a resposta traz a análise. Caso contrário, a resposta é 202, e a análise continua em segundo plano.

Retenção


Cada tenant define nas suas configurações um período de retenção entre 1825 e 36500 dias. Um worker de retenção roda uma vez a cada 24 horas. Para as correspondências que ultrapassam o período de retenção, ele exclui do armazenamento os arquivos de anexo e oculta a correspondência. Depois, exclui do banco de dados os registros da correspondência.

Trilha de auditoria


A trilha de auditoria registra estas ações: GET /audit lista as entradas. GET /audit/export as exporta em CSV. Envie Accept: application/pdf para receber um PDF.