Introdução
Seja bem-vindo à documentação da API IS Collector!
Documentação atualizada em: 13/02/2023 - ver histórico de atualizações
Informações importantes:
1. Para trabalhar com esta API é necessário que sua conta possua as credenciais de acesso TOKEN e SECRET. Solicite entrando em contato com o nosso suporte através do e-mail: support@iscollector.com.
2. O uso desta API só pode ser feito por contas que possuam licenças ativas na plataforma. Caso a conta não possua nenhuma licença, irá sempre retornar o código de erro 5 (veja seção de possíveis erros).
Autenticação
Gerar Token
Exemplo de código para obter o Token de acesso:
import requests
import json
url = "https://app.iscollector.com/api/v1/authenticate"
payload = json.dumps({
"username": "{TOKEN}",
"password": "{SECRET}"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/authenticate',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"username" : "{TOKEN}",
"password": "{SECRET}"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Através deste serviço você fará a autenticação utilizando as credenciais de TOKEN e SECRET (que podem ser vistas no menu "Gerenciar Conta / Configurações / Integração" do nosso Gerenciador Web) e como resposta obterá o Token de acesso.
O Token de acesso gerado deverá ser enviado com Bearer Token, através do header, para validar o acesso em todos os demais endpoints desta API. Authorization: Bearer {token de acesso}
Requisição HTTP
POST https://app.iscollector.com/api/v1/authenticate
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Descrição |
---|---|---|
username | Obrigatório |
Credencial TOKEN |
password | Obrigatório |
Credencial SECRET |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Token de acesso gerado com sucesso.",
"access_token": "{token de acesso}",
"expires_in": 86400
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
access_token | Token de acesso que deve ser salvo e enviado no header das requisições seguintes |
expires_in | Número de segundos que o token de acesso permanecerá válido (24 hrs) -- Incremente no seu horário atual e salve a informação de quando o token irá expirar -- Antes de fazer uma requisição, verifique se o seu token ainda não expirou e, caso datetime atual seja maior que datetime da expiração, faça uma nova autenticação para gerar um novo token de acesso |
Coletas Avulsas
Lista de Produtos
Utilize este serviço para cadastrar/atualizar a lista de produtos que servirá como base para as Coletas Avulsas. A lista será cadastrada/atualizada somente para a filial do token de acesso informado.
Exemplo de código para cadastrar/atualizar a lista de produtos de coletas avulsas:
import requests
import json
url = "https://app.iscollector.com/api/v1/single/items"
payload = json.dumps({
"user": "moises@inlin3.com",
"truncate": True,
"items": [
{
"code": "7899838834054",
"description": "descricao do item UM",
"info1": "desc auxiliar",
"info2": "UN",
"rowsPerPallet": 4,
"boxesPerRow": 6,
"qtyPerBox": 10,
"qtyPerPallet": 100,
"extrainfo": 1
},
{
"code": "9990000005109",
"description": "descricao do item DOIS",
"info1": None,
"info2": None,
"rowsPerPallet": 6,
"boxesPerRow": 8,
"qtyPerBox": 20,
"qtyPerPallet": 200,
"extrainfo": 2
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/single/items',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"truncate": true,
"items": [
{
"code": "7899838834054",
"description": "descricao do item UM",
"info1": "desc auxiliar",
"info2": "UN",
"rowsPerPallet": 4,
"boxesPerRow": 6,
"qtyPerBox": 10,
"qtyPerPallet": 100,
"extrainfo": 1
},
{
"code": "9990000005109",
"description": "descricao do item DOIS",
"info1": null,
"info2": null,
"rowsPerPallet": 6,
"boxesPerRow": 8,
"qtyPerBox": 20,
"qtyPerPallet": 200,
"extrainfo": 2
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/single/items
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
truncate | Obrigatório |
true/false | Indica se a lista de produtos deve ser zerada antes de cadastrar os itens enviados nesta requisição |
items | Opcional |
array | Array com os itens a serem cadastrados/atualizados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os itens a serem cadastrados/atualizados
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código do item -- String(100) |
description |
Obrigatório |
Descrição do item -- String(120) |
info1 |
Opcional |
Descrição auxiliar -- String(20) |
info2 |
Opcional |
Descrição auxiliar -- String(20) |
rowsPerPallet |
Opcional |
Indica o número de camadas que o pallet do produto possui - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
boxesPerRow |
Opcional |
Indica o número de caixas que o pallet do produto possui em cada camada - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
qtyPerBox |
Opcional |
Indica o número de unidades do produto por caixa - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
qtyPerPallet |
Opcional |
Indica o número de unidades do produto por pallet - Obrigatório caso utilize a opção de pallet simplificado -- Integer |
extrainfo |
Opcional |
Pode conter o número 0, 1 ou 2 -- Indica se o aplicativo deve solicitar o registro da informação extra (0 = Não solicitar; 1 = Solicitar informação extra "padrão"; 2 = Solicitar informação extra "número de série"; Veja vídeo explicativo em nossa Central de Ajuda) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de produtos atualizada com sucesso.",
"total": 2687
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade de produtos da lista |
Códigos Relacionados
Utilize este serviço para cadastrar a lista de códigos relacionados a ser utilizada para as coletas avulsas. A lista será cadastrada somente para a filial do token de acesso informado.
Exemplo de código para cadastrar a lista de códigos relacionados para as coletas avulsas:
import requests
import json
url = "https://app.iscollector.com/api/v1/single/relateditems"
payload = json.dumps({
"user": "moises@inlin3.com",
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/single/relateditems',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/single/relateditems
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
truncate | Obrigatório |
true/false | Indica se a lista de códigos relacionados deve ser zerada antes de cadastrar os itens enviados nesta requisição |
relateditems | Opcional |
array | Array com os códigos a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os códigos a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código principal -- String(100) |
relatedcode |
Obrigatório |
Código relacionado ao principal (que deve ser convertido para o principal) -- String(100) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de códigos relacionados atualizada com sucesso.",
"total": 155
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de códigos relacionados cadastrados |
Download Coleta Avulsa
Utilize este endpoint para recuperar a contagem de uma coleta avulsa.
IMPORTANTE! Diferente de inventários e conferências, que podem ser criados pela API, a coleta avulsa não é criada previamente, então você não sabe o ID que deverá ser requisitado neste endpoint. O uso deste serviço deverá ser "acionado manualmente" através da opção de ENVIO PELA API que disponibilizamos em nosso gerenciador. Dessa forma, quando o usuário utilizar esta opção, nosso sistema enviará uma notificação para a sua aplicação com o ID da coleta. Na sequência, é só consumir este serviço normalmente. Saiba como receber notificações
Exemplo de código para recuperar a contagem de uma coleta avulsa:
import requests
import json
url = "https://app.iscollector.com/api/v1/single/download"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 6666,
"mode": "sum"
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/single/download',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id" : 6666,
"mode" : "sum"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/single/download
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID da coleta avulsa |
mode | Obrigatório |
"linebyline" ou "sum" | Modo de consolidação dos dados coletados ("linebyline" = Linha a linha conforme cada bipe; "sum" = Consolidado com as quantidades somadas por código;) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Dados retornados com sucesso.",
"name": "coleta de teste",
"qtyItemsCounted": 2,
"qtyTotalCounted": 70,
"transmissiondate": "2022-06-19 17:41:12",
"deviceId": "e0892dc3bb9c15a3",
"deviceNickname": "Moto E7 Power",
"datacollection": [
{
"CODE": "00003",
"DESCRIPTION": null,
"DESCINFO1": null,
"DESCINFO2": null,
"QTY": "30.0000",
"EXTRAINFO": null,
"COUNTDATE": "2022-06-19 17:31:14"
},
{
"CODE": "00004",
"DESCRIPTION": null,
"DESCINFO1": null,
"DESCINFO2": null,
"QTY": "40.0000",
"EXTRAINFO": [
"777666",
"testete"
],
"COUNTDATE": "2022-06-19 17:36:14"
}
]
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
name | Nome da coleta avulsa |
qtyItemsCounted | Quantidade de códigos distintos coletados |
qtyTotalCounted | Quantidade total contabilizada |
transmissiondate | Momento da transmissão da coleta em UTC+0 (YYYY-MM-DD HH:mm:ss) |
deviceId | ID do dispositivo transmissor |
deviceNickname | Apelido do dispositivo transmissor |
datacollection | Array com os registros da contagem -- Veja o exemplo no código de resposta ao lado |
Inventários
Criar inventário
Utilize este serviço para criar um novo inventário. O inventário será criado para a filial do token de acesso informado.
Exemplo de código para criar um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/create"
payload = json.dumps({
"user": "moises@inlin3.com",
"name": "teste inv API",
"ref": "12345",
"date": "2022-07-20",
"beepOption": 1,
"oneBeepOption": False,
"editOption": True,
"palletOption": 1,
"employeeOption": False,
"productivityQty": False,
"productivityBeep": False
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/create',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"name": "teste inv API",
"ref": "12345",
"date": "2022-07-20",
"beepOption": 1,
"oneBeepOption": false,
"editOption": true,
"palletOption": 1,
"employeeOption" : false,
"productivityQty" : false,
"productivityBeep" : false
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/create
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
name | Obrigatório |
string(80) | Nome da conferência |
ref | Opcional |
string(20) | Qualquer identificador para fazer referência com seu sistema |
date | Obrigatório |
string(10) | Data do inventário no formado YYYY-MM-DD |
beepOption | Obrigatório |
1, 2 ou 3 | Permissão de coleta (1 = Permitir coletar qualquer código; 2 = Permitir coletar somente produtos carregados; 3 = Permitir coletar produtos carregados e pedir confirmação para códigos desconhecidos;) |
oneBeepOption | Obrigatório |
true/false | Se deve permitir somente um bipe por código (não permitir bipe duplicado) |
editOption | Obrigatório |
true/false | Se deve permitir cadastrar/editar a descrição dos códigos bipados através do app |
palletOption | Obrigatório |
1, 2 ou 3 | Coleta de pallets (1 = Não coletar pallets; 2 = Coletar pallets de modo simplificado; 3 = Coletar pallets de modo detalhado;) -- Veja vídeo explicativo em nossa Central de Ajuda) |
employeeOption | Obrigatório |
true/false | Se deve obrigar identificação do operador para trabalhar no inventário |
productivityQty | Obrigatório |
true/false | Acompanhar produtividade por quantidade total |
productivityBeep | Obrigatório |
true/false | Acompanhar produtividade por quantidade de bipes |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Inventário criado com sucesso.",
"id": 11524
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
id | ID do inventário na plataforma IS Collector -- Salve este ID para futuras consultas e interações |
Setores e Áreas
Utilize este serviço para criar a estrutura de posições (Setores e Áreas) de um inventário.
Exemplo de código para criar as posições:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/positions"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"sectors": [
{
"name": "LOJA",
"areas": [
{
"range": 1,
"address": "RUA1P1"
},
{
"range": 2,
"address": "RUA1P2"
},
{
"range": 3
}
]
},
{
"name": "ESTOQUE",
"areas": [
{
"range": 101,
"address": "RUAX7"
},
{
"range": 102
}
]
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/positions',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"sectors": [
{
"name": "LOJA",
"areas": [
{
"range": 1,
"address": "RUA1P1"
},
{
"range": 2,
"address": "RUA1P2"
},
{
"range": 3
}
]
},
{
"name": "ESTOQUE",
"areas": [
{
"range": 101,
"address": "RUAX7"
},
{
"range": 102
}
]
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/positions
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
sectors | Obrigatório |
array | Array com a estrutura de posições (setores e áreas) a serem cadastradas -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com as posições a serem cadastradas
Propriedade | Ocorrência | Descrição |
---|---|---|
name |
Obrigatório |
Nome do setor -- String(30) |
areas |
Obrigatório |
Áreas do setor -- Array |
areas .range |
Obrigatório |
Range (número) da área -- Integer |
areas .address |
Opcional |
Endereço customizado da área (não pode conter espaços) -- String(20) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Atualizado com sucesso.",
"totalpositions": 5
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
totalpositions | Quantidade total de áreas do inventário |
Lista de Produtos
Utilize este serviço para cadastrar/atualizar a lista de produtos de um inventário.
Exemplo de código para cadastrar/atualizar a lista de produtos de um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/items"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"truncate": False,
"items": [
{
"code": "7899838834054",
"description": "descricao do item UM",
"info1": "desc auxiliar",
"info2": "UN",
"rowsPerPallet": 4,
"boxesPerRow": 6,
"qtyPerBox": 10,
"extrainfo": 1
},
{
"code" : "9990000005109",
"description": "descricao do item DOIS",
"info1": null,
"info2": null,
"rowsPerPallet": 6,
"boxesPerRow": 8,
"qtyPerBox": 20,
"extrainfo": 2
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/items',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"truncate": false,
"items": [
{
"code": "7899838834054",
"description": "descricao do item UM",
"info1": "desc auxiliar",
"info2": "UN",
"rowsPerPallet": 4,
"boxesPerRow": 6,
"qtyPerBox": 10,
"extrainfo": 1
},
{
"code" : "9990000005109",
"description": "descricao do item DOIS",
"info1": null,
"info2": null,
"rowsPerPallet": 6,
"boxesPerRow": 8,
"qtyPerBox": 20,
"extrainfo": 2
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/items
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
truncate | Obrigatório |
true/false | Indica se a lista de produtos deve ser zerada antes de cadastrar os itens enviados nesta requisição |
items | Opcional |
array | Array com os itens a serem cadastrados/atualizados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os itens a serem cadastrados/atualizados
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código do item -- String(100) |
description |
Obrigatório |
Descrição do item -- String(120) |
info1 |
Opcional |
Descrição auxiliar -- String(20) |
info2 |
Opcional |
Descrição auxiliar -- String(20) |
rowsPerPallet |
Opcional |
Indica o número de camadas que o pallet do produto possui - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
boxesPerRow |
Opcional |
Indica o número de caixas que o pallet do produto possui em cada camada - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
qtyPerBox |
Opcional |
Indica o número de unidades do produto por caixa - Obrigatório caso utilize a opção de pallet detalhado -- Integer |
qtyPerPallet |
Opcional |
Indica o número de unidades do produto por pallet - Obrigatório caso utilize a opção de pallet simplificado -- Integer |
extrainfo |
Opcional |
Pode conter o número 0, 1 ou 2 -- Indica se o aplicativo deve solicitar o registro da informação extra (0 = Não solicitar; 1 = Solicitar informação extra "padrão"; 2 = Solicitar informação extra "número de série"; Veja vídeo explicativo em nossa Central de Ajuda) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de produtos atualizada com sucesso.",
"total": 2687
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade de produtos da lista |
Códigos Relacionados
Utilize este serviço para cadastrar a lista de códigos relacionados a ser utilizada em um inventário.
Exemplo de código para cadastrar a lista de códigos relacionados em um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/relateditems"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/relateditems',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/relateditems
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
truncate | Obrigatório |
true/false | Indica se a lista de códigos relacionados deve ser zerada antes de cadastrar os itens enviados nesta requisição |
relateditems | Opcional |
array | Array com os códigos a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os códigos a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código principal -- String(100) |
relatedcode |
Obrigatório |
Código relacionado ao principal (que deve ser convertido para o principal) -- String(100) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de códigos relacionados atualizada com sucesso.",
"total": 155
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de códigos relacionados cadastrados |
Estoque
Utilize este serviço para cadastrar o estoque em um inventário. Estas informações servem, exclusivamente, como base comparativa para alguns relatórios.
Exemplo de código para cadastrar o estoque em um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/stock"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"truncate": false,
"stock": [
{
"code": "0909",
"qty": 10,
"itemvalue": 5.54,
"position": "ABC"
},
{
"code": "0909",
"qty": 15,
"itemvalue": 5.54,
"position": "XYZ"
},
{
"code": "898989",
"qty": 12
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/stock',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"truncate": false,
"stock": [
{
"code": "0909",
"qty": 10,
"itemvalue": 5.54,
"position": "ABC"
},
{
"code": "0909",
"qty": 15,
"itemvalue": 5.54,
"position": "XYZ"
},
{
"code": "898989",
"qty": 12
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/stock
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
truncate | Obrigatório |
true/false | Indica se o estoque do inventário deve ser zerado antes de cadastrar os itens enviados nesta requisição |
stock | Opcional |
array | Array com os itens do estoque a ser cadastrado -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os itens a serem cadastrados no estoque
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código do item -- String(100) |
qty |
Obrigatório |
Quantidade a ser conferida -- Numeric |
itemvalue |
Opcional |
Valor unitário do item em formato numérico com 2 casas decimais separadas por ponto (.) -- Numeric |
position |
Opcional |
a posição/endereço do item no estoque -- String(20) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de estoque atualizada com sucesso.",
"total": 3520
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de itens (códigos distintos) no estoque do inventário |
Dispositivos
Utilize este serviço para cadastrar a lista de dispositivos aptos a coletar em um inventário.
Exemplo de código para cadastrar a lista de dispositivos de um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/devices"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"truncate": false,
"devices": [
{
"deviceid": "xcd79xYzA96ed5"
},
{
"deviceid": "1CXXX33-54D6-45X9-9XX5-C07XXXXX75ED"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/devices',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"truncate": false,
"devices": [
{
"deviceid": "xcd79xYzA96ed5"
},
{
"deviceid": "1CXXX33-54D6-45X9-9XX5-C07XXXXX75ED"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/devices
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
truncate | Obrigatório |
true/false | Indica se a lista de dispositivos do inventário deve ser zerada antes de cadastrar os dispositivos enviados nesta requisição |
devices | Opcional |
array | Array com os dispositivos a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os dispositivos a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
deviceid |
Obrigatório |
ID do dispositivo -- String |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de dispositivos atualizada com sucesso.",
"total": 10
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de dispositivos cadastrados para o inventário |
Operadores
Utilize este serviço para cadastrar a lista de operadores aptos a coletar em um inventário.
Exemplo de código para cadastrar a lista de operadores de um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/employees"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"truncate": false,
"employees": [
{
"employeeid": "001210"
},
{
"employeeid": "001211"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/employees',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"truncate": false,
"employees": [
{
"employeeid": "001210"
},
{
"employeeid": "001211"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/employees
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
truncate | Obrigatório |
true/false | Indica se a lista de operadores do inventário deve ser zerada antes de cadastrar os operadores enviados nesta requisição |
employees | Opcional |
array | Array com os operadores a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os operadores a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
employeeid |
Obrigatório |
ID do operador -- String |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de operadores atualizada com sucesso.",
"total": 2
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de operadores cadastrados para o inventário |
Alterar Status
Utilize este serviço para alterar o status de um inventário.
Exemplo de código para alterar o status:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/status"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 11524,
"status": 3
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/status',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 11524,
"status": 3
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/status
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
status | Obrigatório |
1, 2, 3 ou 4 | Status do inventário (1 = EM PLANEJAMENTO; 2 = CRIADO; 3 = EM ANDAMENTO; 4 = FINALIZADO;) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Atualizado com sucesso."
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
Download Inventário
Utilize este endpoint para recuperar a contagem geral do inventário.
Exemplo de código para recuperar a contagem de um inventário:
import requests
import json
url = "https://app.iscollector.com/api/v1/inventory/download"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 9999,
"mode": "sum",
"fields" : "essential",
"datatype" : "txt"
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/inventory/download',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id" : 9999,
"mode" : "sum",
"fields" : "essential",
"datatype" : "txt"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/inventory/download
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID do inventário |
mode | Obrigatório |
"linebyline", "sum" ou "area" | Modo de consolidação dos dados coletados ("linebyline" = Linha a linha conforme cada bipe; "sum" = Consolidado com as quantidades somadas por código; "area" = Consolidado com as quantidades somadas por área/código;) |
fields | Obrigatório |
"all" ou "essential" | Indica quais campos devem conter no arquivo a ser gerado com a contagem do inventário ("all" = Todos; "essential" = Todos com exceção da descrição dos itens;) |
datatype | Obrigatório |
"txt", "csv" ou "json" | Formato do arquivo a ser gerado com a contagem do inventário |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Dados retornados com sucesso.",
"ref": "12345",
"name": "NOME DO INVENTARIO",
"date": "2021-10-04 00:00:00",
"qtyItemsCounted": 350,
"qtyTotalCounted": "2170",
"lastTransmission": "2021-12-31 19:10:46",
"inventoryStatus": 3,
"dataCollectionUrl": "https://app.iscollector.com/api/v1/download/nome-do-arquivo.txt",
"devices": [
{
"IDDEVICE": "e0xxxdc3bABc5a3",
"NICKNAME": "Moto E7 Power"
},
{
"IDDEVICE": "ADA62714-XXXX-43F2-XXWW-6967WWWWBE58",
"NICKNAME": "iPhone Testes"
}
],
"employees": [
{
"REGISTRATIONID": "001210",
"EMPLOYEENAME": "Rafael"
},
{
"REGISTRATIONID": "001211",
"EMPLOYEENAME": "Lavínia"
}
]
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
ref | Referência informada no momento da criação do inventário |
name | Nome do inventário |
date | Data do inventário (informada no cadastro) |
qtyItemsCounted | Quantidade de códigos distintos coletados |
qtyTotalCounted | Quantidade total contabilizada |
lastTransmission | Momento da última transmissão de coleta de área em UTC+0 (YYYY-MM-DD HH:mm:ss) |
inventorystatus | Status do inventário (1 = EM PLANEJAMENTO; 2 = CRIADO; 3 = EM ANDAMENTO; 4 = FINALIZADO;) |
dataCollectionUrl | Url do arquivo gerado com a contagem do inventário -- Veja os campos retornados na tabela abaixo |
devices | Array com os dispositivos que participaram do inventário -- Veja o exemplo no código de resposta ao lado |
employees | Array com os operadores que participaram do inventário -- Veja o exemplo no código de resposta ao lado |
Descrição de todos os campos possíveis de serem exportados no arquivo gerado dataCollectionUrl
Campo | Tipo | Descrição |
---|---|---|
RANGEAREA |
Integer |
Número da área |
AREA |
String(20) |
Número da área ou Endereço (se cadastrado) |
CODE |
String(100) |
Código do item |
DESCRIPTION |
String(120) |
Descrição do item |
DESCINFO1 |
String(20) |
Descrição auxiliar do item |
DESCINFO2 |
String(20) |
Descrição auxiliar do item |
QTY |
Decimal(15,4) |
Quantidade unitária |
QTYPALLET |
Integer |
Quantidade de pallets -- presente somente quando utilizada a opção de coleta de pallets |
QTYROW |
Integer |
Quantidade de camadas -- presente somente quando utilizada a opção de coleta de pallets |
QTYCELL |
Integer |
Quantidade de caixas -- presente somente quando utilizada a opção de coleta de pallets |
QTYTOTAL |
Decimal(15,4) |
Quantidade total -- presente somente quando utilizada a opção de coleta de pallets |
EXTRAINFO |
String(50) |
Informação extra registrada na coleta |
COUNTDATE |
Datetime |
Data e hora do "bipe/registro" na coleta em UTC+0 (YYYY-MM-DD HH:mm:ss) |
Conferências
Criar Conferência
Com este endpoint você pode criar uma conferência diretamente do seu sistema. A conferência é criada para a filial do token de acesso informado.
Exemplo de código para criar uma conferência:
import requests
import json
url = "https://app.iscollector.com/api/v1/check/create"
payload = json.dumps({
"user": "moises@inlin3.com",
"beepOption": 1,
"oneBeepOption": false,
"editOption": true,
"finishOnSend": 1,
"name": "CONF PEDIDO 123",
"ref": "12345",
"items": [
{
"code": "7899837765050",
"description": "descricao do item UM",
"info1": "desc auxiliar 1",
"info2": "desc auxiliar 2",
"qty": 10,
"extrainfo": 0
},
{
"code" : "000005109",
"description": "descricao do item DOIS",
"info1": null,
"info2": null,
"qty": 15,
"extrainfo": 0
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/check/create',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"beepOption": 1,
"oneBeepOption": false,
"editOption": true,
"finishOnSend" : 1,
"name": "CONF PEDIDO 123",
"ref": "12345",
"items": [
{
"code": "7899837765050",
"description": "descricao do item UM",
"info1": "desc auxiliar 1",
"info2": "desc auxiliar 2",
"qty": 10,
"extrainfo": 0
},
{
"code" : "000005109",
"description": "descricao do item DOIS",
"info1": null,
"info2": null,
"qty": 15,
"extrainfo": 0
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/check/create
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
beepOption | Obrigatório |
1, 2 ou 3 | Permissão de coleta (1 = Permitir coletar qualquer código; 2 = Permitir coletar somente produtos carregados; 3 = Permitir coletar produtos carregados e pedir confirmação para códigos desconhecidos;) |
oneBeepOption | Obrigatório |
true/false | Se deve permitir somente um bipe por código (não permitir bipe duplicado) |
editOption | Obrigatório |
true/false | Se deve permitir cadastrar/editar a descrição dos códigos bipados através do app |
finishOnSend | Obrigatório |
0, 1 ou 2 | Modo de finalização da conferência (0 = manualmente pelo gerenciador; 1 = automaticamente na transmissão da primeira coleta; 2 = automaticamente quando tiver acurácia de Cód/Qtd 100%;) |
name | Obrigatório |
string(80) | Nome da conferência |
ref | Opcional |
string(20) | Qualquer identificador para fazer referência com seu sistema |
items | Obrigatório |
array | Array com os itens a serem conferidos -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os itens a serem conferidos
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código do item -- String(100) |
description |
Obrigatório |
Descrição do item -- String(120) |
info1 |
Opcional |
Descrição auxiliar -- String(20) |
info2 |
Opcional |
Descrição auxiliar -- String(20) |
qty |
Obrigatório |
Quantidade a ser conferida -- Numeric |
extrainfo |
Opcional |
Pode conter o número 0, 1 ou 2 -- Indica se o aplicativo deve solicitar o registro da informação extra (0 = Não solicitar; 1 = Solicitar informação extra "padrão"; 2 = Solicitar informação extra "número de série"; Veja vídeo explicativo em nossa Central de Ajuda) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Conferência criada com sucesso.",
"id": 9999
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
id | ID da conferência na plataforma IS Collector -- Salve este ID para futuras consultas e download |
Códigos Relacionados
Utilize este serviço para cadastrar a lista de códigos relacionados a ser utilizada na conferência.
Exemplo de código para cadastrar a lista de códigos relacionados em uma conferência:
import requests
import json
url = "https://app.iscollector.com/api/v1/check/relateditems"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 9999,
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/check/relateditems',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 9999,
"truncate": false,
"relateditems": [
{
"code": "0909",
"relatedcode": "111"
},
{
"code": "0909",
"relatedcode": "222"
},
{
"code": "7899838834054",
"relatedcode": "988888"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/check/relateditems
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID da conferência |
truncate | Obrigatório |
true/false | Indica se a lista de códigos relacionados deve ser zerada antes de cadastrar os itens enviados nesta requisição |
relateditems | Opcional |
array | Array com os códigos a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os códigos a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
code |
Obrigatório |
Código principal -- String(100) |
relatedcode |
Obrigatório |
Código relacionado ao principal (que deve ser convertido para o principal) -- String(100) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de códigos relacionados atualizada com sucesso.",
"total": 4
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de códigos relacionados cadastrados |
Dispositivos
Utilize este serviço para cadastrar a lista de dispositivos aptos a coletar em uma conferência.
Exemplo de código para cadastrar a lista de dispositivos de uma conferência:
import requests
import json
url = "https://app.iscollector.com/api/v1/check/devices"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 9999,
"truncate": false,
"devices": [
{
"deviceid": "xcd79xYzA96ed5"
},
{
"deviceid": "1CXXX33-54D6-45X9-9XX5-C07XXXXX75ED"
}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/check/devices',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id": 9999,
"truncate": false,
"devices": [
{
"deviceid": "xcd79xYzA96ed5"
},
{
"deviceid": "1CXXX33-54D6-45X9-9XX5-C07XXXXX75ED"
}
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/check/devices
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID da conferência |
truncate | Obrigatório |
true/false | Indica se a lista de dispositivos da conferência deve ser zerada antes de cadastrar os dispositivos enviados nesta requisição |
devices | Opcional |
array | Array com os dispositivos a serem cadastrados -- Veja a descrição de cada propriedade na tabela abaixo |
Detalhamento do Array com os dispositivos a serem cadastrados
Propriedade | Ocorrência | Descrição |
---|---|---|
deviceid |
Obrigatório |
ID do dispositivo -- String |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Lista de dispositivos atualizada com sucesso.",
"total": 10
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
total | Quantidade total de dispositivos cadastrados para a conferência |
Download Conferência
Utilize este endpoint para recuperar a contagem geral da conferência.
Exemplo de código para recuperar a contagem de uma conferência:
import requests
import json
url = "https://app.iscollector.com/api/v1/check/download"
payload = json.dumps({
"user": "moises@inlin3.com",
"id": 9999,
"mode": "sum"
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token de acesso}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.iscollector.com/api/v1/check/download',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"user" : "moises@inlin3.com",
"id" : 9999,
"mode" : "sum"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer {token de acesso}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Requisição HTTP
POST https://app.iscollector.com/api/v1/check/download
Não esqueça de enviar o token no header da requisição: Authorization: Bearer {token}
Parâmetros a serem enviados
Os parâmetros devem ser enviados em JSON no Body da requisição.
Parâmetro | Ocorrência | Valor | Descrição |
---|---|---|---|
user | Obrigatório |
Email de um usuário válido da sua conta | |
id | Obrigatório |
numeric | ID da conferência |
mode | Obrigatório |
"linebyline" ou "sum" | Modo de consolidação dos dados coletados ("linebyline" = Linha a linha conforme cada bipe; "sum" = Consolidado com as quantidades somadas por código;) |
Resposta
Se a requisição tiver sucesso, retornará um JSON conforme exemplo abaixo:
{
"status": "OK",
"message": "Dados retornados com sucesso.",
"ref": "12345",
"name": "CONF PEDIDO 123",
"qtyItemsToCheck": 3,
"qtyTotalToCheck": 25.0000,
"qtyItemsCounted": 6,
"qtyTotalCounted": 250.0000,
"transmissions": 1,
"registrationdate": "2022-05-30 18:41:37",
"completiondate": null,
"datacollection": [
{
"CODE": "00001",
"DESCRIPTION": "Descrição do item",
"DESCINFO1": null,
"DESCINFO2": null,
"QTY": 10.0000,
"EXTRAINFO": "L123",
"COUNTDATE": "2022-05-30 19:10:51"
},
{
"CODE": "00002",
"DESCRIPTION": null,
"DESCINFO1": null,
"DESCINFO2": null,
"QTY": 20.0000,
"EXTRAINFO": null,
"COUNTDATE": "2022-05-30 19:15:51"
}
],
"devices": [
{
"IDDEVICE": "e0xxxdc3bABc5a3",
"NICKNAME": "Moto E7 Power"
}
]
}
Propriedade | Descrição |
---|---|
status | Resultado da requisição -- "OK" quando sucesso (veja seção de possíveis erros) |
message | Informação de sucesso ou detalhes do erro |
ref | Referência informada no momento da criação da conferência |
name | Nome de conferência |
qtyItemsToCheck | Quantidade de itens a conferir (qtd códigos distintos) |
qtyTotalToCheck | Quantidade total a conferir |
qtyItemsCounted | Quantidade de códigos distintos coletados |
qtyTotalCounted | Quantidade total contabilizada |
transmissions | Número de coletas transmitidas na conferência |
registrationdate | Momento de criação da conferência em UTC+0 (YYYY-MM-DD HH:mm:ss) |
completiondate | Momento da finalização da conferência em UTC+0 (YYYY-MM-DD HH:mm:ss) -- Se esta propriedade estiver com valor NULL, significa que a conferência ainda não foi finalizada |
datacollection | Array com os registros da contagem -- Veja o exemplo no código de resposta ao lado |
devices | Array com os dispositivos que participaram da conferência -- Veja o exemplo no código de resposta ao lado |
Receber notificações
Esta integração faz com que o usuário consiga enviar a contagem de coletas avulsas, inventários e conferências através da opção ENVIAR PELA API, disponível em nosso gerenciador web.
Quando utilizada esta opção, nossa API envia os parâmetros descritos abaixo para o endpoint de recebimento de notificações, que deverá ser previamente cadastrado em nosso gerenciador web.
Parâmetros
Os parâmetros serão enviados em JSON no Body da requisição, utilizando o método POST.
Parâmetro | Valor | Descrição |
---|---|---|
branchToken | String | Credencial TOKEN da filial que está fazendo o envio |
type | "single", "inventory" ou "check" | Tipo da notificação ("single" = Coleta Avulsa; "inventory" = Inventário; "check" = Conferência;) |
id | numeric | ID da coleta avulsa ou do inventário ou da conferência, de acordo com o parâmetro type |
Endpoint para recebimento
Para cadastrar a URL que irá receber as notificações, acesse o menu Gerenciar conta e depois a área de Integração em nosso gerenciador web.
Token de verificação
Opcionalmente, você pode cadastrar um token para que a nossa API envie com Bearer Token no Header da requisição para o seu endpoint. O cadastro do token de verificação também pode ser feito através do menu Gerenciar conta / Integração em nosso gerenciador web.
O que esperamos de retorno
Para que a nossa API entenda que o envio foi recebido com sucesso, esperamos o retorno com HTTP CODE 200 e com conteúdo text/plain contendo apenas OK.
Com este retorno, será sinalizado para o usuário que está fazendo o envio que a comunicação foi bem sucedida. Caso contrário, será exibido um alerta com o retorno obtido.
Erros
Se alguma requisição apresentar problema, retornará um JSON parecido com o exemplo abaixo:
{
"status": "ERROR",
"error_code": 6,
"message": "Autenticação não realizada. Verifique suas credenciais."
}
Http Code | Status | Error Code | Descrição |
---|---|---|---|
401 | ERROR | 1 | Bearer Token não submetido. |
401 | ERROR | 2 | Token inválido - expirado ou incorreto. |
401 | ERROR | 3 | Usuário não submetido. |
401 | ERROR | 4 | Acesso negado para o usuário informado. |
401 | ERROR | 5 | Conta sem licença ativa. |
401 | ERROR | 6 | Autenticação não realizada. Verifique suas credenciais. |
422 | ERROR | 7 | Dados inválidos na solicitação -- valide os parâmetros e tente novamente. (Obs: adiciona parâmetro "errors" no retorno indicando os erros encontrados.) |
422 | ERROR | 8 | Solicitação não processada. (Obs: parâmetro de retorno "message" informa o problema encontrado.) |
422 | ERROR | 9 | Ocorreu um erro desconhecido ao processar a solicitação. Por favor, tente novamente ou contate nosso suporte. |
503 | UNDER_MAINTENANCE | O sistema está passando por manutenção. Tente novamente dentro de alguns instantes. | |
400 | Requisição incorreta -- Valide os parâmetros e tente novamente. | ||
404 | Não encontrado -- O endpoint solicitado não foi encontrado. | ||
500 | Erro interno do servidor -- tente novamente ou contate nosso suporte. |
Histórico de atualizações
Data | Evento |
---|---|
13/02/2023 | Incluído serviço de códigos relacionados para conferências. Link |
01/08/2022 | Lançamento V1 API IS Collector |