Finaliza (ou rascunha) o packing de um pedido
POST/fulfillment/packing/order/:idorder
Coração do fluxo de packing. Dois modos:
Modo Rascunho (Draft=1): apenas guarda o corpo enviado como rascunho temporário da picking-list informada em IDPickingList, indexado pelo pedido, com validade de 4 dias. Nada é gravado no cadastro. Retorna "sucesso". É chamado a cada bipagem pelo frontend para preservar o progresso do operador, e é esse conteúdo que volta em Draft no detalhe da picking-list.
Modo Final (sem Draft): processa o packing completo:
- Conferência: compara os
Itemsenviados com os itens esperados do pedido. Em caso de divergência, falha com a lista detalhada (itens não enviados / a maior / a menor). Aceita divergência apenas quandoPartialInvoice=1. - Faturamento parcial: quando há itens conferidos a menos, ajusta as quantidades do pedido proporcionalmente e recalcula os valores dos itens e das contas a receber. Se a parametrização Endereço transferência faturamento parcial pedido packing estiver configurada, transfere as quantidades removidas para o endereço de quarentena indicado.
- Validação de série: para SKUs que controlam número de série, libera as séries antes amarradas ao pedido, valida cada série informada e a amarra ao item conferido.
- Reconciliação de volumes: cria ou remove volumes para bater com
QuantityPackagese grava peso e dimensões vindos emVolumes. - Embalagens: cada item de
Packagesentra como linha de embalagem no pedido, com preço zero. - NF-e: dispara a emissão da nota fiscal, a menos que
NoInvoice=1. - Cesto de separação: o cesto vinculado ao pedido — ou à picking-list — é liberado, e o uso fica registrado no histórico de cestos junto com o pedido e a picking-list de origem.
- Transição de status: com transportadora definida, transportadora não marcada para ignorar romaneio, parametrização Não criar romaneio automaticamente após packing desligada e sem
IDOrderStatusTo→ status6(Aguardando expedição), com o pedido incluído no romaneio aberto da transportadora naquele centro de distribuição (criando um novo romaneio se não houver). Com a parametrização Marcar como enviado após finalizar packing ou comIDOrderStatusToinformado, o pedido é movido para o status alvo (por padrão7, Enviado). Caso contrário → status22(Aguardando romaneio). - Status da picking-list:
5(Packing Concluido) quando todos os pedidos da lista terminaram, ou4(Packing Processando) caso contrário.
A conclusão só ocorre com a nota fiscal em 3 (Emitida) ou 5 (Pendente Conciliação EPEC), com o estado de entrega na lista de declaração de conteúdo da transportadora, ou com NoInvoice=1 — fora desses casos a resposta é Nota Fiscal não emitida.
Chamadas idênticas para o mesmo pedido dentro de 3 segundos são recusadas, para evitar disparo duplicado pelo operador.
Quando a parametrização Ignorar itens tipo serviço na emissão da nota fiscal (IgnoreServiceItemsOnInvoice) está habilitada, os itens cujo SKU é do tipo Serviço são desconsiderados da conferência — não precisam ser enviados em Items.
Retorna o detalhe atualizado do pedido.
Request
Responses
- 200
- 400
- 404
Em modo Rascunho: literal "sucesso". Em modo Final: detalhe do pedido atualizado.
Mensagens [BadRequest] típicas:
Processo de faturamento em duplicidade— disparo duplicado do mesmo pedido com o mesmo corpo em menos de 3 s.Pedido esta no status aberto e não pode seguir o processo de packing.Pedido esta com nota fiscal emitida e não pode alterar as quantidades dos itens—PartialInvoicecom nota já emitida.<itens não enviados: …> | <itens enviados a maior: …> | <itens enviados qtde a maior: …> | <itens enviados qtde a menor: …>— divergência de conferência semPartialInvoice=1.Item X controla serial mas não foi enviado no faturamento.Item X controla serial e tem quantidade maior que um. Precisa ser enviado de forma individual o serial.Serial informando para o item X não existe. Enviado: Y/Serial informando para o item X não está disponível. Enviado: Y.Erro ao selecionar serial IDSku:X/Erro ao alterar quantidade IDSku:X.Nota Fiscal não emitida— validação final quando a nota não saiu e o estado de entrega não está na lista de declaração de conteúdo da transportadora. Além disso, propaga a mensagem de erro devolvida pela emissão da NF-e e pela transferência automática de estoque.
[NotFound] - Pedido não encontrado.