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 grava o body como rascunho temporário sob a chave PickingList:<IDPickingList> (TTL 4 dias). Não toca em banco. Retorna "sucesso". É chamado a cada bipagem pelo frontend para preservar o progresso do operador.
Modo Final (sem Draft): processa o packing completo:
- Conferência: compara
Itemsenviados comStockKeepingUnitMovementdo pedido. Em caso de divergência, falha com mensagem detalhada (itens não enviados / a maior / a menor). Aceita divergência apenas quandoPartialInvoice=1(com privilégio + parametrização habilitada). - Faturamento parcial: quando há
differenceSentLessQty, ajustaStockKeepingUnitMovementproporcionalmente, recalculaPriceSellingTotale reescalaValue. SeAutomaticTransferPartialInvoiceWarehousePackingconfigurado, transfere itens removidos para o endereço de Quarentena. - Validação de série: para SKUs com
SerialNumber=1, valida e amarra cada serial viaStockKeepingUnitSerialNumber. - Reconciliação de volumes: cria/apaga linhas em
Packagespara bater comQuantityPackages; salva dimensões dos volumes vindas emVolumes[]. - Embalagens: para cada item em
Packages[], insere a linha de embalagem no pedido (comPriceSelling=0). - NF-e: dispara a emissão da nota fiscal, a menos que
NoInvoke=1. - Transição de status: com transportadora + romaneio habilitado → status
6+ adiciona ao romaneio aberto. ComSetShippedAfterPacking=1ouIDOrderStatusTo, dispara a mudança de status do pedido (geralmente para7Enviado). Caso contrário → status22(Aguardando romaneio). - Picking-list status: marca como
5(Concluído) quando todos os pedidos terminaram, ou4(Em packing) caso contrário.
Aplica debounce de 3s (MD5 do body) para evitar disparo duplicado pelo operador.
Retorna o detalhe atualizado do pedido.
Quando a parametrização Ignorar itens de serviço no faturamento (IgnoreServiceItemsOnInvoice) está habilitada, os itens cujo SKU é do tipo Serviço são desconsiderados da conferência — não precisam ser enviados em Items.
Request
Responses
- 200
- 400
- 404
Em modo Rascunho: literal "sucesso". Em modo Final: detalhe do pedido (resultado de OrderGet).
Mensagens [BadRequest] típicas:
Processo de faturamento em dupliciade— disparo duplicado 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 NF já emitida.<itens não enviados: …> | <itens enviados qtde a maior: …> | <itens enviados qtde a menor: …>— divergê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 informado para o item X não existe/não está disponível.Erro ao selecionar serial IDSku:X/Erro ao alterar quantidade IDSku:X.Nota Fiscal não emitida— gate final quando NF não saiu e o estado não está na lista de declaração de transporte. Além disso, propaga erros do processo de retaguarda de NF-e e doskuMovementTransferPost.
[NotFound] - Pedido não encontrado.