Appearance
Recebimento de Documentos via API
O sistema valesoft permite a integração de documentos externos através de requisição HTTP GET a uma API de um ERP, ou outro sistema externo.
O comportamento do sistema Valesoft ao receber os dados é de criar novas notas, produtos, locais, clientes e EPC, ou atualizar os mesmos caso já existam, se baseando no campo documentReference
como chave única para o documento, placeReference
para o local, customerReference
para o cliente e productReference
para o produto e epc
para o epc.
Para isso é necessário configurar o token de acesso e a url da API para integração.
A integração Http Json pode chamar APIs sem autenticação ou com autenticação por meio de token passado no header Authorization
, como por exemplo, Basic dXNlcm5hbWU6cGFzc3dvcmQ=
ou Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
A consulta ocorre de forma paginada com lotes de 250 registros. Isso ocorre através dos parâmetros pageIndex
e pageSize
. Exemplo: GET /api/invoice?pageIndex=0&pageSize=250
ou GET /api/invoice?pageIndex=1&pageSize=500
, etc.
Resposta esperada pela integração Http Json
O sistema espera um retorno em formato JSON
da seguinte forma:
JSON
{
"items": [
{
"documentReference": "123/1234",
"documentDescription": "Documento 123",
"documentDate": "2023-10-18",
"documentBatch": "LOTE 987",
"placeReference":"123",
"placeName":"Local 1",
"placeType": "WAREHOUSE",
"customerReference":"321",
"customerName":"Cliente 1",
"type": "MANUFACTURE",
"supplierReference": "123457",
"supplierName": "Fornecedor xyz",
"productReference": "789",
"productGridReference":"78915",
"productType": "RAW",
"productDescription": "Produto 1",
"barcode": "9876543210",
"measureUnit": "Un",
"size": "M",
"color": "Azul",
"batch": "lote 32/2024",
"fraction": 5,
"quantity": 10,
"epc": "ABC456789012345678901234",
"campoCustom1": false,
"campoCustom2": "teste"
}
],
"totalItems": 1
}
Definições dos campos do corpo da requisição:
items
- OBRIGATÓRIO- Lista de registros a serem criados/atualizados
documentReference
- OBRIGATÓRIO- Alfanumérico
- Código do documento
- Chave Primaria - Utilizado para criação ou alteração do registro
documentDescription
- OBRIGATÓRIO- Texto
- Descrição do documento
documentDate
- OBRIGATÓRIO- Data no formato AAAA-MM-DD
- Data de Emissão do documento
- Ex 2023-11-01
documentBatch
- Texto
- Lote do documento
type
- OBRIGATÓRIO- Texto Predefinido - Maiúsculo
- Tipo do documento
- Valores aceitos:
PROCESSING
- Ordem de BeneficiamentoMANUFACTURE
- Ordem de produçãoENTRY
- Nota de EntradaOUTGOING
- Nota de SaídaSALES
- Pedido de vendaCLOUD
- NuvemSHIPPING
- RemessaRAW_REQUEST
- Requisição de material
placeReference
- OBRIGATÓRIO quando informado oplaceName
- Alfanumérico
- Código do Local
- Chave Primaria - Utilizado para criação ou alteração do registro
placeName
- Texto -Nome do Local
placeType
- OBRIGATÓRIO quando informado oplaceName
- Texto Predefinido - Maiúsculo
- Tipo do local
- Valores aceitos:
SITE
- Planta/EmpresaWAREHOUSE
- DepósitoSECTOR
- Setor/PrateleiraCONTAINER
- Armazenagem de localização
customerReference
- OBRIGATÓRIO quando informado ocustomerName
- Alfanumérico
- Código do Cliente
- Chave Primaria - Utilizado para criação ou alteração do registro
customerName
- Texto
- Nome do Cliente
supplierReference
- OBRIGATÓRIO quando informado osupplierName
- Código do fornecedor
- Chave Primaria - Utilizado para criação ou alteração do registro
supplierName
- Nome do fornecedor
productReference
- OBRIGATÓRIO- Alfanumérico
- Código/SKU Único do produto
- Chave Primaria - Utilizado para criação ou alteração do registro
productType
- OBRIGATÓRIO- Texto Predefinido - Maiúsculo
- Tipo do produto
- Valores aceitos:
RAW
- Matéria-primaPRODUCED
- Produto acabadoCONTAINER
- ArmazenagemFIXED_ASSET
- Ativo Imobilizado
productDescription
- OBRIGATÓRIO- Alfanumérico
- Descrição do produto
barcode
- Numérico Inteiro
- Código de barras EAN-13 ou um sequencial numérico único do produto, utilizado para a criação da etiqueta EPC no padrão GS1-SGTIN
measureUnit
- Texto
- Unidade de medida do produto
- Ex. M², Un, KG
productGridReference
- Alfanumérico
- Código/SKU Único da grade do produto
- Chave Primaria - Utilizado para criação ou alteração do registro
size
- Alfanumérico
- Código do tamanho do produto
- Chave Primaria - Utilizado para criação ou alteração do registro
color
- Alfanumérico
- Código da cor do produto
- Chave Primaria - Utilizado para criação ou alteração do registro
batch
- Alfanumérico
- Lote do item no documento/epc
fraction
- Numérico Decimal
- Quantidade fracionada do produto/epc
- Ex. Peso, Metragem, etc
quantity
- OBRIGATÓRIO- Numérico Inteiro
- Quantidade de etiquetas desse produto no documento
epc
- Alfanumérico com restrição(A-F 0-9)
- Código EPC da etiqueta a ser cadastrada no sistema.
campoCustom1
ecampoCustom2
- Quaisquer nomes de campos personalizados desde que os mesmos estejam devidamente configurados nas configurações de campos personalizados do sistema para as tabelas dessa integração.
totalItems
- Número total de documentos
Tipos de Integrações
Integração por Tipo de Documento:
Na integração por Tipo de Documento, o sistema fará a consulta baseado no tipo de documento selecionado na hora da integração. Retornando apenas documentos deste tipo e seus produtos.
Exemplo de como ficaria a consulta na integração Http Json: GET /api/invoice?documentType=ENTRY
Integração por Referência:
Na integração por referência, o sistema fará a consulta baseado no código informado na hora da integração. Retornando apenas esse documento e seus produtos.
Exemplo de como ficaria a consulta na integração Http Json: GET /api/invoice?documentReference=123456
Integração periódica:
Na integração periódica, o sistema fará uma consulta de periodicamente, informando uma data inicial e final.
Assim, o sistema externo deverá retornar os dados dos documentos e seus produtos, cuja data de emissão atenda a esse intervalo de datas recebidos.
Exemplo de consulta: GET /api/invoice?startDate=20230401&endDate=20230402
- Onde 20230401
seria o parâmetro de data inicial e 20230402
o parâmetro de data final.
Resposta esperada em caso de erro
Retornar uma resposta padrão HTTP com o respectivo status de erro
JSON
{
"errorMessage": "Mensagem de erro"
}