1. O que é esta API?
A API Sunlux é uma interface de comunicação que permite ao seu sistema “conversar” com o servidor da Sunlux. Ela funciona através de requisições, onde você envia um dado (como o número de um pedido) e o servidor devolve as informações detalhadas sobre ele.
Informações de Acesso:
Servidor (Base URL):
http://sunlux.no-ip.info:8090Formato de dados: JSON (um padrão de texto organizado que computadores leem facilmente).
2. Como as consultas funcionam?
A API possui rotas (Endpoints). Cada rota traz abaixo um exemplo pronto em cURL, com o método, o endereço, os cabeçalhos e o corpo da requisição, seguido da resposta devolvida pelo servidor.
3. Autenticação e Segurança
Para que o servidor Sunlux reconheça e autorize suas requisições, todas as chamadas aos endereços (endpoints) da API precisam ser autenticadas.
A API utiliza o padrão Bearer Token: primeiro você solicita um token informando suas credenciais e, depois, envia esse token no cabeçalho de cada requisição. O token tem validade de 1 hora.
Atenção, integrações existentes: esta API utilizava anteriormente o padrão Authorization Basic (usuário e senha convertidos em Base64 em cada requisição). Esse método não funciona mais e precisa ser substituído pelo token descrito abaixo.
Passo 1: Obter o token
Envie uma requisição POST para /api/auth/login, com o cabeçalho Content-Type: application/json e suas credenciais no corpo:
POST http://sunlux.no-ip.info:8090/api/auth/login
Content-Type: application/json
{
"usuario": "SEU_USUARIO",
"senha": "SUA_SENHA"
}O usuário e a senha são fornecidos pela SysOpRS no momento da contratação.
Em caso de sucesso, a resposta devolve o token:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600,
"expires_at": "2026-10-23T17:35:12.4821376Z"
}access_token: o token que será enviado nas requisições.expires_in: validade do token em segundos (3600 = 1 hora).expires_at: data e hora (em UTC) em que o token expira.
Credenciais incorretas retornam o erro 401, sem conteúdo na resposta.
Passo 2: Enviar o token nas requisições
Em todas as chamadas às rotas da API, inclua o cabeçalho:
Chave do Cabeçalho:
AuthorizationValor:
Bearer {access_token}— a palavraBearer, um espaço, e o token recebido no passo anterior.
O resultado final no cabeçalho será algo como:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...Validade e renovação
Passada 1 hora, o token expira e é necessário repetir o Passo 1 para obter um novo — não existe renovação automática. O recomendado é guardar o token e reaproveitá-lo enquanto estiver válido, solicitando outro apenas quando expirar.
Nota Importante: Sem este cabeçalho, ou com um token inválido ou expirado, o servidor retornará um erro de “Não Autorizado” (Erro 401), impossibilitando o acesso aos dados.
Rotas
A. Consulta de Cadastro (/api/sunlux/cadastro)
Use esta função quando precisar de todos os dados de um cliente ou fornecedor (nome, CNPJ, endereço, telefone, etc.).
O que você recebe: uma ficha completa com mais de 40 campos, com todas as informações pertinentes ao cadastro da revenda.
curl -X POST "http://sunlux.no-ip.info:8090/api/sunlux/cadastro" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN" \
-d '{"IDCad": 1}'
# Resposta — 200 OK (exemplo resumido)
[
{
"IDCad": 1,
"cliente": "Empresa Demonstracao Ltda",
"fantasia": "Empresa Demonstracao",
"CNPJ": "00000000000100",
"IE": "0000000000",
"CEP": "93718140",
"endereco": "Rua Exemplo",
"num": 390,
"compl": null,
"Bairro": "Centro",
"Cidade": "Campo Bom",
"UF": "RS",
"Fone1": "5130000000",
"PJ": true,
"mail": "contato@empresa.com.br",
"Ecli": true,
"Efor": true,
"IDVen": 124,
"pDes": 0.0,
"LimCre": 5000.0,
"Bloqueado": false
}
]
Descrição dos Campos:
IDCad — IDCadastro
cliente — Nome / Razão Social
fantasia — Apelido / Fantasia
CNPJ — CNPJ
IE — Inscrição Estadual
IM — Inscrição Municipal
CEP — CEP
endereco — Endereço
num — Número
compl — Complemento
Bairro — Bairro
Cidade — Cidade
UF — Unidade Federativa
Fone1 — Fone
Fone3 — Fone 3
Fone2 — Fax
PJ — Pessoa Juridica
mail — E-Mail
Ecli — É Cliente
Efor — É Fornec.
Etra — Transportadora para NF
cDCad — Data do Cadastro
IDtCad — Tipo
site — Site
Responsavel — Responsavel
cUCad — Usuário do Cadastro
Porte — Porte
IDVen — Vendedor Padrão
IDCpg — Condição de Pagamento Padrão
pDes — Desconto Padrão
LimCre — Limite de Crédito
CondFixa — Condição de Pagamento Fixa
Bloqueado — Bloqueado
Filial — Filial
IDSeg — Segmento
CapSoc — Capital Social
DtAtiv — Data da Ativação
Efun — Funcionário
IDRota — Rota para entrega
IDRotaOrd — Ordem dentro da Rota
mailNE — Não quer receber E-Mail Mala Direta
sexo — Sexo
DtGru — Data Alteração do Grupo
IDpais — Código do Pais
IDCom — Comissionado
enq — Enquadramento Fiscal (0 = Simples Nacional, 1 = Lucro Presumido, 2 = Lucro Real)
pr — Produtor Rural
indIEDest — Indicador da IE do Destinatário
IDCla — Classificação
B. Consulta de Histórico (/api/sunlux/historico)
Use esta função para buscar movimentações de um cadastro dentro de um período.
Atenção ao formato das datas: DtInicio e DtFim seguem o padrão mm-dd-aaaa (mês primeiro). No exemplo abaixo, 02-01-2021 a 03-01-2021 significa 1º de fevereiro a 1º de março. As duas datas precisam ser informadas juntas; se faltar uma delas, o período é ignorado.
O que você recebe: uma lista com os últimos 50 pedidos e as datas em que ocorreram dentro do filtro informado.
curl -X POST "http://sunlux.no-ip.info:8090/api/sunlux/historico" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN" \
-d '{"IDCad": 1, "DtInicio": "02-01-2021", "DtFim": "03-01-2021"}'
# Resposta — 200 OK
[
{ "IDPed": 149647, "dt": "2021-02-23T07:38:02" },
{ "IDPed": 149616, "dt": "2021-02-22T13:13:09" },
{ "IDPed": 149503, "dt": "2021-02-18T11:01:27" },
{ "IDPed": 149308, "dt": "2021-02-10T10:52:00" }
]
Descrição dos Campos:
IDPed — ID do pedido
dt — Data do pedido
C. Consulta de Pedido (/api/sunlux/pedido)
Use esta função para detalhar um pedido de venda específico, incluindo quais produtos e opções estão nele.
O que você recebe: todas as informações do pedido. Dentro de cada pedido vêm os produtos e, dentro de cada produto, as opções.
curl -X POST "http://sunlux.no-ip.info:8090/api/sunlux/pedido" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN" \
-d '{"IDPed": 195890}'
# Resposta — 200 OK (exemplo resumido)
[
{
"IDPed": 195890,
"IDtPed": 1,
"dt": "2025-04-11T07:21:09",
"IDCad": 2585,
"n_doc": null,
"IDCpg": 220,
"bloq": false,
"compra": false,
"IDVen": 124,
"tItem": 1,
"vPed": 518.78,
"EntDt": "2025-04-26T00:00:00",
"vFrete": 0.0,
"IDSta": 0
}
]
Descrição dos Campos: (Pedido)
IDPed — ID
IDtPed — Tipo de Pedido
dt — Data do Pedido
IDCad — Cedente do Pedido
n_doc — Número do Documento
IDCpg — Condição de Pagamento
bloq — Orçamento/Pedido
compra — Compra/Venda
IDVen — Vendedor
cNF — Nota Fiscal
pVen — Comissão
pCad — Percentual a pagar da comissão
pDesc — Desconto %
vDesc — Valor do Desconto
tItem — Total de Itens
vPed — Valor Total do Pedido
EntDt — Data Entrega
EntHr — Hora Entrega
dtEnv — Data Envio
tUnid — Total de quantidades
IDTra — Transportadora
tvVen — Total comissão vendedor
vFrete — Valor do Frete
cUPed — Usuário Cadastro
cDPed — Data Lançamento
IDCom — Comissionado
DtImp — Data da impressão
IDSta — Status Pedido
tpVen — Percentual de Comissão do Pedido
tpesoB — Total peso bruto
vCus — Total Custo
PedCusto — Pedido a preço de Custo
tMKP — Percentual Total do Markup do Pedido
IDCon — Contato
pCom — % Comissão Comissionado
modFrete — Frete por Conta
PesoMP — Peso Matéria Prima
tvImp — Valor Total Impostos
IDExt — ID Externo (Mobile, terceiros)
NroVol — Número de volumes do Pedido
regra — 0 – Normal, 1 – Inventário, 2 – Consignado, 3 – Devolução, 4 – Produção, 5 – Orçamento, 6 – Sem Estoque, 7 – Sem Caixa
vBas — Total Base Item
PIpt — PIpt
IDCto — ID do Contrato
nAno — Ano do Contrato
ND — Nota de Débito
Descrição dos Campos: (Produtos)
IDItem — IDItem
IDPed — Número Pedido
Item — Código do Item
IDPro — ID Produto
quant — Quantidade
pDescI — Desconto
vPedI — Valor de Venda
vtPedI — Total Item
markup — Markup
vBase — Base para Calculos
vtBase — Total Base Item
vCusto — Valor de Custo
vtCusto — Total Custo Item
vtImp — Total Impostos
pCom — Percentual de Comissão Vendedor
vCom — Comissão Valor
dtEnt — Data entrega
qEnt — Quantidade entregue
tpesoB — Total Peso Bruto
lote — Lote
cDPedI — Data do Lançamento
trib — Tributação ICMS
qCalc — Cálculo da quantidade
TVenda — 0 = Normal, 1 = Promoção, 2 = Queima, 3 = Brinde
TCom — 0 = Normal, 1 = Sem Comissão, 2 = Diferença
cUPedI — Usuário Cadastro
vLibDesc — Valor Máximo para desconto
qEntPar — Quantidade entrega parcial
Descrição dos Campos: t_pedIIAD
ID — ID
IDPed — ID do pedido
IDItem — IDItem
IDInfo — IDInfo
rotulo — rotulo
ordem — ordem
IDOp — ID Opção
Opcao — Informação
IDLista — IDLista
tCalc — 0;'Calc. Área';1;'Calc. Altura';2;'Calc. Largura';3;'Calc. Valor';4;'Calc. Campo';5;'Percentual';6;'Final Área';7;'Final Altura';8;'Final Largura';
qOp — Quantidade
vOp — Valor Opção conforme Tipo de Cálculo
vDs — Desconto da Opção
vFn — Valor Final da Opção
IDGIa — ID Grupo de Campos
Obs — Observação
CtlProc — Controle de processamento: 0 – Nada, 1 – VALORES, 2 – FILTROS, 3 – MEDIDAS, 7 – VLR + FIL, 8 – FIL + MED, 9 – Todos
OrdProd — Ordem produção usado no layout de impressão
D. Consulta de usuários (/api/sunlux/usuario)
Use esta função para detalhar um usuário específico.
O que você recebe: todas as informações do usuário, suas permissões e seus parâmetros.
curl -X POST "http://sunlux.no-ip.info:8090/api/sunlux/usuario" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_TOKEN" \
-d '{"IDUser": 18}'
# Resposta — 200 OK
[
{
"usuario_id": 18,
"usuario": "jsilva",
"usuario_nome": "João Silva",
"usuario_id_cadastro": 124,
"usuario_id_departamento": 1,
"usuario_departamento": "Geral",
"usuario_inativo": false,
"parametros": [
{ "parametro_id": 1, "parametro_valor": "NaoFiscal" },
{ "parametro_id": 3, "parametro_valor": "1" },
{ "parametro_id": 4, "parametro_valor": "1" }
]
}
]
Descrição dos Campos:
usuario_id — ID
usuario — Nome de usuário
usuario_nome — Nome completo
usuario_id_cadastro — IDCad vinculado ao usuário
usuario_id_departamento — ID do departamento do usuário
usuario_departamento — Departamento do usuário
usuario_inativo — Usuário ativo ou inativo
parametro_id — ID do parâmetro
parametro_valor — Valor do parâmetro
E. Consulta de lista de parâmetros para usuários (/api/sunlux/usuario/parametros)
Use esta função para obter a lista de parâmetros de usuários disponíveis, com sua descrição.
curl -X GET "http://sunlux.no-ip.info:8090/api/sunlux/usuario/parametros" \
-H "Authorization: Bearer SEU_TOKEN"
# Resposta — 200 OK
[
{ "IDPar": 1, "descricao": "Impressora NaoFiscal", "Tipo": 3 },
{ "IDPar": 2, "descricao": "Vendedor padrao ao criar cadastro", "Tipo": 0 },
{ "IDPar": 3, "descricao": "Pessoa Fisica como padrao ao criar cadastro, em vez de Juridica.", "Tipo": 0 },
{ "IDPar": 4, "descricao": "Composto - Filtro padrao na Consulta de Produtos", "Tipo": 0 },
{ "IDPar": 5, "descricao": "Menu: 0-Padrao, 1-Sem Menu, 2-PDV", "Tipo": 0 }
]
Descrição dos Campos:
IDPar — ID do parâmetro
descricao — Descrição do parâmetro
Tipo — Tipo de dados do valor do parâmetro (0=Byte, 1 = Long, 2 = Double, 3 = String)