Informe o período.
QuandoDatas vazias no painel, na reconferência ou na carga do SIEG.
Caso sugerido para QA: o que fazer, o que esperar e como conferir no banco.
Recusa com a mensagem exata (HTTP 400, mostrada na tela).
Limitação, pendência ou ponto em que o código e a ajuda não coincidem.
374 e 457 são a mesma tela. 457 era a opção provisória (4-Manutenção › 5-Integrações › 7, idOpcao: null); em 29/09/2026 foi cadastrada como 374 no grupo 3-Relatórios › 7-Conferências › 4-Painel de NF-e Recebidas (histórico 368). Confirmado no código: um componente (PainelNfeRecebidas.vue, rota painelNfeRecebidas), um controlador (/cadastro/nfe-recebidas) e uma ajuda (374.md). O menu atual só tem o 374; o 457 sobrou nos históricos (298) e no status-porte.csv, que ainda traz as duas linhas (457 PARCIAL, 374 REVISAR).
O painel mostra as NF-e que os fornecedores emitiram contra as filiais (recebidas): quantas chegaram, quanto somam, quantas ainda não têm lançamento, por dia, por fornecedor e por filial. Desenho novo (legado e ceif não têm), com tabela própria nfe_recebida (uma linha por chave de acesso). Não grava lançamento nenhum: só guarda a nota no painel. O lançamento (almoxarifado, carne, gado, título) continua sendo feito pelas telas de origem; o vínculo do 456 (Importar XML de Entrada) é o que anexa o XML.
No Paraguai (codicfj 001/002) não há SIEG: a tela troca "Buscar no SIEG" por "Importar XLS" (planilha do Marangatu) e "Baixar XMLs pendentes" (SIFEN).
| Campo / botão | Default | Limites | Efeito |
|---|---|---|---|
| Período (emissão) de / até | hoje − 30 até hoje | Obrigatório; fim ≥ início; máx. 366 dias | Filtra nfe_recebida.data_emissao (coluna date: BETWEEN é seguro aqui) |
| Todas as minhas filiais | desmarcada | — | Desmarcada: só a filial da sessão (a da nota, nfe_recebida.idfilial). Marcada: FiliaisDoUsuario.permitidas e aparece o resumo "Por filial" |
| Atualizar | — | — | GET /cadastro/nfe-recebidas/painel: cartões por situação, gráfico por dia, 15 maiores fornecedores e a lista (as 2.000 notas mais recentes; "notasCortadas" avisa quando passa) |
| Cartões por situação | — | — | Clique filtra a lista (local). Canceladas ficam fora dos totais, do gráfico e dos fornecedores |
| Buscar no SIEG (Brasil) | — | Período de upload no SIEG, máx. 92 dias; até hoje | Inicia a carga em segundo plano (um dia por vez, do mais recente ao mais antigo) |
| Reconferir pendentes | — | — | POST /reconferir: reavalia pelo XML guardado as notas NAO_LANCADA, SEM_CADASTRO e LANCADA_SEM_XML do período |
| Visualizar DANFE (duplo clique) / Baixar XML | — | Nota das filiais do usuário e com XML | GET /{id}/danfe (Paraguai: KuDE do fornecedor) e GET /{id}/xml |
| Ver no e-Kuatia (Paraguai) | — | XML com QR | GET /{id}/consulta: abre o dCarQR do XML |
| Importar XLS / Baixar XMLs pendentes / Parar (Paraguai) | — | Planilha "Detalle de Comprobantes Registrados" (RG 90) | POST /comprobantes, /comprobantes/baixar, /comprobantes/parar, GET /comprobantes/situacao |
Criada no primeiro uso (CREATE TABLE IF NOT EXISTS, fora de transação; script scripts/sql/nfe_recebida.sql). Chave única em chave (a nota tem um destinatário só). Reler uma nota atualiza a situação e mantém o XML já guardado (xml = IFNULL(VALUES(xml), xml)).
| Coluna | Conteúdo |
|---|---|
idfilial | Filial destinatária (no Paraguai, a filial da sessão que importou: as filiais têm o mesmo RUC) |
chave | Chave de acesso de 44 posições (CDC no Paraguai); única |
cnpj_emitente, emitente, numero, data_emissao, nat_op, valor_total, valor_icms | Cabeçalho da nota |
status | LANCADA_COM_XML, LANCADA_SEM_XML, NAO_LANCADA, SEM_CADASTRO, CANCELADA |
mensagem, destino, id_lancamento, documento | Por onde achou o lançamento: destino ALM (almoxarifado_compra), CC (faturamento_compra_carne), CG (faturamento_compra_gado), FIM (financeiro_emissao) |
origem | SIEG, ARQUIVO (456) ou SET (planilha do Marangatu) |
xml | mediumblob com o XML (nulo no Paraguai até o XML ser baixado do SIFEN) |
data_inclusao, data_atualizacao | Controle |
| No painel | Vem de | Significa |
|---|---|---|
LANCADA_COM_XML | JA_IMPORTADA, ou IMPORTAR na importação | Há lançamento para a nota e o XML já foi anexado a ele |
LANCADA_SEM_XML | IMPORTAR na prévia | Há lançamento, mas o XML ainda não foi anexado (use o 456) |
NAO_LANCADA | NAO_ENCONTRADA | Nenhum lançamento achado |
SEM_CADASTRO | SEM_CADASTRO | CNPJ/RUC do emitente não existe no cadastro 15 |
CANCELADA | CANCELADA | Fora dos totais |
Nos cartões e no resumo, "valor não lançado" soma NAO_LANCADA e SEM_CADASTRO; a quantidade total exclui as canceladas. As barras do gráfico por dia pintam de vermelho a parte pendente (NAO_LANCADA + SEM_CADASTRO).
codicfj 004) compra de gado, antes do título → título (financeiro_emissao). O 456 do legado só procurava almoxarifado, carne e título; a compra de gado e as restrições abaixo foram acrescentadas no porte a pedido do usuário.data_emissao em almoxarifado/carne/título; data_entrada na compra de gado; fatura da compra de gado por COALESCE(f.data, g.data_entrada)); data nula não filtra; chave igual dispensa a janela. O legado não olha data (defeito corrigido).tipo_emissao = 'P' (a entrada é título a pagar).faturamento_compra_gado_fatura do emitente da nota: chave_nfe_prod igual à chave, senão numero_fatura/numero_nf_prod = número; fatura com outra chave gravada não vale), depois pelo documento da compra; também tenta emitentes da mesma raiz de CNPJ. Nada é gravado na compra de gado (não tem xml_fornecedor); a nota sai como lançada.| Origem | Quando | Detalhe |
|---|---|---|
| 456 Importar XML de Entrada | Toda prévia e importação, por arquivos ou SIEG | Registra as notas cujo destinatário é filial do usuário; falha no registro só vai ao log e não derruba a importação |
| Buscar no SIEG (carga da tela) | Clique do usuário | SiegSincronizador.iniciarCarga: até 92 dias por busca; um dia por vez (pausa de 3 s entre consultas; 5 esperas de 5/15/30/60/60 s no 429); estado em memória, um banco por vez; a tela consulta GET /sieg/situacao a cada 3 s. O DataUploadFim do SIEG é exclusivo: o cliente manda o dia seguinte como fim |
| Busca automática | A cada app.sieg.intervalo-minutos (60) | Ontem e hoje, todas as filiais com CNPJ, só em bancos com pool aberto (basesAbertas) e com SIEG_API_KEY; repetir não duplica. Nunca com o backend em homologação (app.conexao.hml=1: bases de teste têm a mesma chave e davam 429); app.sieg.busca-automatica=false desliga |
| Reconferência noturna | Uma vez por noite, app.nfe-recebidas.reconferencia-hora (2h; negativo desliga) | Pendentes dos últimos app.nfe-recebidas.reconferencia-dias (90) de todas as filiais, pelo XML guardado, em lotes de 200; não fala com o SIEG, roda também em homologação; Brasil e Paraguai; pula banco com busca em curso; a nota continua na filial em que está |
| Paraguai: Importar XLS | Clique do usuário | Linhas de COMPRAS com CDC (origem ELECTRONICO) entram com status pelo CDC (RUC+dígito e número do emissor); sem CDC (VIRTUAL/papel) só são contadas; origem SET; na filial da sessão (reimportar de outra filial move as linhas) |
| Paraguai: baixar XMLs | Em segundo plano após a importação ou "Baixar XMLs pendentes" | SifenClient.consultarXml por CDC, com o certificado da filial da sessão, sempre no SIFEN de produção (só leitura); pausa de 0,3 s; 10 falhas seguidas param; retoma onde xml IS NULL |
Sem regra nomeada (RegraAcessoService não é usado nesta tela). O menu 374 depende de opcao_sistema + grupo_permissao. Os endpoints estão em /cadastro/* (JWT). DANFE, XML e e-Kuatia só atendem nota de filial do usuário (FiliaisDoUsuario.permitidas); a busca no SIEG e o painel são limitados às filiais escolhidas.
Informe o período.
QuandoDatas vazias no painel, na reconferência ou na carga do SIEG.
A data final é anterior à inicial.
QuandoPeríodo invertido (painel, reconferência, SIEG).
Período de no máximo 366 dias.
QuandoPainel/reconferência com mais de 366 dias.
Período de no máximo 92 dias por busca no SIEG.
QuandoCarga do SIEG acima de 92 dias (a data final no futuro é cortada em hoje).
O período está todo no futuro.
QuandoCarga do SIEG com início depois de hoje.
Cadastre a chave do SIEG (SIEG_API_KEY) na Config. Globais (41).
QuandoCarga do SIEG sem a chave em system_config.
Já há uma busca no SIEG em andamento neste banco (dia ..., N de M).
QuandoSegunda carga no mesmo banco (uma por banco; a automática também reserva o banco).
O usuário não tem filial.
QuandoVisão geral sem nenhuma filial permitida.
Nota não encontrada nas suas filiais, ou o XML dela ainda não foi baixado.
QuandoDANFE/XML/consulta de nota inexistente, de outra filial ou sem XML.
O XML deste documento não traz o link de consulta (QR).
QuandoVer no e-Kuatia com XML sem dCarQR.
Data inválida: x
QuandoParâmetro de data fora do formato ISO.
Nenhuma nota pendente no período.
QuandoReconferir sem notas pendentes com XML guardado (resposta informativa, não erro).
| Onde | Chave / propriedade | Padrão | Efeito |
|---|---|---|---|
system_config | SIEG_API_KEY | sem valor | Chave da API do SIEG (cadastrada na Config. Globais, botão do 41; tratada como segredo). Sem ela nem a carga da tela nem a automática funcionam |
application.yml | app.sieg.busca-automatica | true | Liga/desliga a busca automática |
application.yml | app.sieg.intervalo-minutos | 60 | Intervalo da busca automática (<= 0 desliga) |
application.yml | app.nfe-recebidas.reconferencia-hora | 2 | Hora (0-23) da reconferência noturna; negativo desliga |
application.yml | app.nfe-recebidas.reconferencia-dias | 90 | Quantos dias de emissão a reconferência olha |
application.yml | app.conexao.hml | 1 | Com 1 (homologação) a busca automática do SIEG não roda; a carga da tela e a reconferência noturna rodam |
filial | CNPJ/RUC das filiais | — | Define os destinatários buscados e a filial de cada nota |
Nenhuma system_config de e-mail: o painel não envia mensagem. Os valores de app.* têm default no código (@Value); só aparecem no application.yml se alguém os sobrescrever.
Painel com os padrões
FazerAbrir 374 (Brasil), deixar 30 dias, sem "Todas as minhas filiais", Atualizar.
EsperadoCartões com quantidades por situação da filial ativa; gráfico por dia; 15 maiores fornecedores; lista com DANFE/XML. A soma LANCADA_COM_XML + LANCADA_SEM_XML + NAO_LANCADA + SEM_CADASTRO = quantidade total; canceladas à parte.
ConferirSELECT status, COUNT(*) n, SUM(valor_total) valor
FROM nfe_recebida
WHERE idfilial = :filial AND data_emissao BETWEEN :de AND :ate
GROUP BY statusRetrato de referência no central em 04/10/2026 (todas as filiais, origem SIEG, emissão 31/08 a 02/10): LANCADA_SEM_XML 925, NAO_LANCADA 512, LANCADA_COM_XML 201, CANCELADA 87, SEM_CADASTRO 67; nenhuma linha com XML nulo.
Visão geral por filial
FazerMarcar "Todas as minhas filiais" e Atualizar.
EsperadoAparece "Por filial", ordenado do maior valor para o menor; os totais gerais são a soma das filiais.
Buscar no SIEG
FazerInformar um dia recente e clicar "Buscar no SIEG" (com SIEG_API_KEY cadastrada e fora de homologação).
EsperadoA chamada volta na hora; as duas linhas acima dos cartões mostram o dia atual e "N de M"; o painel recarrega a cada dia concluído; é possível fechar a janela e a carga continua. Segunda carga no mesmo banco recusa com "Já há uma busca no SIEG em andamento...". Sem chave: "Cadastre a chave do SIEG...". Mais de 92 dias: "Período de no máximo 92 dias por busca no SIEG.".
ConferirSELECT COUNT(*), MAX(data_atualizacao) FROM nfe_recebida WHERE origem = 'SIEG' e o log "457 - carga do SIEG ...".
Busca automática
FazerCom o backend em produção, aguardar o intervalo.
EsperadoA linha "automática" mostra a última rodada (ontem e hoje); repetir não duplica notas (chave única). Em homologação (app.conexao.hml=1) ela não roda e o log registra "busca automática do SIEG desligada: backend em homologação".
Reconferir pendentes depois de lançar
FazerLançar no 242/2322/221 uma nota que estava NAO_LANCADA (mesmo emitente e número) e clicar "Reconferir pendentes".
EsperadoA nota passa a LANCADA_SEM_XML (ou COM_XML se o XML foi anexado no 456). Sem pendentes: "Nenhuma nota pendente no período.". Notas fora do período, sem XML guardado ou de outras filiais não são reavaliadas.
ConferirSELECT status, destino, id_lancamento, documento, mensagem FROM nfe_recebida WHERE chave = :chave
Vínculo: janela de 120 dias e filial
FazerConferir uma nota cujo número se repete todo ano (produtor que numera por dia+mês+sequência) e uma transferência entre filiais.
EsperadoLançamento a mais de 120 dias da emissão não vincula (a nota fica NAO_LANCADA); nota de transferência não casa com título de venda da filial emissora (título precisa ser a pagar e de filial com o CNPJ da destinatária). Casos do histórico: NF-e 40920003 de LEONOR PALUDO (04/09/2026) versus compra de carne 10641314 de 05/09/2025; NF-e 668 série 5 da BMG filial 28 para a 05.
Compra de gado (Brasil)
FazerImportar a NF-e do pecuarista pelo 456 e olhar o painel.
EsperadoA nota vira lançada com destino CG e a mensagem diz por onde achou (fatura, documento da compra ou os dois); nenhum XML é gravado na compra de gado.
ConferirSELECT chave, status, destino, id_lancamento, mensagem
FROM nfe_recebida WHERE destino = 'CG' ORDER BY data_atualizacao DESC LIMIT 20
DANFE, XML e permissão
FazerBaixar o XML e abrir o DANFE de uma nota; tentar o id de uma nota de filial fora do usuário (URL direta).
EsperadoNota própria: download/PDF. Nota de outra filial ou sem XML: "Nota não encontrada nas suas filiais, ou o XML dela ainda não foi baixado.".
Paraguai: planilha e XMLs
FazerEm tenant paraguaio, "Importar XLS" com a planilha do Marangatu e depois "Baixar XMLs pendentes".
EsperadoComprovantes com CDC entram com origem SET e situação pelo CDC; os sem CDC só são contados no retorno; os XMLs chegam em segundo plano (acompanhar por GET /comprobantes/situacao); "Parar" interrompe e reimportar/baixar retoma onde xml IS NULL. Todas as filiais de concepcion têm o mesmo RUC: a nota fica na filial da sessão.
ConferirSELECT origem, status, COUNT(*), SUM(xml IS NULL) sem_xml FROM nfe_recebida GROUP BY origem, status
Limite de 2.000 notas
FazerEscolher um período com mais de 2.000 notas.
EsperadoA lista mostra as 2.000 mais recentes e avisa que foi cortada; cartões, gráfico e fornecedores continuam calculados sobre o total.
Corrigido em 04/10/2026: ajuda desatualizada
374.md e 374.es.md citam agora a compra de gado (2312, Brasil — sempre conta como lançada com XML), o título só a pagar, a procura na filial destinatária (e nas de mesmo CNPJ) e a janela de 120 dias entre a emissão da nota e o lançamento.
Corrigido em 04/10/2026: comentário do serviço dizia 30 minutos
O Javadoc de NfeRecebidaService cita agora app.sieg.intervalo-minutos (60).
Decisão em aberto: nota "Não encontrada"
Vira pré-lançamento no 221 ou sugere compra (242/2322)? Hoje só é listada (histórico 298).
Limitações conhecidas
Estado das buscas (SIEG, planilha) fica em memória: reiniciar o backend perde o andamento e a "última automática". Automática e reconferência só olham bancos com pool aberto (alguém entrou desde que o backend subiu). Reconferência noturna usa o relógio do servidor da aplicação. A consulta ao SIFEN, a tela e o SIEG real não foram exercitados na tela (histórico 372/298); status PARCIAL (457) e REVISAR (374).
Nada bate com essa busca. Tente um trecho menor, ou limpe os filtros.