Skip to main content

Estrutura dos Arquivos de Integração

Este documento descreve os tipos de arquivos aceitos na integração via Blob Storage e a lista completa de colunas permitidas por tipo.

Regras gerais

  • Formato esperado: JSON.
  • Cada item do JSON deve ser um objeto com pares campo: valor.
  • Campos fora do contrato do tipo podem ser desconsiderados.
  • Campos ausentes podem ser preenchidos automaticamente com valor vazio durante o processamento.
  • Tipos aceitos na entrada: string, int, bool e decimal.
  • O integrador normaliza os tipos antes de inserir no banco.
  • Para campos de data, prefira o padrão yyyy-MM-ddT00:00:00.
  • A integração é idempotente: o mesmo registro pode ser enviado mais de uma vez e o WeRetail consegue tratar corretamente as duplicidades.
  • A integração é baseada em regras de negócio do cliente e, em geral, aceita a reapresentação do mesmo dado sem criar duplicidade funcional.

Introdução

A integração da WeRetail foi desenhada para operar de forma simples, segura e repetível. Em termos práticos:

  • o cliente pode enviar os mesmos registros mais de uma vez sem que isso gere inconsistência no processamento;
  • o WeRetail identifica e trata duplicidades na origem dos dados;
  • a troca de informação é feita em formato padronizado e com validação por tipo de arquivo;
  • a operação é orientada ao fluxo real do negócio, e não apenas a um feed técnico isolado.

Esses princípios permitem que a integração funcione com alta resiliência, mesmo em cenários de reprocessamento, reconciliação ou sincronização de dados em intervalos curtos.

1) Lojas

Baixar JSON de Exemplo
  • Prefixo: LOJAS-
  • Tipo de dado: cadastro de lojas.
CampoObrigatórioTipoDescrição
portalSimint, stringPode ser enviado fixo como 1, exceto quando houver estrutura de portais para franqueados.
empresaSimint, stringIdentificador da loja/empresa na origem.
nome_empSimstringNome da loja.
razao_empSimstringRazão social da loja.
cnpj_empSimstringCNPJ da loja (somente números).
endereco_empNãostringLogradouro da loja.
num_empNãostring, intNúmero do endereço da loja.
complement_empNãostringComplemento do endereço.
bairro_empNãostringBairro da loja.
cep_empNãostringCEP da loja.
cidade_empNãostringCidade da loja.
estado_empNãostringEstado da loja.
email_empNãostringE-mail comercial da loja.

2) Vendedores

Baixar JSON de Exemplo
  • Prefixo: VENDEDORES-
  • Tipo de dado: cadastro de vendedores.
CampoObrigatórioTipoDescrição
portalSimint, stringRecomenda-se enviar 1 quando não houver multiportal.
cod_vendedorSimstring, intCódigo do vendedor na origem.
nome_vendedorSimstringNome do vendedor.
tipo_vendedorSimstringTipo do vendedor: V (Vendedor) ou R (Representante).
end_vend_ruaNãostringRua do endereço do vendedor.
end_vend_numeroNãostring, intNúmero do endereço do vendedor.
end_vend_complementoNãostringComplemento do endereço do vendedor.
end_vend_bairroNãostringBairro do endereço do vendedor.
end_vend_cepNãostringCEP do endereço do vendedor.
end_vend_cidadeNãostringCidade do vendedor.
end_vend_ufNãostringUF do vendedor.
fone_vendedorNãostringTelefone do vendedor.
mail_vendedorNãostringE-mail do vendedor.
dt_updNãostringData da última atualização do cadastro.
cpf_vendedorNãostringCPF do vendedor.
ativoNãobool, stringIndica se o vendedor está ativo.
data_admissaoNãostringData de admissão do vendedor.
data_saidaNãostringData de saída ou desligamento.
timestampNãostring, datetimeMarca temporal de atualização.
matriculaNãostring, intMatrícula funcional do vendedor.
id_tipo_vendaNãoint, stringCódigo do tipo de venda.
descricao_tipo_vendaNãostringDescrição do tipo de venda.

3) Clientes

Baixar JSON de Exemplo
  • Prefixo: CLIENTES-
  • Tipo de dado: cadastro de clientes.

O cadastro de clientes é obrigatório somente quando a operação pretende usar o CRM da WeRetail. Em cenários em que o cliente não vai explorar o CRM, esse arquivo pode ser omitido ou enviado apenas com os dados necessários para o fluxo operacional.

CampoObrigatórioTipoDescrição
portalSimint, stringRecomenda-se enviar 1 quando não houver multiportal.
cod_clienteSimstring, intCódigo do cliente na origem. Pode ser um identificador único interno, CPF, CNPJ, documento ou qualquer chave exclusiva do cliente. O WeRetail gera uma sequência interna para o cadastro, então esse valor não precisa ser um número sequencial do sistema central.
nome_clienteSimstringNome do cliente.
data_nascimentoNãostringData de nascimento do cliente. Preferir yyyy-MM-ddT00:00:00.
razao_clienteSimstringNome ou razão social do cliente. Pode ser igual a nome_cliente.
doc_clienteNãostringDocumento do cliente.
tipo_clienteNãostringTipo cadastral do cliente.
cidade_clienteNãostringCidade do cliente.
uf_clienteNãostringUF do cliente.
paisNãostringPaís do cliente.
cel_clienteNãostringCelular do cliente. É obrigatório caso o CRM WeRetail seja utilizado.
email_clienteNãostringE-mail do cliente.
ativoNãobool, stringIndica se o cliente está ativo.
dt_updateNãostringData da última atualização.
cliente_anonimoNãoboolIndica cliente anônimo.

4) Produtos

Baixar JSON de Exemplo
  • Prefixo: PRODUTOS-
  • Tipo de dado: cadastro de produtos.

Esta interface recebe os produtos no nível de Produto + cor + tamanho, ou seja, o cadastro é de SKU. O WeRetail trata essa estrutura como o nível de item operacional para vendas, trocas e estoque.

Os campos obrigatórios são: portal, cod_produto, nome, cod_barra e referencia.

Caso você não tenha um campo específico cod_produto, pode enviar neste campo o cod_barras. O WeRetail irá criar um código incremental interno para controle e individualizar este cadastro.

O campo referencia agrupa os códigos de barras de um mesmo produto. Por exemplo, a Camisa Social, referência 0001, possui as cores Branco, Verde e Preto, com tamanhos P, M, G e GG. Use a mesma referencia para agrupar as cores e os tamanhos.

Os campos id_cor, desc_cor, id_tamanho e desc_tamanho não são obrigatórios, mas são extremamente desejáveis para relatórios.

CampoObrigatórioTipoDescrição
portalSimint, stringRecomenda-se enviar 1 quando não houver multiportal.
cod_produtoSimstring, intCódigo do produto na origem. Caso não exista um campo específico, pode receber o cod_barras. O WeRetail gera um código incremental interno.
nomeSimstringNome do produto.
cod_barraSimstringCódigo de barras do item.
desc_corNãostringCor do produto. Campo desejável para relatórios.
desc_tamanhoNãostringTamanho do produto. Campo desejável para relatórios.
desc_setorNãostringSetor ou categoria principal do produto.
desc_linhaNãostringLinha do produto.
desc_marcaNãostringMarca do produto.
desc_colecaoNãostringColeção do produto.
desc_espessuraNãostringEspessura do produto, quando aplicável.
desc_classificacaoNãostringClassificação comercial ou de catálogo.
referenciaSimstringReferência usada para agrupar os códigos de barras de um mesmo produto, incluindo suas cores e tamanhos.
cod_auxiliarNãostring, intCódigo auxiliar de integração.
unidadeNãostringUnidade de medida do item.
dt_updateNãostringData da última atualização do produto.
desativadoNãobool, stringIndica se o produto foi desativado.
id_espessuraNãoint, stringCódigo da espessura.
id_classificacaoNãoint, stringCódigo da classificação.
id_corNãoint, stringCódigo da cor. Campo desejável para relatórios.
id_tamanhoNãoint, stringCódigo do tamanho. Campo desejável para relatórios.
id_setorNãoint, stringCódigo do setor.
id_linhaNãoint, stringCódigo da linha.
id_marcaNãoint, stringCódigo da marca.
id_colecaoNãoint, stringCódigo da coleção.
id_produtos_opticos_tipoNãoint, stringCódigo do tipo óptico do produto.
id_sped_tipo_itemNãoint, stringCódigo do tipo de item no SPED.

5) Estoque

Baixar JSON de Exemplo
  • Prefixo: ESTOQUE_PRODUTOS
  • Tipo de dado: posição de estoque por item.

Estoque é a posição atual, não as movimentações. Ele é enviado no nível de SKU, seguindo o mesmo código de produto informado no cadastro de produtos.

Os campos obrigatórios são: portal, cnpj_emp, cod_produto e quantidade.

O campo cod_produto segue a mesma regra do cadastro de produtos: pode ser qualquer código único do cliente, desde que o mesmo código seja reaproveitado nas vendas, trocas e cadastro de produtos.

CampoObrigatórioTipoDescrição
portalSimint, stringRecomenda-se enviar 1 quando não houver multiportal.
cnpj_empSimstringCNPJ da loja (somente números).
cod_produtoSimstring, intCódigo do produto na origem. Deve coincidir com o código informado no cadastro de produtos.
quantidadeSimint, decimal, stringQuantidade atual em estoque.
cod_barraNãostringCódigo de barras do item.
preco_custoNãodecimal, intPreço de custo do item.
preco_vendaNãodecimal, intPreço de venda do item.
custo_medioNãodecimal, intCusto médio do produto.
localizacaoNãostringLocalização física do item no armazém.

6) Movimentações

Baixar JSON de Exemplo
  • Prefixo: MOVIMENTACAO

  • Tipo de dado: movimentações de venda, faturamento e trocas.

O WeRetail trata as vendas por meio do CFOP da operação. A partir disso, a mesma base de movimento pode representar venda, troca, transferência, devolução ou outro tipo de movimentação operacional.

Portanto, nesta interface deve ser enviado todo o movimento de acordo com a CFOP da operação, sempre no nível de SKU. Isso significa que cada item movimentado precisa refletir o produto, a quantidade e o contexto fiscal da operação.

Nesta interface estarão todas as movimentações pertinentes ao negócio, como vendas, trocas, devoluções, transferências, consignados e qualquer outra operação que se queira acompanhar no WeRetail.

CampoObrigatórioTipoDescrição
portalSimint, stringCódigo do portal ou 1 fixo.
codigo_clienteSimstring, intCódigo do cliente conforme enviado no cadastro de clientes.
chave_nfSimstringChave da nota fiscal eletrônica.
cnpj_empSimstringCNPJ da filial/loja que efetuou a venda.
cod_vendedorSimstring, intCódigo do vendedor conforme enviado no cadastro de vendedores.
cod_produtoSimstring, intCódigo do produto conforme informado no cadastro de produtos.
transacaoSimstring, intIdentificador único da transação.
documentoSimstring, intNúmero do ticket ou documento da movimentação.
ordemSimintOrdem do item dentro da venda. Pode ser sequencial.
data_documentoSimstringData da transação. Preferir yyyy-MM-ddT00:00:00.
quantidadeSimint, decimal, stringQuantidade do item.
valor_totalSimdecimal, int, stringValor total do lançamento.
data_lancamentoNãostringData de lançamento da operação. Pode ser igual a data_documento.
desc_cfopNãostringDescrição do CFOP.
id_cfopNãoint, stringCódigo do CFOP.
valor_liquidoNãodecimal, intValor líquido do item.
valor_icmsNãodecimal, intValor do ICMS.
aliquota_icmsNãodecimalAlíquota do ICMS.
base_icmsNãodecimalBase de cálculo do ICMS.
valor_pisNãodecimal, intValor do PIS.
aliquota_pisNãodecimalAlíquota do PIS.
base_pisNãodecimalBase de cálculo do PIS.
valor_cofinsNãodecimal, intValor do COFINS.
aliquota_cofinsNãodecimalAlíquota do COFINS.
base_cofinsNãodecimalBase de cálculo do COFINS.
valor_ipiNãodecimal, intValor do IPI.
aliquota_ipiNãodecimalAlíquota do IPI.
base_ipiNãodecimalBase de cálculo do IPI.
total_dinheiroNãodecimal, intTotal pago em dinheiro.
total_chequeNãodecimal, intTotal pago em cheque.
total_cartaoNãodecimal, intTotal pago em cartão.
total_crediarioNãodecimal, intTotal pago em crediário.
total_convenioNãodecimal, intTotal pago por convênio.
freteNãodecimal, intValor do frete.
operacaoNãostringTipo de operação da venda.
tipo_transacaoNãostringTipo da transação.
canceladoNãobool, stringIndica se a operação foi cancelada.
excluidoNãobool, stringIndica se o registro foi excluído.
identificadorNãostring, intIdentificador único do item.
obsNãostringObservações da operação.
preco_unitarioNãodecimal, intPreço unitário do item.
hora_lancamentoNãostringHora do lançamento do documento.
natureza_operacaoNãostringNatureza da operação.
tabela_precoNãostringTabela de preço aplicada.
nome_tabela_precoNãostringNome da tabela de preço.
cod_sefaz_situacaoNãostring, intSituação fiscal na SEFAZ.
desc_sefaz_situacaoNãostringDescrição da situação fiscal.
protocolo_aut_nfeNãostringProtocolo de autorização da NFE.
dt_updateNãostringData da última atualização.
total_cheque_prazoNãodecimal, intTotal de cheque a prazo.
cod_natureza_operacaoNãostring, intCódigo da natureza da operação.
preco_tabela_epocaNãodecimal, intPreço da tabela em época específica.
desconto_total_itemNãodecimal, intDesconto total do item.
transacao_pedido_vendaNãostring, intIdentificador da transação do pedido.
codigo_modelo_nfNãostring, intCódigo do modelo da NF.
acrescimoNãodecimal, intValor de acréscimo.
total_pixNãodecimal, intTotal pago em PIX.

7) Pedidos

Baixar JSON de Exemplo
  • Prefixo: PEDIDO_VENDAS
  • Tipo de dado: pedidos de venda externos.
CampoObrigatórioTipoDescrição
pedidoSimstring, intIdentificador do pedido na origem.
emissaoSimstringData de emissão do pedido. Preferir yyyy-MM-ddT00:00:00.
cod_vendedorSimstring, intCódigo do vendedor na origem.
cnpj_empSimstringCNPJ da loja (somente números).
cod_produtoSimstring, intCódigo do produto na origem.
cod_clienteSimstring, intCódigo ou documento do cliente na origem.
qtde_originalSimint, decimal, stringQuantidade original do pedido.
precoSimdecimal, int, stringPreço unitário do item.
lastupdateonNãostringData da última atualização registrada.
lastsynconNãostringData da última sincronização.
qtde_faturadaNãoint, decimal, stringQuantidade faturada do pedido.
qtde_canceladaNãoint, decimal, stringQuantidade cancelada do pedido.
qtde_entregarNãoint, decimal, stringQuantidade pendente de entrega.
valor_originalNãodecimal, int, stringValor original do pedido.
valor_faturadoNãodecimal, int, stringValor faturado do pedido.
valor_canceladoNãodecimal, int, stringValor cancelado do pedido.
valor_entregarNãodecimal, int, stringValor pendente de entrega.
valor_embaladoNãodecimal, int, stringValor embalado do pedido.
desconto_itemNãodecimal, int, stringDesconto aplicado no item.
tipoNãostringTipo do pedido ou operação.