Passar para o conteúdo principal

Utilizando o Controle de Lote e Validade via API

Neste artigo, descubra como utilizar/cadastrar Lotes para suas Ordens de Produção, Pedidos de Venda, Compras de Produtos e demais processos via API.

Escrito por Luis Felipe

Com o Controle de Lote e Validade, você acompanha cada lote dos seus produtos de forma organizada, registrando datas de fabricação e validade.

Para tornar sua gestão ainda mais ágil e integrada, agora é possível utilizar esse recurso também via API, permitindo que seu sistema se conecte ao Omie e mantenha todas as informações sempre atualizadas, sem esforço manual.

Tópicos do Artigo:


Informações Importantes sobre as APIs do Omie

Antes de iniciar seus testes com a nossa API, é fundamental conhecer alguns processos básicos:

  • ✅ Acessando a documentação: Consulte nossa documentação oficial para entender os endpoints disponíveis e seus respectivos parâmetros.

  • ⚙️ Características e Recomendações: Fique por dentro das melhores práticas para otimizar sua experiência com a API da Omie.
    ​

  • 🔐 Login no Portal: Para testar suas requisições no Portal do Desenvolvedor, é necessário fazer login na plataforma com o mesmo e-mail e senha que você já usa no ERP.
    ​

  • 🧪 Aplicativo Teste: Aprenda a criar um Aplicativo Teste gratuito e descubra, na prática, como utilizar nossas APIs e aproveitar ao máximo os nossos recursos.

💡 Dica Omie: você pode testar nossas APIs diretamente no nosso Portal do Desenvolvedor. Além disso, ferramentas como Postman, Insomnia e ThunderClient (extensão do VS Code) também são ótimas opções para realizar testes.


Conhecendo recurso de Lote e Validade via API

1) Para interagir via API com o Controle de Lote e Validade, é necessário que o Controle de Lotes esteja ativo em seu aplicativo.
​
Confira nossa documentação completa sobre o processo de configuração:
​

2) E também é necessário ativar a utilização de Lotes para os produtos de interesse:

3) Após configurar o Controle de Lotes, acesse o Portal do Desenvolvedor e acesse a lista de APIs:

4) No tópico "Compras, Estoque e Produção", selecione a opção "Produtos - Lote":

5) Nesta aba, você terá os dois métodos principais para monitorar os Lotes de seus produtos: ConsultarLote (1) e ListarLotes (2):


Verificando os Lotes que possuo no sistema

  • Consultando o Lote de um produto específico:

Utilizando o método "ConsultarLote", é possível verificar os Lotes cadastrados de um produto em específico que você possui a gestão de Lote ativada.

Esta requisição utiliza os seguintes parâmetros:

  • nCodProd (obrigatório)

    ou

  • cCodIntProd (obrigatório).

Como retorno, essa requisição terá as informações do produto dentro do Array "ident" e as informações do lote relacionados a ele pelo array "lotes".

💡 Boas práticas na utilização da API

Para evitar bloqueios por rate limit e também manter uma consulta otimizada, é recomendado utilizar o método "ConsultarLote" apenas em situações necessárias.
​
​As consultas recorrentes que mantêm atualizado seu registro interno de Lotes precisam ser realizadas pelo método "ListarLotes". Nele, você poderá, de forma incremental, realizar a consulta usando os parâmetros:

  • "cFiltrarPorDataDe": Data de sua última consulta.

  • "cFiltrarPorDataAte": Data atual.


Exemplo:


Considerando que minha última consulta tenha sido feita no dia 11/09:

{
"nPagina": 1,
"nRegPorPagina": 1000,
"cFiltrarPorDataDe": "11/09/2025",
"cFiltrarPorDataAte": "12/09/2025"
}

  • Listando todos os Lotes que possuo:

Com o método “ListarLotes”, você pode consultar todos os lotes cadastrados dos produtos que possuem a gestão de Lotes ativa.

Esta requisição utiliza os seguintes parâmetros:

  • nPagina (Obrigatório)

  • nRegPorPagina (Obrigatório)

  • cFiltrarApenasInclusao (Opcional)

  • cFiltrarApenasAlteracao (Opcional)

  • cFiltrarPorDataAte (Opcional)
    ​

Como retorno, essa requisição terá as informações do Produto dentro do array "ident" e as informações do lote relacionados a ele pelo array "lotes".


Manipulando os Lotes em suas requisições

Após ter seus Produtos e Lotes configurados, é possível em seus processos indicar, por meio do array "lote_validade", quais lotes serão consumidos ou cadastrados.

Ele pode ser consumido em um processo de saída, como:

  • Pedidos de Venda

  • Ordens de Produção

  • Remessas de Produtos

  • Devoluções ao Fornecedor

  • Movimento Manual de Estoque de Saída

Ou pode ser adicionado em um processo de entrada:

  • Movimento Manual de Estoque de Entrada ou Ajuste

  • Recebimento de Notas Fiscais do Fornecedor

  • Notas de Entrada

  • Devolução de Venda

  • Nota de Importação

Os lotes apenas podem ser adicionados por meio de Operações de Entrada de seus Produtos. A seguir, demonstraremos como utilizar este array em cada operação.

💡 A manipulação dos lotes via API é obrigatória em seu processo, caso a configuração de lotes esteja como "Manual - INFO".

Esta parametrização define que, em cada movimentação, será necessário informar manualmente qual lote será utilizado:

Para as demais opções:

  • Primeiro a vencer, primeiro a sair - FEFO (First expired, first out).

  • Primeiro a entrar, primeiro a sair - FIFO (First in, first out).

  • Último a entrar, primeiro a sair - LIFO (Last In, First Out).

Não é obrigatório o preenchimento dos parâmetros de Lote no momento de realizar a requisição de seus processos, pois ele obedecerá ao método de consumo do lote escolhido.

  • Métodos que realizam Movimentos de Entrada do Lote

Ao utilizar o array "lote_validade" para representar o novo Lote em processos de entrada, você terá os seguintes parâmetros a serem informados:

  • nIdLote (Opcional caso preencha apenas "cNumLote") - ID do Lote.

  • nQtdLote (Obrigatório) - Quantidade que será adicionada ao Lote.

  • cNumLote (Opcional caso "nIdLote" não informado) - Número do Lote.

  • cCodAgreg (Opcional caso "nIdLote" não informado) - Código de Agregação do lote do produto.

  • dDataFab (Opcional) - Data de Fabricação do Produto; caso não informada, será utilizada a data atual.

  • dDataVal (Opcional) - Data de validade do Produto.

Exemplo:

Veja um exemplo de requisição indicando o Lote que será adicionado no Produto em uma Movimentação Manual de Estoque, utilizando o método "IncluirAjusteEstoque":

{
"codigo_local_estoque": 740798,
"id_prod": 14112838,
"data": "10/09/2025",
"quan": "15",
"obs": "Ajuste feito pela ferramenta de Teste de API (52846)",
"origem": "AJU",
"tipo": "ENT",
"motivo": "INV",
"valor": 10,
"lote_validade": [
{
"cNumLote": 55556,
"nQtdLote": 1,
"cCodAgreg": 56567
},
{
"cNumLote": 55557,
"nQtdLote": 14,
"cCodAgreg": 5656
}
]
}

  • Métodos que realizam Movimentos de Saída do Lote

Ao utilizar o array "lote_validade" para consumir um Lote em processos de saída, os seguintes parâmetros terão de ser informados:

  • nIdLote (Obrigatório) - Id do Lote a ser utilizado.

  • nQtdLote (Obrigatório) - Quantidade deste Lote que será utilizado.

🔎 Especificidades da Ordem de Produção

  • Para os métodos "IncluirOrdemProducao" e "AlterarOrdemProdução", especificamente, o array utilizado para o Produto Principal (Produto Pai) é o "lote_validade_op".

  • Para o array "lote_validade_op", o parâmetro nIdLote é opcional. Porém, quando não informada, o parâmetro cNumLote torna-se obrigatório, e o "lote_validade_op" passa a aceitar cCodAgreg, dDataFab e dDataVal como parâmetros.

  • O "lote_validade" é referente aos Itens do Produto (Produtos Filhos).

Exemplo:

Veja um exemplo de requisição indicando o Lote que será consumido de uma matéria-prima, em uma Ordem de Produção, utilizando o método "IncluirOrdemProducao":

{
"identificacao": {
"cCodIntOP": "OP-81040-NOVO-01",
"nCodProduto": 0,
"dDtPrevisao": "30/09/2026",
"nQtde": 10,
"codigo_local_estoque": 0,
"lote_validade_op": {
"cNumLote": "LOTE-81040-A",
"cCodAgreg": "AGREG-81040",
"dDataFab": "01/09/2026",
"dDataVal": "01/09/2027"
}
},
"itens": [
{
"nIdProdutoMalha": 14112838,
"cUtilizarDoEstoque": "N",
"lote_validade": [
{
"nIdLote": 26977390,
"nQtdLote": 1
}
]
}
]
}


📚 Artigos Relacionados:

Assinatura.png
Respondeu à sua pergunta?