# Notifique API v1 > API do Gestor Notifique e da ativação de apps. Uma chave pn_ por integração: idfire e authkey nunca saem do servidor. Clientes e servidores de outro vendedor não são alcançados (404). Todo erro vem com "sucesso": false e a mensagem em "erro". Exemplos de resposta capturados do ambiente real, com dados mascarados. Base: https://apiv1.notifique.net/v1 Autenticação: cabeçalho `Authorization: Bearer pn_...` (ou `X-API-Key: pn_...`) em todas as rotas. Erros: 400 Campo obrigatório ausente ou inválido (a mensagem diz qual). | 401 Chave ausente, inválida ou revogada. | 404 Cliente ou servidor não encontrado para esta chave (ou de outro vendedor). | 429 Limite de requisições por minuto excedido. | 502 O sistema recusou a solicitação. | 504 O sistema demorou a responder. Tente de novo. ## Servidores Servidores (painéis IPTV) do vendedor. ### GET /servidores — Listar servidores Lista os servidores do vendedor da chave, com o id usado nas outras rotas. Login e senha do painel IPTV nunca são devolvidos. Resposta 200 (sucesso): ```json {"sucesso":true,"servidores":[{"id":204,"nome":"S*** M***","tipo":"outros","dns":"https://XXXXXX","dns2":"https://XXXXXX","renovacao_automatica":false,"valores":{"mensal":35,"bimestral":70,"trimestral":90,"semestral":150,"anual":300}},{"id":568,"nome":"F***","tipo":"painel Foda","dns":"https://XXXXXX","dns2":"https://XXXXXX","renovacao_automatica":true,"valores":{"mensal":35,"bimestral":70,"trimestral":90,"semestral":140,"anual":200}}]} ``` ## Clientes Clientes do gestor: busca, teste, edição, renovação, sincronização, subclientes e exclusão. ### GET /clientes — Buscar cliente Busca pelo WhatsApp ou pelo idBanco. Só encontra clientes do vendedor da chave. Sem cadastro: 200 com "cliente": false. Parâmetros: `whats`: DDI+DDD+número. Obrigatório se não enviar id.; `id`: idBanco do cliente. Obrigatório se não enviar whats. Resposta 200 (sucesso por whats): ```json {"sucesso":true,"mensagem":"edit","cliente":true,"link_pagamento":"https://pagzap.online/XXXXXX","idBanco":584106,"data":"05/11/2026","enviou":false,"whats":"(11************","idFire":"f0i*************************","userid":"135****","nome":"T*** D***","instancia":"HJV*****","vencimento":"07/11/2026","login":"712*******","vendedor":"ftv***","arquivado":false,"userTeste":true,"linkPagamento":"https://pagzap.online/XXXXXX","valorPadrao":false,"mensal":"0","bimestral":"0","trimestral":"0","semestral":"0","anual":"0","dataEnvio":null,"whatsBR":true,"cron1":false,"cron2":false,"cron3":true,"cron5":true,"alert1":false,"alert2":true,"alert15":false,"alert30":false,"senha":"304*******","idSigma":null,"idServidor":114,"nota":"Teste Auto - Gestor","cronVencimento":false,"ativo":true,"email":null,"cobrarEmail":false} ``` Resposta 200 (sucesso por id): ```json {"sucesso":true,"mensagem":"edit","cliente":true,"link_pagamento":"https://pagzap.online/XXXXXX","idBanco":584106,"data":"05/11/2026","enviou":false,"whats":"(11************","idFire":"f0i*************************","userid":"135****","nome":"T*** D***","instancia":"HJV*****","vencimento":"07/11/2026","login":"712*******","vendedor":"ftv***","arquivado":false,"userTeste":true,"linkPagamento":"https://pagzap.online/XXXXXX","valorPadrao":false,"mensal":"0","bimestral":"0","trimestral":"0","semestral":"0","anual":"0","dataEnvio":null,"whatsBR":true,"cron1":false,"cron2":false,"cron3":true,"cron5":true,"alert1":false,"alert2":true,"alert15":false,"alert30":false,"senha":"304*******","idSigma":null,"idServidor":114,"nota":"Teste Auto - Gestor","cronVencimento":false,"ativo":true,"email":null,"cobrarEmail":false,"subClients":[]} ``` Resposta 200 (whats sem cadastro): ```json {"sucesso":true,"cliente":false,"mensagem":"Whatsapp sem cadastro."} ``` Resposta 400 (sem parâmetro): ```json {"sucesso":false,"erro":"Informe whats (DDI+DDD+número) ou id (idBanco)."} ``` ### POST /clientes/teste — Criar teste automático Cria o cliente de teste no painel IPTV e no gestor. Com valorPadrao=false, informe os valores avulsos; com datasPadrao=false, as datas de aviso. Corpo JSON (obrigatórios: whatsCliente, idServidor): ```json { "whatsCliente": "5511977149078", "nomeCliente": "Teste Documentacao", "idServidor": 114, "valorPadrao": true, "datasPadrao": true } ``` Resposta 200 (sucesso): ```json {"id_banco":584106,"data":"05/11/2026","enviou":false,"whats":"(11************","idfire":"f0i*************************","userid":"135****","nome":"T*** D***","instancia":"HJV*****","vencimento":"07/11/2026","mensagem":"Sucesso ao gerar teste.","login":"712*******","vendedor":"ftv***","arquivado":false,"user_teste":true,"link_pagamento":"https://pagzap.online/XXXXXX","valor_padrao":false,"mensal":"0","bimestral":"0","trimestral":"0","semestral":"0","anual":"0","data_envio":null,"whats_br":true,"cron1":false,"cron2":false,"cron3":true,"cron5":true,"alert1":false,"alert2":true,"alert15":false,"alert30":false,"senha":"304*******","id_sigma":null,"idServidor":114,"nota":"Teste Auto - Gestor","cronVencimento":false,"ativo":true,"horaenvio":"08:00","email":null,"cobrarEmail":false,"sucesso":true} ``` Resposta 400 (sem whatsCliente): ```json {"sucesso":false,"erro":"whatsCliente é obrigatório."} ``` Resposta 404 (servidor de outro vendedor): ```json {"sucesso":false,"erro":"Servidor não encontrado para esta chave."} ``` ### PATCH /clientes/{id} — Atualizar cliente Ligue as flags editar_* do que quiser mudar e mande os valores em informacoes. sincronizar=true sincroniza com o painel depois. Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes). Corpo JSON: ```json { "editar_nota": true, "informacoes": { "nota": "editado pela API" } } ``` Resposta 200 (sucesso): ```json {"idBanco":584106,"data":"05/11/2026","enviou":false,"whats":"(11************","idFire":"f0i*************************","userid":"135****","nome":"T*** D***","instancia":"HJV*****","vencimento":"07/11/2026","mensagem":"edit","login":"712*******","vendedor":"ftv***","arquivado":false,"userTeste":true,"linkPagamento":"https://pagzap.online/XXXXXX","valorPadrao":false,"mensal":"0","bimestral":"0","trimestral":"0","semestral":"0","anual":"0","dataEnvio":null,"whatsBR":true,"cron1":false,"cron2":false,"cron3":true,"cron5":true,"alert1":false,"alert2":true,"alert15":false,"alert30":false,"senha":"304*******","idSigma":null,"idServidor":114,"nota":"editado pela API","cronVencimento":false,"ativo":true,"email":null,"cobrarEmail":false,"sucesso":true,"resposta":"cliente atualizado com sucesso."} ``` Resposta 400 (nada para atualizar): ```json {"sucesso":false,"erro":"Nada para atualizar. Veja os campos editar_* e informacoes."} ``` Resposta 404 (cliente de outro vendedor): ```json {"sucesso":false,"erro":"Cliente não encontrado para esta chave."} ``` ### POST /clientes/{id}/renovar — Renovar no painel Renova no painel IPTV do servidor do cliente, como o botão Renovar do gestor. CONSOME CRÉDITO DO PAINEL. O tipo do painel e o servidor são descobertos pela API. Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes). Corpo JSON (obrigatórios: meses, valor_pago): ```json { "meses": 1, "valor_pago": 30, "telas": 0 } ``` Resposta 400 (meses inválido): ```json {"sucesso":false,"erro":"meses deve ser um destes: 1, 2, 3, 6, 12."} ``` Resposta 400 (valor_pago inválido): ```json {"sucesso":false,"erro":"valor_pago inválido."} ``` Resposta 404 (cliente de outro vendedor): ```json {"sucesso":false,"erro":"Cliente não encontrado para esta chave."} ``` ### POST /clientes/{id}/sincronizar — Sincronizar com o painel Puxa do painel IPTV os dados atuais do cliente (vencimento, login, telas) e atualiza o gestor. Sem corpo. Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes). Resposta 200 (sucesso): ```json {"resposta":"ok"} ``` Resposta 404 (cliente de outro vendedor): ```json {"sucesso":false,"erro":"Cliente não encontrado para esta chave."} ``` ### POST /clientes/{id}/subclientes — Adicionar subcliente Importa a conta do painel pelo login e liga ao cliente {id}. Sem servidor_id usa o servidor do cliente pai. Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes). Corpo JSON (obrigatórios: login): ```json { "login": "712*******", "nota": "TV do quarto" } ``` Resposta 200 (sucesso): ```json {"resposta":"ok"} ``` Resposta 400 (sem login): ```json {"sucesso":false,"erro":"login é obrigatório (o usuário da conta no painel IPTV)."} ``` Resposta 404 (login não existe no painel): ```json {"sucesso":false,"erro":"Conta não encontrada no painel com esse login."} ``` Resposta 404 (servidor de outro vendedor): ```json {"sucesso":false,"erro":"Servidor não encontrado para esta chave."} ``` ### DELETE /clientes/{id} — Deletar cliente Remove o cliente do gestor. Não pode ser desfeito: exige ?confirmar=true. Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes).; `confirmar` (obrigatório): precisa ser true Resposta 400 (sem confirmar): ```json {"sucesso":false,"erro":"Para deletar, envie ?confirmar=true. A exclusão não pode ser desfeita."} ``` Resposta 404 (cliente de outro vendedor): ```json {"sucesso":false,"erro":"Cliente não encontrado para esta chave."} ``` Resposta 200 (sucesso): ```json {"message":"ok"} ``` ## Pacotes por tela Valores por quantidade de telas (1 a 4). Disponível nos servidores The Best e PlayFast. ### PUT /servidores/{id}/pacotes — Pacotes do servidor Valores por quantidade de telas do servidor (The Best ou PlayFast). Parâmetros: `id` (obrigatório): id do servidor (vem em GET /servidores). Corpo JSON: ```json {} ``` Resposta 404 (servidor de outro vendedor): ```json {"sucesso":false,"erro":"Servidor não encontrado para esta chave."} ``` ### PUT /clientes/{id}/pacotes — Pacotes do cliente Valores por quantidade de telas só para este cliente (servidor The Best ou PlayFast). Parâmetros: `id` (obrigatório): idBanco do cliente (vem em GET /clientes). Corpo JSON: ```json {} ``` Resposta 404 (cliente de outro vendedor): ```json {"sucesso":false,"erro":"Cliente não encontrado para esta chave."} ``` ## Ativação de apps Ativação de apps por MAC (já existente). ### GET /apps — Apps disponíveis Apps disponíveis para o vendedor, com o idapp usado na ativação. ### GET /carteira — Carteira Créditos, ativados e com erro. ### GET /macs — Listar MACs Lista de MACs ativados; busca filtra por fragmento do MAC (até 50 por página). Parâmetros: `pg`; `erro`: true = só os com erro; `busca`: fragmento do MAC ### POST /ativacoes — Ativar app Solicita a ativação de um app para um MAC. mac aceita com ou sem separador; appkey é a chave de ativação do app. Corpo JSON (obrigatórios: idapp, mac, appkey): ```json { "idapp": "ID_DO_APP", "mac": "AA:BB:CC:DD:EE:FF", "appkey": "123456", "whatsapp": "5511999990000", "notificar": false } ``` ### POST /ativacoes/{idpag}/reenviar — Reenviar ativação Reenvia uma ativação que ficou com erro (idpag vem de GET /macs?erro=true). Parâmetros: `idpag` (obrigatório) Corpo JSON (obrigatórios: mac, appkey): ```json { "mac": "AA:BB:CC:DD:EE:FF", "appkey": "123456" } ```