Pular para o conteúdo principal

Transfere quantidade entre armazéns/endereços

POST 

/sku/movement/transfer

Move quantidade de um SKU entre dois armazéns ou dois endereços/lotes, gerando duas movimentações vinculadas (saída na origem, entrada no destino). O custo unitário usado em ambas é o custo médio do armazém de origem — ou o valor de CostSet quando a parametrização UseCostFromCostSet está ativa.

Origem e destino precisam estar no mesmo Centro de Distribuição. O SKU precisa estar ativo e ser do tipo Sku, Matéria-prima ou Uso e consumo.

Modos de transferência:

  • Entre armazéns — envie IDStockKeepingUnitWarehouseFrom + IDStockKeepingUnitWarehouseTo. O sistema consome lotes na ordem FIFO (mais antigo primeiro) até completar Quantity. Para SKU sem rastreabilidade usa o lote padrão.
  • Entre lotes/endereços — envie IDBatchFrom + (IDBatchTo ou IDStockKeepingUnitLocationTo). Quando vier só IDStockKeepingUnitLocationTo, o sistema procura um lote compatível no destino (mesma validade/fabricação/comentário) e o reutiliza; se não existir, cria um novo lote. Com a parametrização KeepUniqueBatchForFiscalConciliation ativa, sempre cria um novo lote no destino.

Validações:

  • Se a quantidade total do lote origem for menor que Quantity, devolve [BadRequest] - Quantidade total insuficiente para transferencia. Pode ser contornado ativando AllowNegativeBalanceTransfer ou, no fluxo entre lotes/endereços, enviando IgnoreBalance=1.
  • Em transferência entre endereços com SKU rastreável, se o endereço destino já tem o mesmo SKU em lote divergente (validade/fabricação/comentário diferentes) e a parametrização AllowSameItemDifferentBatchSameLocation está inativa, devolve [BadRequest] - Item possui lotes divergentes no endereço de destino.

Efeitos colaterais:

  • Atualiza o saldo agregado do SKU no armazém de destino e, quando o saldo do SKU nesse armazém fica negativo em algum ponto da linha do tempo, dispara o recálculo de custo do SKU.
  • Reprocessa pedidos no armazém de destino com status "Falta produto" e equivalentes (IDStatusOrder 11, 12 e 24), limpando QuantityNonconformity à medida que a quantidade transferida cobre as faltas, e devolvendo o pedido a IDStatusOrder = 1 (Fechado) quando todos os itens voltam a ter saldo. Cada alteração gera evento de pedido (IDEvent = 35). No fluxo entre lotes/endereços entram as não conformidades 1, 2, 5 e 6; no fluxo entre armazéns, apenas 5 e 6.
  • Publica a notificação SkuBalanceTransfer para o webhook da empresa.

Resposta: depende do fluxo. Na transferência entre lotes/endereços, por padrão devolve as duas movimentações criadas e, com BatchResponse=1, devolve a lista de lotes do SKU. Na transferência entre armazéns, a resposta é sempre a lista de lotes do SKU — BatchResponse não é considerado nesse fluxo.

Request

Responses

Transferência criada. No fluxo entre lotes/endereços retorna as duas movimentações criadas, ou a lista de lotes do SKU quando BatchResponse=1. No fluxo entre armazéns retorna sempre a lista de lotes do SKU.