Visão Geral
A API de Documentos de Saída do WMS foi desenvolvida para receber informações de sistemas externos e transformar esses dados em registros estruturados dentro do processo de expedição do armazém. Seu objetivo é permitir a integração padronizada de pedidos e notas fiscais de saída, centralizando no backend toda a validação, normalização, cálculo e persistência das informações. Com isso, a integração não depende de regras no front-end e garante maior consistência operacional. A integração segue o conceito de processamento em lote, permitindo o envio de um ou mais documentos na mesma requisição, com retorno estruturado por item processado. Para documentos de saída, a integração também realiza uma análise inicial de estoque:- para
nfe, a verificação considera o produto e o lote exato - para pedido, a verificação considera:
- produto + lote, quando o lote é informado
- ou o saldo total do produto, quando o lote não é informado
/v1/documentos-saida
Headers
| Nome | Valor |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Campos
Documento
| Nome | Tipo | Descrição |
|---|---|---|
codigo | string | Código ou Numero |
tipo | string | nfe ou pedido |
serie | string | Série do documento |
chave_acesso | string | Chave de acesso quando o tipo de documento for nfe |
data_emissao | string | formato yyyy-mm-ddd |
origem_id | string | Identificador de origem do sistema externo |
Emitente
| Nome | Tipo | Descrição |
|---|---|---|
codigo | string | codigo interno do erp |
nome | string | Nome ou razão social do destinatário |
documento | string | CNPJ ou CPF do destinatário |
tipo_pessoa | string | juridica ou fisica |
endereco.logradouro | string | Nome da rua / avenida |
endereco.numero | string | Número do endereço |
endereco.bairro | string | Bairro |
endereco.cidade | string | Cidade |
endereco.uf | string | UF (sigla do estado) |
endereco.cep | string | CEP no formato 00000-000 |
Destinatário
| Nome | Tipo | Descrição |
|---|---|---|
codigo | string | codigo interno do erp |
nome | string | Nome ou razão social do destinatário |
documento | string | CNPJ ou CPF do destinatário |
tipo_pessoa | string | juridica ou fisica |
endereco.logradouro | string | Nome da rua / avenida |
endereco.numero | string | Número do endereço |
endereco.bairro | string | Bairro |
endereco.cidade | string | Cidade |
endereco.uf | string | UF (sigla do estado) |
endereco.cep | string | CEP no formato 00000-000 |
Itens [array]
| Nome | Tipo | Descrição |
|---|---|---|
sequencial | string | Número da Nota Fiscal de Entrada |
produto | json | Codigo do produto ou dados |
| lote | sring | Lote do item |
| data_validade | sring | formato yyyy-mm-ddd |
| quantidade | number | Quantidade do produto |
| valor_unitario | number | Valor unitário do produto |
Produto
| Nome | Tipo | Descrição |
|---|---|---|
codigo | string | Código do produto |
descricao | string | Descrição do produto |
tipo | string | S ou L (Sólido ou Líquido |
unidade_medida | string | CX, LT, BD,BB |
peso_bruto | number | Peso Bruto unitário do produto |
peso_liquido | number | Peso Líquido unitário do produto |
peso_cubado | number | Peso Cubado unitário do produto |
valor_unitario | number | Valor unitário do produto |
Exemplo
Erros comuns
| Código | Mensagem | Causa Provável |
|---|---|---|
| 400 | Campos obrigatórios ausentes | Campo obrigatório não enviado no payload, como documento.codigo, documento.tipo, documento.data_emissao, emitente.nome, destinatario.nome ou itens sem produto.codigo e quantidade |
| 400 | Tipo de documento inválido | Valor de documento.tipo diferente dos aceitos pela API. Para saída: pedido ou nfe |
| 401 | Sessão inválida | Token Bearer ausente, inválido, expirado ou não reconhecido. |
| 409 | Documento já vinculado a romaneio e não pode ser reprocessado | O documento já entrou no fluxo operacional e possui vínculo em romaneios_documentos_saida, impedindo atualização pela integração |
| 500 | Erro interno ao processar entrada | Falha inesperada no processamento da RPC, normalmente causada por inconsistência de dados, relacionamento inválido ou estrutura incompleta no banco |
- Se o produto, emitente ou destinatário ainda não existir, será criado automaticamente vinculado à empresa.
- A função respeita as RLS policies para garantir que o usuário só altere dados da empresa à qual está vinculado.

