Entrada de NF e o estoque

Dúvida: por que o pedido de compra não aumenta o saldo e o que a confirmação da NF grava.

Dúvida: como a entrada fiscal atualiza o estoque?

Ambiente: Estoque → Operações → Entrada de Documentos (/apps/entry-document). Também: Documentos → Entrada de Documentos. Fila MDE: /apps/nfe-entrada.

Pré-requisitos: produto com UM; armazém; fornecedor; certificado só se for manifestar/consultar SEFAZ.

O que não lança estoque

DocumentoLança FAPOB?
Pedido de compra FAC009não
XML só no staging / stage-xmlnão
NF em rascunho (CREATED)não (entra no ATP como incoming_stock)
NF confirmadasim — origem ENTRY_DOCUMENT

Passo a passo (entrada manual)

  1. /apps/entry-document → nova entrada.
  2. Informe emitente, número, série, itens (SKU interno, quantidade na UM da NF, fator se UM ≠ 1ª UM do produto).
  3. GET /entry-document/confirm-preview/:id — conferir quantidades convertidas e custo.
  4. POST /entry-document/confirm/:id (botão confirmar na tela).

Passo a passo (XML / SEFAZ)

  1. Manifestar ciência/confirmação na fila /apps/nfe-entrada se for MDE.
  2. POST /entry-document/nfe/stage-xml ou importar pela chave — não baixa estoque.
  3. Vincule código do fornecedor → SKU (FAW02): match / link / auto-create.
  4. Ajuste fator na linha se uCom ≠ UM de estoque.
  5. Confirme como no fluxo manual.

Fórmulas: qtyEstoque = qCom × fator, custoUnit = vUnCom / fator. Prioridade do fator: documento de entrada.

O que a confirmação grava (mesma transação)

  1. FAPOB tipo E, origem ENTRY_DOCUMENT, location do item, unitCost na UM de estoque, user_id de quem confirmou.
  2. Camada FIFO FACL01 (custo da entrada).
  3. Product.lastPrice e recálculo de averageCost.
  4. Parcelas a pagar (FAR02 / FAB012) se a NF gera financeiro.
  5. Com lotControl + flag industrial.lot-enforcement: FALOT01 + lot_id no razão. Sem flag, o lote no XML pode ser informado e o enforcement não recusa.

Exemplo

NF 1 000 kg farinha, uCom=KG, UM do produto KG, fator 1, depósito 001, lote FAR-260828-A:

  • FAPOB.quantity = 1000, movementType = E
  • FEFO passa a ver 1 000 kg ACTIVE (API 1.0.169: ATP acompanha o lote, não só o último saldo do razão)

Erros comuns

SintomaCausa
Confirmou e saldo 0fator errado; SKU sem vínculo; confirmou outra filial
ATP 0 e FEFO com saldocorrigido na API 1.0.169; ver ATP
Duplicou estoqueduas confirmações / XML importado duas vezes — há rotina admin de correção; não confirme de novo

Detalhe fiscal e MDE: compras — entrada · API.