Portal do Parceiro

O Portal do Parceiro é onde você cria a sua conta de desenvolvedor, registra os apps que integram com o Lumen ERP e gerencia as credenciais de cada um. Todo app começa no sandbox, um ambiente com dados de demonstração, e só acessa escolas reais depois de aprovado pela equipe Lumen e liberado por cada cliente.

Do cadastro à produção

O caminho de uma integração nova tem seis etapas. As três primeiras você faz sozinho, em minutos; as demais dependem de aprovação.

  1. 1

    Crie a conta

    Cadastre-se no portal e confirme o e-mail. O acesso ao painel só é liberado depois da confirmação.

  2. 2

    Crie um app

    Cada integração é um app, com chaves, conexões, webhooks e logs próprios. O app nasce no status Sandbox.

  3. 3

    Teste no sandbox

    Na aba Credenciais, gere uma chave lmn_test_…, crie os clientes de teste do app e chame a API no sandbox. Nada do que você faz ali chega à produção.

  4. 4

    Peça a aprovação para produção

    Na aba Visão geral, descreva como o app usa a API: quais dados lê e grava, com que frequência, quem são os usuários finais e como os dados de alunos são protegidos (LGPD). A equipe Lumen revisa cada app e você recebe a decisão por e-mail.

  5. 5

    Peça acesso a cada cliente

    Aprovado o app, informe na aba Clientes o CNPJ de uma escola do cliente que contratou a sua integração. A equipe Lumen confirma com o cliente e libera o acesso.

  6. 6

    Gere o token da conexão

    Com o acesso liberado, gere uma chave lmn_live_… e o token da conexão com aquele cliente. A partir daí o app chama a API com os dados reais da escola.

Sandbox e produção

O sandbox é uma instância separada do Lumen, com banco de dados, filas e arquivos próprios, em https://sandbox.lumenerp.app.br. Chaves de teste só funcionam lá; chaves de produção só funcionam em produção. Os endpoints e o formato das respostas são os mesmos nos dois. O guia Sandbox explica como usá-lo para desenvolver e validar a sua integração.

Sandbox Produção
Endereço da API https://sandbox.lumenerp.app.br/api/v1 https://lumenerp.app.br/api/v1
X-Partner lmn_test_… lmn_live_…, disponível após a aprovação do app
X-Client Slug de um dos clientes de teste do app, mostrado na aba Credenciais Slug do cliente, mostrado na aba Clientes
X-Authorization Token desse cliente de teste, mostrado na aba Credenciais Token da conexão com o cliente (lmn_conn_…)
Dados Uma rede privada e uma pública (SEDUC) só do app, cada uma com uma escola cheia de dados de demonstração Somente os clientes que liberaram o app
Efeitos externos Nada sai do sandbox: e-mails, SMS, WhatsApp e push vão para a Caixa de saída; cobranças e assinaturas são simuladas. Só os webhooks chegam ao seu endpoint de teste Os mesmos de uma ação feita no próprio Lumen
Limite 60 requisições por minuto 300 requisições por minuto, ajustável por app na aprovação
Webhooks Endpoint de teste do app, para tudo o que acontece nos clientes de teste: chamadas à API, ações no sistema e rotinas automáticas Endpoint de produção do app
Sistema web Você entra como a rede de ensino (botão "Entrar no sandbox") e cadastra o que quiser, inclusive novos usuários —
  • Toda resposta traz o cabeçalho X-Lumen-Environment (test ou live) e os cabeçalhos X-RateLimit-*. O limite é contado por app e por ambiente e vale para todos os endpoints da API de parceiros.
  • Na aba Credenciais, crie o cliente de teste da rede privada e/ou da rede pública (SEDUC). Cada um vem com uma escola, o Colégio Demonstração, com dados em todos os módulos da referência da API: turmas, alunos, responsáveis, professores, notas, frequência, diário, conselho de classe, ocorrências, fotos, eventos, biblioteca, metas, cursos online e visitantes. Contratos e CRM têm dados só na rede privada, e o Orçamento Público só na rede pública.
  • O quadro Dados de teste de cada cliente traz um valor pronto para cada parâmetro dos endpoints (CNPJ, turma, matrícula, CPF, aula, nota, evento, meta…) e o ID de um registro de cada recurso endereçado por {id}.
  • Os clientes de teste são só do seu app: nenhum outro parceiro os vê, e os dados ficam como você deixou. Para voltar ao estado inicial, use "Recriar dados" — o cliente é apagado e criado de novo, com novo X-Client, X-Authorization e login.
  • No sandbox, pagamentos e assinaturas eletrônicas são simulados: o link de uma cobrança abre uma página onde você "paga" (PIX, boleto ou cartão), e o link de assinatura abre uma página onde você "assina". A escola recebe a confirmação como receberia em produção, e os webhooks correspondentes são enviados.
  • Uma chave de teste usada em produção recebe 403 com "code": "SANDBOX_HOST" e o endereço do sandbox.

Primeira chamada no sandbox

Com uma chave de teste e o slug e o token de um cliente de teste copiados da aba Credenciais, liste as escolas desse cliente no sandbox:

curl https://sandbox.lumenerp.app.br/api/v1/partners/schools/all \
  -H "X-Partner: lmn_test_{sua_chave}" \
  -H "X-Client: {slug_do_cliente_de_teste}" \
  -H "X-Authorization: {token_do_cliente_de_teste}"

Para ir à produção, troque os três valores: a chave lmn_live_…, o slug do cliente e o token da conexão, ambos mostrados na aba Clientes. O código da integração não muda.

Status do app

Chaves de teste funcionam em qualquer status, exceto quando o app está suspenso. Chaves de produção só funcionam com o app em Produção.

Sandbox

Status inicial. Só chaves de teste, só dados de demonstração.

Em análise

A equipe Lumen está revisando o pedido de aprovação. Continue testando no sandbox enquanto isso.

Produção

Aprovado. O app pode gerar chaves lmn_live_… e pedir acesso a clientes.

Recusado

A revisão foi recusada, com o motivo informado no portal. Ajuste o app e peça uma nova revisão.

Um app, ou a conta inteira do desenvolvedor, pode ser suspenso pela equipe Lumen. Enquanto estiver suspenso, todas as chaves respondem 403, inclusive as de teste.

Chaves e tokens

1

Exibidos uma única vez

Chaves, tokens de conexão e o segredo de webhooks aparecem só no momento em que são gerados. O Lumen guarda apenas um hash. Se perder um valor, gere outro.

2

Até 5 chaves por ambiente

Use chaves separadas por servidor ou ambiente seu (homologação, produção) e dê um nome a cada uma, para saber qual revogar se uma vazar.

3

Rotação sem indisponibilidade

Rotacionar gera uma chave nova e mantém a antiga funcionando por mais 24 horas, tempo para você publicar a troca. Revogar desativa a chave na hora.

4

Token de conexão

Existe um token por cliente conectado. Gerar um novo token invalida o anterior imediatamente. Remover a conexão revoga o acesso àquele cliente na hora.

5

Prefixos detectáveis

Os prefixos lmn_test_, lmn_live_ e lmn_conn_ permitem que scanners de segredos identifiquem um valor vazado em um repositório. Nunca coloque credenciais no código do app.

6

Excluir o app

Revoga todas as chaves e conexões do app de uma vez e desativa os clientes de teste dele no sandbox. Não pode ser desfeito.

Segurança da conta

A conta de desenvolvedor dá acesso às credenciais das integrações com escolas. Na página Conta do portal, ative a verificação em duas etapas e cadastre uma chave SSH de recuperação.

1

Verificação em duas etapas

Com um aplicativo autenticador (TOTP), pedido em todo login. Ativar, desativar ou gerar novos códigos de recuperação exige antes um código enviado ao e-mail da conta. Guarde os códigos de recuperação: cada um vale um login.

2

Chaves SSH de recuperação

Chaves públicas Ed25519 (ssh-keygen -t ed25519) que comprovam a sua identidade se você perder o autenticador e os códigos de recuperação.

3

Recuperar o acesso

Em "Recuperar acesso", na tela de login: informe a senha e o código enviado ao e-mail e comprove que controla a integração, de um dos dois jeitos abaixo. O pedido fica então em espera por 72 horas, com um link "Não fui eu" enviado ao e-mail; qualquer login normal com o autenticador o cancela. Concluída a espera, você cadastra um novo autenticador; a verificação em duas etapas nunca é desligada.

4

Sem reset pelo suporte

A equipe Lumen não desativa a verificação em duas etapas de ninguém. Sem chave de API ativa nem chave SSH cadastrada não há como comprovar a identidade, então cadastre a chave SSH já.

Comprovar com uma chave de API

Chame a produção com uma chave do app, de onde a integração a guarda, enviando o desafio rec_… mostrado no portal. Só o cabeçalho X-Partner é necessário. Se a conta tiver chaves de produção, a comprovação exige uma chave lmn_live_….

Requisição POST
curl -X POST https://lumenerp.app.br/api/v1/partner-portal/account-recovery \
  -H "X-Partner: $LUMEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"challenge":"rec_…"}'
Status Mensagem
200 API key confirmed. Go back to the Portal do Parceiro to follow your recovery request.
401 Invalid or revoked API key.
403 This key cannot be used: its app is suspended or not approved for production.
422 Invalid or expired recovery challenge. (ou, com uma chave de teste numa conta com chaves de produção: This account has production keys: …)
429 Too Many Attempts. (10 por minuto por IP)

Comprovar com uma chave SSH

Assine o desafio com a chave privada correspondente a uma chave SSH cadastrada e cole a assinatura no portal:

printf '%s' 'rec_…' | ssh-keygen -Y sign -n lumen-partner-2fa-recovery -f ~/.ssh/id_ed25519

Erros de acesso

Além dos erros gerais da API, requisições feitas com chaves do portal podem receber:

Status Mensagem O que fazer
400 Missing required headers. Envie X-Client e X-Authorization junto com a chave.
401 Invalid or revoked API key. A chave foi digitada errado, revogada ou expirou após uma rotação. Gere uma nova.
401 Unauthorized. X-Client e X-Authorization não correspondem. Em produção, confira se o token é da conexão com esse cliente e se não foi substituído.
403 This app is still under review for production. … O app está Em análise. Use uma chave de teste até a aprovação.
403 This app is not approved for production. … Chave lmn_live_ num app que não está em Produção. Peça a revisão no portal.
403 This app is suspended. … O app ou a conta foi suspenso. Fale com o suporte Lumen.
403 "code": "SANDBOX_HOST" Chave de teste enviada à produção. Aponte a integração para o sandbox (o endereço vem na mensagem).
403 Production keys (lmn_live_) do not work in the sandbox. … Chave de produção enviada ao sandbox. Use uma chave lmn_test_.
429 Too Many Attempts. Limite por minuto excedido. Aguarde o tempo indicado em Retry-After.

Webhooks e logs

Webhooks

Cada app configura um endpoint de teste e um de produção, escolhe os eventos que quer receber (nenhum selecionado equivale a todos), envia eventos de teste e reenvia entregas. As entregas são assinadas no padrão Standard Webhooks.

Como validar a assinatura →

Logs de requisições

A aba Logs lista toda chamada feita com as chaves do app nos últimos 30 dias: método, caminho, status, duração, ambiente e IP, com filtros por ambiente, resultado e caminho. Corpos de requisição e resposta não são guardados.