Pular para o conteúdo

Documentação API Sunlux

Documentação API Sunlux

Por Heron Rangel
Publicado em 16 de abril de 2026 – Atualizado em 16 de setembro de 2026

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:8090

  • Formato 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: Authorization

  • Valor: Bearer {access_token} — a palavra Bearer, 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)

Heron Rangel

Desenvolvimento
Home
Ajuda!
Parceiros
Buscar
×

 

Olá! 😁

Selecione o contato que deseja iniciar a conversa!

×