API de CPE Novo na 7.2

Referência completa da API do ambiente CPE (gerência de roteadores do assinante por TR-069): consulte o inventário, o retrato completo de cada CPE e a saúde da frota, e gerencie Wi-Fi, WAN/PPPoE, LAN, redirecionamentos, perfis de provisionamento, campanhas em massa, rotinas, diagnósticos e homologação por integração externa. São 69 operações que cobrem tudo o que a interface faz.

Visão geral

A API de CPE expõe o ambiente CPE inteiro para sistemas externos. Ela cobre dois grandes usos:

  • Consultar: lista de CPEs com filtros e paginação (com export CSV/PDF), retrato completo de uma CPE (Wi-Fi, WAN, LAN, portas, hosts conectados, vínculos com OLT e concentradora, tarefas, alertas e auditoria), visão geral da frota, estado do ambiente de gerência, perfis, modelos homologados, rotinas, campanhas, diagnósticos e resumos de IA.
  • Gerenciar: reiniciar e restaurar de fábrica, editar Wi-Fi (rede, senha, canal), WAN (DNS, MTU, IPv6), credenciais PPPoE, LAN/DHCP, portas físicas, redirecionamentos de porta e DMZ, bloquear aparelhos, gerência web da CPE, vincular ONU, criar e aplicar perfis de provisionamento, disparar campanhas em massa (inclusive firmware), configurar rotinas autônomas, rodar diagnósticos e conduzir a homologação de modelos.

Casos típicos: integrar o provisionamento da CPE ao fluxo de ativação do seu ERP, trocar a senha do Wi-Fi do assinante direto do seu sistema de atendimento, alimentar um painel próprio com a saúde da frota e automatizar campanhas de firmware fora do horário comercial.

Pré-requisitos

RequisitoDetalhe
Plano com CPE Limite por planoO ambiente CPE precisa estar habilitado na assinatura. Sem ele, todas as operações respondem Modulo CPE nao liberado no plano deste servidor.
Chave de API com permissão CPEAo criar ou editar a chave em Configurações, aba Integrações, card Gerenciamento de API, marque Acesso a CPE na seção Permissões de Acesso. Veja Criar uma chave de API.
Ambiente CPE ativoAmbiente de gerência ligado (engrenagem do ambiente CPE) e CPEs apontadas para o servidor. As operações de escrita em uma CPE precisam que ela esteja se comunicando.
RedeAcesso HTTPS ao servidor Ravi do cliente.

Uma chave com Acesso a CPE tem leitura e escrita em tudo do módulo: consegue restaurar de fábrica qualquer CPE, trocar credenciais PPPoE e disparar campanhas na frota inteira. Trate-a como credencial de alto privilégio: crie uma chave dedicada por integração, preencha o campo Descrição (opcional) e não marque outras permissões desnecessárias.

Toda operação de escrita feita pela API entra no histórico de ações do sistema identificando a chave utilizada (número e descrição). As tarefas criadas aparecem nas telas do módulo com a origem api. O modo bancada, quando ligado na configuração do módulo, também vale para a API: escrita só nas CPEs da lista de teste.


Formato das chamadas

Todas as operações usam o endpoint único da API pública, com action=cpe. GET e POST são aceitos em todas as operações; prefira POST nas operações de escrita e sempre que quiser evitar o token em logs de acesso. Os parâmetros de cada operação vão junto, na querystring ou no corpo do formulário.

URL base
https://SEU-RAVI/api/api.php?token=CHAVE&action=cpe&operation=NOME_DA_OPERACAO
ParâmetroTipoObrigatórioDescrição
tokenstringsimChave de API de 32 caracteres com a permissão Acesso a CPE.
actionstringsimSempre cpe para este módulo.
operationstringsimA operação desejada (referência nas seções abaixo).

Envelope das respostas:

  • Sucesso: {"status":"success","data":{...}} com HTTP 200.
  • Erro: {"status":"error","message":"..."}. Nas confirmações em duas etapas (abaixo) e em algumas validações, o erro vem acompanhado de um campo data com detalhes.
  • Exceção: operation=cpes com export=csv ou export=pdf devolve o arquivo bruto (CSV ou PDF), fora do envelope JSON.

Operações que criam tarefa na CPE

As ações que tocam o equipamento (reiniciar, editar Wi-Fi, WAN etc.) não são instantâneas: elas criam uma tarefa que o sistema envia à CPE e depois relê para confirmar que o valor realmente mudou. A resposta traz o estado inicial:

CampoSignificado
statusok (a CPE atendeu na hora), enviada (aguardando a CPE se comunicar), fila (aguardando envio), agendada (agendamento futuro) ou falha.
httpCódigo de retorno do envio.
erroMensagem quando algo falhou; vazio no sucesso.

Acompanhe o desfecho (confirmada ou não) com operation=tarefas, que mostra o status final de cada tarefa após a releitura.

Confirmação em duas etapas

Três fluxos de grande alcance pedem confirmação explícita. A primeira chamada responde status:"error" com os números do alcance em data; repita a chamada com o campo de confirmação para executar:

FluxoCampo de confirmaçãoO que vem em data na 1ª chamada
perfil_salvar / perfil_ativo (perfil ativo que alcança CPEs)confirmado=1confirmar:true, alcance (CPEs alcançadas), escopoRotulo, bancada.
massa_criarconfirmado=1confirmar:true, alcance, bancadaFora, rotuloAcao.
config_salvar ao desligar o modo bancadaconfirmarBancadaOff=1precisaConfirmar:"bancada_off", perfis ativos, alcance.

Erros comuns a todas as operações

messageCausa
Invalid tokenChave inexistente, errada ou revogada (HTTP 401).
Access denied for cpeChave sem a permissão Acesso a CPE (HTTP 403).
Operation not provided / Invalid operationFaltou operation, ou o nome não existe.
Modulo CPE nao liberado no plano deste servidor.A assinatura não inclui o ambiente CPE.
cpe nao encontradaO serial informado não existe no inventário.
Modo bancada ativo: escrita bloqueada para CPEs fora da lista de teste...Modo bancada ligado e o serial está fora da lista. Ajuste a lista na configuração do módulo.
Este recurso ainda não tem caminho homologado para este modelo...O modelo da CPE ainda não tem aquele recurso homologado. Complete a homologação do modelo na interface.

Operações de consulta

cpes: listar o inventário

Lista paginada com os mesmos filtros da tela CPEs. Todos os parâmetros são opcionais:

ParâmetroDescrição
buscaTexto livre: procura em serial, login PPPoE, MAC, IPv4/IPv6 e descrição.
fabricante, modelo, firmware, etiquetaFiltros exatos (modelo também casa com a classe do produto).
status1 só online, 0 só offline.
favoritas1 só as favoritas.
pagina, porPaginaPaginação; porPagina aceita 25, 50 ou 100 (padrão 25).
ordem, dirOrdenação: serial, fabricante, modelo, firmware, login, ipWan4, ultimaComunicacao (padrão), dataChegada, statusOnline; dir = asc ou desc.
exportcsv ou pdf: devolve o arquivo com os mesmos filtros (até 5000 linhas, sem paginação), fora do envelope JSON.

Resposta: total, pagina, porPagina, itens[] (serial, fabricante, modelo, firmware, login PPPoE, MAC, IPs, status, última comunicação, descrição, etiquetas, favorito, vínculos) e contagens (online, offline, favoritas, mudas há 24h). Com um ERP conectado, cada item ganha erpNome e erpStatus.

cpe: retrato completo de uma CPE

Parâmetro: serial (obrigatório). Devolve tudo o que a página da CPE mostra: cadastro e assinante, informações do equipamento, sinal óptico, WANs (PPPoE e IP), LAN, redes Wi-Fi, redirecionamentos e DMZ, gerência web, aparelhos conectados (com bloqueio), séries históricas, vínculos de topologia (sessão, concentradora, ONU/OLT), tarefas recentes, auditoria e firmwares disponíveis.

Estado do ambiente e da frota

OperaçãoParâmetrosO que devolve
visao_geralnenhumOs dados da tela Visão geral: tráfego da frota por hora (24 h), aparelhos conectados agora (cabo × Wi-Fi), automação das rotinas em 30 dias e o mapa de reinícios e quedas por dia/hora.
acs_statusnenhumEstado do ambiente de gerência: ativo, semLeitura, carimbo da última leitura.
ia_resumoescopo = frota (padrão) ou cpe + serialO último resumo de IA gravado e se o retrato mudou desde ele (gerarAuto).

Listagens

OperaçãoParâmetrosO que devolve
perfisnenhumTodos os perfis de provisionamento, com a configuração de cada um.
modelosnenhumO catálogo de modelos (fabricante, modelo, firmware, data de homologação).
rotinasnenhumAs rotinas autônomas com parâmetros, cobertura e próximas execuções.
tarefasserial (opcional), limite (padrão 100, máx. 500)A fila de tarefas: tipo, origem, status (até a confirmação por releitura), retorno e valores recusados.
alertasserial e ativo (1/0) opcionais, limiteAlertas do módulo (offline, sinal, temperatura etc.) com abertura, resolução e notificação.
diagnosticosserial (obrigatório)Diagnósticos da CPE (últimos 20) com suporte por tipo, categorias de conectividade configuradas e resultados.
homolog_andamentoid ou idModeloAndamento da homologação guiada: etapa, itens com status e o resultado final.

Ações em uma CPE

Todas exigem serial (o serial exato do inventário). As que escrevem no equipamento criam tarefa com releitura de confirmação e respeitam o modo bancada.

Energia, dados e cadastro

OperaçãoParâmetros além de serialO que faz
atualizarnenhumForça a releitura completa dos dados da CPE.
reiniciarnenhumReinicia a CPE.
resetarnenhumRestaura a CPE aos padrões de fábrica. Irreversível: a CPE volta sem as configurações do assinante.
removernenhumRemove a CPE do inventário e do servidor de gerência. Se ela continuar apontada para o servidor, volta ao se comunicar.
editardescricao, etiquetas (separadas por vírgula), velocidadePlanoEdita o cadastro local (não toca o equipamento).
favoritovalor = 1 marca, 0 desmarcaMarca/desmarca a CPE como favorita.

wifi_editar: rede Wi-Fi

ParâmetroObrigatórioRegra
caminhosimO caminho da rede Wi-Fi, como vem no retrato da CPE (operation=cpe, bloco wifi).
ssidsimNome da rede, 1 a 32 caracteres.
senhanãoVazio mantém a atual; preenchida, 8 a 63 caracteres.
canalnão0 = automático; maior que zero fixa o canal.
ativo, broadcastnão1 (padrão) liga o rádio / anuncia o SSID; 0 desliga/oculta.

wan_editar e wan_pppoe_editar: interface de internet

Ambas recebem caminho (a conexão WAN, como vem no retrato da CPE, bloco wansPpp).

OperaçãoParâmetrosRegra
wan_editardns (IPv4, vírgula), dns6 (IPv6, vírgula), mtu (576 a 1500; 0 = não alterar), ipv6 (1/0)Campos vazios não são alterados. O que o modelo não expõe fica de fora e a resposta avisa no campo ignorado. DNS IPv6 só é enviado com IPv6 ligado.
wan_pppoe_editarusuario, senhaTroca as credenciais PPPoE. Ao menos um dos dois; vazio mantém o atual.

Trocar credencial PPPoE ou desligar IPv6 pode derrubar a conexão do assinante na hora. A releitura de confirmação acontece quando a CPE volta a se comunicar.

LAN, portas e gerência web

OperaçãoParâmetros além de serialRegra
lan_editardhcp (1/0), gateway, mascara, min, max (IPv4), dnsLan (IPv4, vírgula), lease (segundos)Edita a LAN/DHCP. Campos vazios não são alterados.
porta_editarporta = número da porta ou todas; ligar = 1 reativa, 0 desativaDesativa/reativa portas LAN físicas. As portas válidas vêm no retrato da CPE.
webuser_editarinstancia (do retrato, bloco webUsuarios), usuario (1 a 64), senha (até 64, vazio mantém)Troca a conta de acesso à interface web da CPE.
webmgmt_editarhttpLan (1/0; só envie se o modelo expõe), httpWan (1/0), porta (1 a 65535)Liga/desliga o acesso web pela LAN e pela WAN e define a porta.

Redirecionamentos, DMZ e bloqueio de aparelhos

OperaçãoParâmetros além de serialRegra
portmap_criarcaminho (conexão WAN), descricao, ip (IPv4 interno), proto = TCP (padrão), UDP ou TCPUDP, portaExt, portaInt (vazio = igual à externa)Cria o redirecionamento; TCPUDP cria uma regra por protocolo.
portmap_editarcaminho (da regra, no retrato), ativo (1/0)Liga/desliga uma regra existente.
portmap_removercaminho (da regra)Remove a regra.
dmz_editarativo (1/0), host (IPv4, obrigatório ao ativar), caminho (conexão WAN)Ativa/desativa a DMZ.
host_bloquear / host_desbloquearmac (formato AA:BB:CC:DD:EE:FF)Bloqueia/desbloqueia um aparelho no Wi-Fi da CPE (nos modelos que expõem o recurso, após homologação).

Vínculo com a ONU

OperaçãoParâmetros além de serialO que faz
onu_buscaridOlt, busca (opcional)Procura a ONU correspondente na coleta da OLT (até 60 resultados; ONUs já vinculadas a outra CPE vêm marcadas).
onu_vincularidOlt, serialOntVincula manualmente a CPE àquela ONU (só cadastro local, nada é escrito na OLT).
onu_desvincularnenhumDesfaz o vínculo manual.

Perfis, homologação e rotinas

Perfis de provisionamento

OperaçãoParâmetrosO que faz
perfil_salvarid (0 = criar), nome, escopo (global, modelo, plano, pop ou cpe), alvo (obrigatório fora do global), prioridade (0 a 999), ativo, recursos[...], portmaps[...], avancado, confirmadoCria ou edita um perfil. recursos é um mapa campo → valor (ex.: recursos[wifi24_ssid], recursos[wan_dns4], recursos[lan_dhcp]); valor vazio significa "não provisionar". Perfil ativo que alcança CPEs pede confirmação em duas etapas.
perfil_ativoid, valor (1/0), confirmadoLiga/desliga um perfil (ligar também pede confirmação quando alcança CPEs).
perfil_duplicaridDuplica o perfil; a cópia nasce desligada.
perfil_excluiridExclui o perfil e desvincula as CPEs.
perfil_simularserialSimula: mostra a cadeia de perfis que vale para aquela CPE e o estado final resultante.
perfil_seriaisnenhumSeriais recentes para usar na simulação.

Catálogo de modelos e homologação guiada

OperaçãoParâmetrosO que faz
modelo_leridLê um modelo do catálogo com a matriz de suporte e os caminhos homologados.
modelo_salvarid, fabricante, modelo, versaoFirmware, dataModel (TR098/TR181), quirks, homologado, suporta[...], caminhos[...]Cria/edita um modelo do catálogo de homologação.
modelo_excluiridExclui o modelo do catálogo.
modelo_cpesidCPEs daquele modelo, ordenadas pelas melhores candidatas à homologação.
homolog_sondarserialTesta se a CPE responde na hora (alcance direto) antes de iniciar.
homolog_iniciaridModelo, serial, bancada (opcional)Inicia a homologação guiada naquela CPE; acompanhe com homolog_andamento.
homolog_cancelaridCancela a homologação (restaurando o equipamento se a bateria já tinha começado).

Rotinas autônomas

As rotinas existem uma por tipo; use operation=rotinas para listar os ids. Depois:

OperaçãoParâmetrosO que faz
rotina_salvarid, ativa (1/0), limite (1 a 1000), intervaloHoras (1 a 168), janelaInicio/janelaFim (HH:MM) + extras por tipoLiga/desliga e grava os parâmetros da rotina.
rotina_executaros mesmosGrava os parâmetros e roda uma rodada agora.

Extras por tipo: dns4 (rotina de DNS padrão), ntp (servidores de hora), idPerfilRestrito (perfil do bloqueio via ERP), wifiNotaLimiar e largura20 (correção de canal Wi-Fi), uptimeMinDias (reinício terapêutico), etiqueta (recolhimento de cancelados).

As duas operações gravam a configuração completa da rotina a cada chamada: parâmetro ausente volta ao padrão e ativa ausente desliga a rotina. Leia a rotina com operation=rotinas e reenvie todos os campos com os valores desejados.


Ações em massa (campanhas)

O fluxo é o mesmo da tela Em massa: filtre os alvos, confira o alcance e confirme.

OperaçãoParâmetrosO que faz
massa_contarfiltros: fabricante, modelo, plano, pop, status (online/offline), etiquetaConta os alvos dos filtros (e quantos passam pelo modo bancada).
massa_criarfiltros + tipoAcao = reiniciar, atualizar, dns, wifi ou firmware; extras por tipo; nome; agendadoPara (data futura), janelaInicio/janelaFim, repetir (diaria/semanal/mensal) + repetirHora/repetirDiaSemana/repetirDia; confirmado=1Cria o lote e expande em uma tarefa por CPE. Extras: dns (IPv4 por vírgula) no tipo dns; canal24, canal5, senha24, senha5 no tipo wifi; idFirmware (e o filtro modelo obrigatório) no tipo firmware. Sem confirmado, devolve a prévia com o alcance.
massa_lote_statusid, valor = executando, pausado ou canceladoPausa, retoma ou cancela um lote (cancelar também cancela as tarefas ainda não enviadas).
massa_lotesnenhumLista os últimos lotes com totais e status.
massa_relatorioidRelatório CPE a CPE do lote (status e retorno de cada tarefa).
massa_firmwaresmodelo, fabricante (opcional)Firmwares do repositório para aquele modelo.
massa_firmware_enviarfabricante, modelo, versao + arquivo no campo arquivoEnvia um firmware ao repositório. Única operação que exige multipart/form-data.

Configuração do ambiente

OperaçãoParâmetrosO que faz
config_salvarsomente as chaves enviadas são gravadasGrava a configuração do módulo: endereço e credenciais de gerência, intervalo de comunicação, retenção e cotas, auto exclusão de CPE offline, modo bancada e lista de seriais, limiares de saúde, alertas (tipos, janela de offline), URLs e alvos dos diagnósticos. Os nomes dos campos são os da tela de Configuração.
config_ambientedesejado = ativo ou inativoLiga/desliga o ambiente de gerência (aplicado em instantes pelo sistema).
config_preflightnenhumChecagem de pré-instalação do ambiente (espaço, dependências).
config_alerta_flagsativaTELEGRAMcpe, ativaWHATScpe (1 = herdar padrões, 2 = customizar, 3 = desativado), prioridadewhatscpeCanais de alerta do módulo.
config_telegram_salvar / config_telegram_excluir / config_telegram_testarid, chat_id, token, inicio, fim, prioridade, descricaoDestinos de Telegram próprios do módulo (modo customizar).
adocao_gerarmarca = huawei, zte, nokia, datacom ou dasan; url, perfil, vlan, intervalo, senha (1 revela a senha de gerência no script)Gera os scripts de adoção (global e por ONT) preenchidos com os dados do ambiente. Somente leitura: nada é executado na OLT.
erp_atualizarserialReconsulta o assinante desta CPE no ERP conectado e atualiza o espelho (no máximo 1 consulta por minuto por login).
diag_dispararserial, tipo = ping, traceroute, download, upload, sitesurvey ou conectividade + extras (host, repeticoes, timeoutMs, maxSaltos, categorias, velocidade)Dispara um diagnóstico na CPE; acompanhe com operation=diagnosticos. Um por vez por CPE.
diag_cancelarserial, idCancela o diagnóstico em andamento.
ia_gerar / ia_votoescopo/serial; id e voto (1/0)Gera um resumo de IA (respeitando o reaproveitamento quando nada mudou) e registra a avaliação de utilidade.

adocao_gerar com senha=1 devolve a senha de gerência em texto claro dentro do script. Só use em canais seguros e evite gravar a resposta em logs.


Exemplos práticos

Listar as CPEs offline (POST, com o token fora da URL):

curl
curl -s https://SEU-RAVI/api/api.php \
  -d "token=SUA_CHAVE" \
  -d "action=cpe" \
  -d "operation=cpes" \
  -d "status=0" \
  -d "porPagina=100"

Trocar a senha do Wi-Fi de um assinante (o caminho vem do retrato da CPE, bloco wifi):

curl
curl -s https://SEU-RAVI/api/api.php \
  -d "token=SUA_CHAVE" \
  -d "action=cpe" \
  -d "operation=wifi_editar" \
  -d "serial=ZTEG12345678" \
  -d "caminho=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1" \
  -d "ssid=CasaDoJoao" \
  -d "senha=NovaSenha2026"

Reiniciar e depois acompanhar o desfecho da tarefa:

curl
curl -s https://SEU-RAVI/api/api.php \
  -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=reiniciar" -d "serial=ZTEG12345678"

curl -s "https://SEU-RAVI/api/api.php?token=SUA_CHAVE&action=cpe&operation=tarefas&serial=ZTEG12345678&limite=5"

Campanha de reinício fora do horário comercial, em duas etapas (prévia e confirmação):

curl
# 1ª chamada: devolve status "error" com data.confirmar=true e o alcance
curl -s https://SEU-RAVI/api/api.php \
  -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=massa_criar" \
  -d "tipoAcao=reiniciar" -d "fabricante=ZTE" \
  -d "janelaInicio=02:00" -d "janelaFim=05:00"

# 2ª chamada: os mesmos campos + confirmado=1
curl -s https://SEU-RAVI/api/api.php \
  -d "token=SUA_CHAVE" -d "action=cpe" -d "operation=massa_criar" \
  -d "tipoAcao=reiniciar" -d "fabricante=ZTE" \
  -d "janelaInicio=02:00" -d "janelaFim=05:00" -d "confirmado=1"

Solução de problemas

SintomaCausa e solução
Access denied for cpeA chave não tem a permissão Acesso a CPE. Edite a chave em Configurações, aba Integrações, e marque a permissão.
Modulo CPE nao liberado no plano deste servidor.A assinatura não inclui o ambiente CPE. Fale com o comercial ou ative pelo item CPE do menu.
Escrita responde erro de modo bancadaO modo bancada está ligado na configuração do módulo e o serial está fora da lista de teste. Inclua o serial na lista ou desligue o modo bancada (com a confirmação).
Erro de caminho não homologadoAquele recurso ainda não foi homologado para o modelo da CPE. Complete a homologação (tela Homologação) e tente de novo.
Tarefa fica em enviadaNormal em CPE atrás de CGNAT: a escrita é aplicada quando a CPE se comunica no próximo intervalo de comunicação. Acompanhe em operation=tarefas.
Tarefa termina em nao_confirmadaA CPE aceitou o envio mas a releitura não confirmou o valor (firmware ignorou a escrita). O campo recusados da tarefa mostra o que não pegou.
rotina_salvar desligou a rotina sem quererAs operações de rotina gravam a configuração completa: envie ativa=1 e todos os parâmetros a cada chamada.