Skip to main content

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
Com base nessa análise, os itens e o documento podem ser classificados conforme disponibilidade total, parcial ou indisponível de estoque, permitindo que o processo operacional já se inicie com uma visão de atendimento. Método HTTP: POST /v1/documentos-saida

Headers

NomeValor
Content-Typeapplication/json
AuthorizationBearer <token>

Campos

Documento

NomeTipoDescrição
codigostringCódigo ou Numero
tipostringnfe ou pedido
seriestringSérie do documento
chave_acessostringChave de acesso quando o tipo de documento for nfe
data_emissaostringformato yyyy-mm-ddd
origem_idstringIdentificador de origem do sistema externo

Emitente

NomeTipoDescrição
codigostringcodigo interno do erp
nomestringNome ou razão social do destinatário
documentostringCNPJ ou CPF do destinatário
tipo_pessoastringjuridica ou fisica
endereco.logradourostringNome da rua / avenida
endereco.numerostringNúmero do endereço
endereco.bairrostringBairro
endereco.cidadestringCidade
endereco.ufstringUF (sigla do estado)
endereco.cepstringCEP no formato 00000-000

Destinatário

NomeTipoDescrição
codigostringcodigo interno do erp
nomestringNome ou razão social do destinatário
documentostringCNPJ ou CPF do destinatário
tipo_pessoastringjuridica ou fisica
endereco.logradourostringNome da rua / avenida
endereco.numerostringNúmero do endereço
endereco.bairrostringBairro
endereco.cidadestringCidade
endereco.ufstringUF (sigla do estado)
endereco.cepstringCEP no formato 00000-000

Itens [array]

NomeTipoDescrição
sequencialstringNúmero da Nota Fiscal de Entrada
produtojsonCodigo do produto ou dados
lotesringLote do item
data_validadesringformato yyyy-mm-ddd
quantidadenumberQuantidade do produto
valor_unitarionumberValor unitário do produto

Produto

NomeTipoDescrição
codigostringCódigo do produto
descricaostringDescrição do produto
tipostringS ou L (Sólido ou Líquido
unidade_medidastringCX, LT, BD,BB
peso_brutonumberPeso Bruto unitário do produto
peso_liquidonumberPeso Líquido unitário do produto
peso_cubadonumberPeso Cubado unitário do produto
valor_unitarionumberValor unitário do produto

Exemplo

[
    {
      "documento": {
        "codigo": "NF654321",
        "tipo": "nfe",
        "serie": "1",
        "chave_acesso": "35260312345678000199550010000043211000043210",
        "data_emissao": "2026-03-30",
        "origem_id": "ERP-NFE-654321"
      },
      "emitente": {
        "codigo": "EMIT0002",
        "nome": "INDÚSTRIA ALFA LTDA",
        "documento": "33.444.555/0001-66",
        "tipo_pessoa": "juridica",
        "endereco": "Rua das Indústrias",
        "numero": "500",
        "bairro": "Distrito Industrial",
        "cidade": "Jundiaí",
        "uf": "SP",
        "cep": "13200-000"
      },
      "destinatario": {
        "codigo": "DEST0002",
        "nome": "DISTRIBUIDORA BETA LTDA",
        "documento": "44.555.666/0001-77",
        "tipo_pessoa": "juridica",
        "endereco": "Rodovia Anhanguera",
        "numero": "KM 70",
        "bairro": "Zona Rural",
        "cidade": "Limeira",
        "uf": "SP",
        "cep": "13480-000"
      },
      "itens": [
        {
          "sequencial": 1,
          "produto": {
            "codigo": "PROD010",
            "descricao": "Produto 010",
            "tipo": "S",
            "unidade_medida": "UN",
            "peso_bruto": 12.5,
            "peso_liquido": 12,
            "peso_cubado": 0.08
          },
          "lote": "LT20260301",
          "data_validade": "2027-03-01",
          "quantidade": 30,
          "valor_unitario": 22.9
        },
        {
          "sequencial": 2,
          "produto": {
            "codigo": "PROD011",
            "descricao": "Produto 011",
            "tipo": "S",
            "unidade_medida": "CX",
            "peso_bruto": 20,
            "peso_liquido": 19,
            "peso_cubado": 0.12
          },
          "lote": "LT20260302",
          "data_validade": "2026-11-15",
          "quantidade": 10,
          "peso_bruto": 200,
          "peso_liquido": 190,
          "peso_cubado": 1.2,
          "valor_total": 890
        }
      ]
    }
  ]
{
	"ok": true,
	"status": 200,
	"message": "Integração de documentos de saída processada",
	"resultado": [
		{
			"ok": true,
			"acao": "insert",
			"tipo": "nfe",
			"indice": 0,
			"status": 200,
			"status_id": 2,
			"emitente_id": "0ba77753-2f8e-48a3-b99d-ab6b35248c44",
			"valor_total": 1577,
			"documento_id": "53ca92bb-1f1e-49c1-bdc0-52088be6e8b9",
			"status_codigo": "AGUARDANDO_ESTOQUE",
			"destinatario_id": "d7d15787-0634-4ef7-813a-eb31088f0ea1",
			"documento_codigo": "NF654321",
			"peso_bruto_total": 575,
			"itens_processados": 2,
			"peso_cubado_total": 3.6,
			"peso_liquido_total": 550
		}
	],
	"processados": 1
}

Erros comuns

CódigoMensagemCausa Provável
400Campos obrigatórios ausentesCampo 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
400Tipo de documento inválidoValor de documento.tipo diferente dos aceitos pela API. Para saída: pedido ou nfe
401Sessão inválidaToken Bearer ausente, inválido, expirado ou não reconhecido.
409Documento 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
500Erro interno ao processar entradaFalha 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.