ProtectZapProtectZap
Aquecimento

API de Aquecimento

Os números de WhatsApp da conta, a conexão, os modos de aquecimento e o progresso de cada um, pelo seu sistema. O aquecimento segue o mesmo ritmo e as mesmas regras da tela.

Endereço base: https://www.protectzap.com.br/api/v1/aquecimento

O que dá para fazer

  • Números: cadastrar, renomear e apagar números, e ver a situação de cada um (conectado, aquecendo, completo, em campanha, precisando de ação).
  • Conexão: gerar o QR Code ou o código de conexão para mostrar no seu sistema, acompanhar até conectar e desconectar.
  • Aquecimento: ligar e desligar os modos de cada número, acompanhar o dia, as mensagens e quantos dias faltam, e mudar o horário e o proxy regional.
  • Avisos: receber no seu sistema quando um número conecta, cai, sofre restrição do WhatsApp, chega à meta ou tem o aquecimento pausado.

Para usar, a conta precisa do plano Pro+ do Aquecimento (ou do Acesso total Pro+) e de uma chave com o produto Aquecimento (veja Chaves e autenticação).

Conectar um número

O caminho completo, do cadastro ao aquecimento:

  1. POST /api/v1/aquecimento/numeros com o nome, e o cabeçalho Idempotency-Key. Guarde o id (num_...).
  2. POST /api/v1/aquecimento/numeros/{id}/conectar com { "metodo": "qr" }, ou com o código pelo número e o telefone.
  3. GET /api/v1/aquecimento/numeros/{id}/codigo a cada 5 segundos: mostre o qr_code (ou o codigo_pareamento) para a pessoa ler no WhatsApp do celular, em Aparelhos conectados. O QR Code se renova automaticamente; continue consultando até conectado: true.
  4. PUT /api/v1/aquecimento/numeros/{id}/modos com os modos recomendados. O aquecimento começa com um período de adaptação de 24 horas e se completa em cerca de 14 dias.
PUT /api/v1/aquecimento/numeros/num_.../modos
{ "comunitario": true, "grupos": true, "status": true }

Números

Os números de WhatsApp da conta. Cada número tem uma situação, a mesma da tela: nunca conectado, desconectado, conectado sem aquecimento, adaptação (as primeiras 24 horas), aquecendo, aquecimento completo, em campanha ou em automação de Disparos, ou pausado por plano.

GET/api/v1/aquecimento/numerosPermissão: leitura

Listar números

Todos os números com a situação, os modos ligados, o progresso do aquecimento (dia, mensagens enviadas, meta, dias restantes, mensagens de hoje), a restrição do WhatsApp (restricao_ate), o proxy e onde mais o número está em uso, mais o resumo da conta. ?precisa_de_voce=true traz só os que pedem ação: desconectado, nunca conectado ou plano vencido.

POST/api/v1/aquecimento/numerosPermissão: leitura e escrita

Cadastrar um número

Cria o número, ainda sem conexão, dentro do limite de números do plano. O nome tem de 3 a 50 caracteres e não pode repetir outro número da conta. Exige o cabeçalho Idempotency-Key: a mesma chave devolve o mesmo número (repetido: true). Depois, conecte com /numeros/{id}/conectar.

Aceita simular; criar exige Idempotency-Key.

{ "nome": "Vendas" }
GET/api/v1/aquecimento/numeros/{id}Permissão: leitura

Um número

O número no mesmo formato da lista (num_...).

PATCH/api/v1/aquecimento/numeros/{id}Permissão: leitura e escrita

Renomear

Muda o nome (de 3 a 50 caracteres, sem repetir outro número da conta).

{ "nome": "Vendas Sul" }
DELETE/api/v1/aquecimento/numeros/{id}Permissão: leitura e escrita

Apagar

Apaga o número e a conexão dele: a sessão do WhatsApp sai junto e não há como desfazer. Número em campanha ou automação de Disparos é recusado (409 numero_em_uso): tire o número de lá antes.

Conexão

Conectar é ler um QR Code ou digitar um código no WhatsApp do celular. O pedido inicia a tentativa; o código chega alguns segundos depois e é consultado à parte, porque o QR Code se renova a cada 20 segundos, mais ou menos.

POST/api/v1/aquecimento/numeros/{id}/conectarPermissão: leitura e escrita

Conectar

metodo qr (padrão) ou codigo, com o telefone do número com DDD (o código é digitado em WhatsApp › Aparelhos conectados › Conectar com número de telefone). O código não volta aqui: consulte /numeros/{id}/codigo. Pedir de novo enquanto conecta reinicia a tentativa. Número já conectado é recusado (409 ja_conectado): desconecte antes para trocar a sessão.

{ "metodo": "codigo", "telefone": "5511999998888" }
GET/api/v1/aquecimento/numeros/{id}/codigoPermissão: leitura

Código de conexão

O código atual: qr_code (imagem PNG em data URL) ou codigo_pareamento, e a situacao (conectando, conectado ou desconectado). Consulte a cada 5 segundos até conectado: true; consultar não reinicia a tentativa.

POST/api/v1/aquecimento/numeros/{id}/desconectarPermissão: leitura e escrita

Desconectar

A sessão do WhatsApp sai, o aquecimento para e as conversas da rede ficam pausadas até conectar de novo. A campanha de Disparos que usava o número passa os envios dele para os outros números. Número já desconectado não muda nada (mudou: false).

Modos e progresso

O aquecimento roda pelos modos ligados em cada número: Comunitário (conversas 1 a 1 com números de outros clientes da ProtectZap), Grupos (entrada gradual nos grupos da ProtectZap, o primeiro na hora e os outros ao longo da semana), Status (publica Status com as imagens e vídeos da conta) e Privado (conversas entre os números da própria conta). O recomendado é Comunitário, Grupos e Status.

PUT/api/v1/aquecimento/numeros/{id}/modosPermissão: leitura e escrita

Ligar e desligar modos

Só os modos enviados mudam; desligar vem antes de ligar. Ligar confere o plano, o limite de números aquecendo, a conexão, dois números conectados para o Privado e arquivos de Status para o Status, e recusa número em campanha ou automação de Disparos (409 numero_em_uso). Repetir o pedido não muda nada (mudou: false). Se um modo for recusado, os anteriores do mesmo pedido já valeram: o erro traz detalhes.aplicadas.

{ "comunitario": true, "grupos": true, "status": true }
GET/api/v1/aquecimento/numeros/{id}/progressoPermissão: leitura

Progresso

Dia do aquecimento, mensagens enviadas, meta, se concluiu e quantos dias faltam, mais ou menos.

GET/api/v1/aquecimento/configuracoesPermissão: leitura

Configurações

O horário do aquecimento (Brasília), se os números salvam os contatos da rede, o limite de números aquecendo do plano e o proxy da conta.

PATCH/api/v1/aquecimento/configuracoesPermissão: leitura e escrita

Mudar configurações

Muda só o que vier: horario (inicio e fim, HH:MM, início antes do fim), salvar_contatos e proxy da conta (modo conta, um local para todos os números, ou numero, cada número com o seu, e o local em pais, estado e cidade). Um pedido com erro não grava nada.

{ "horario": { "inicio": "08:00", "fim": "21:00" }, "proxy": { "modo": "conta", "estado": "sp", "cidade": "campinas" } }

Proxy regional

A cidade de onde o número se conecta. Vale na próxima conexão do número. Com a conta no modo `conta`, todos os números usam o local da conta; no modo `numero`, cada número usa o seu (e, sem cidade própria, o da conta).

GET/api/v1/aquecimento/proxy/cidadesPermissão: leitura

Cidades disponíveis

?estado=sp lista as cidades do estado; ?busca=campinas procura pelo nome. Cada cidade tem o valor, que vai no campo cidade, e o nome.

GET/api/v1/aquecimento/numeros/{id}/proxyPermissão: leitura

Proxy de um número

O local do número, o da conta e o que vale agora (vigente, com a origem: numero ou conta).

PUT/api/v1/aquecimento/numeros/{id}/proxyPermissão: leitura e escrita

Mudar o proxy de um número

Grava o local do número (estado e cidade; cidade: null limpa). A cidade é conferida no catálogo. vale_na_proxima_conexao: true quando o número já está conectado.

{ "estado": "sp", "cidade": "campinas" }

Webhooks

Avisos para o seu sistema quando algo acontece. O cadastro é da conta: o mesmo webhook aparece nas APIs dos outros produtos e pode pedir avisos de todos os produtos em que a conta está no plano Pro+.

GET/api/v1/aquecimento/webhooksPermissão: leitura

Listar

Os webhooks da conta com o resumo das últimas 24 horas. O segredo nunca volta aqui.

POST/api/v1/aquecimento/webhooksPermissão: leitura e escrita

Criar

url https pública, eventos e descricao opcional. A resposta é a única vez em que o segredo aparece. Até 5 por conta, e o dono é avisado no painel.

{ "url": "https://seu-sistema.com/protectzap", "eventos": ["aquecimento.numero.desconectado", "aquecimento.numero.concluido"] }
GET/api/v1/aquecimento/webhooks/{id}Permissão: leitura

Um webhook

Endereço, avisos pedidos, situação e as falhas recentes (whk_...).

PATCH/api/v1/aquecimento/webhooks/{id}Permissão: leitura e escrita

Mudar

Muda url, eventos, descricao ou ativo. Religar entrega o que ficou na fila.

DELETE/api/v1/aquecimento/webhooks/{id}Permissão: leitura e escrita

Apagar

Apaga o webhook e o histórico de entregas dele.

GET/api/v1/aquecimento/webhooks/{id}/entregasPermissão: leitura

Entregas

Os últimos avisos (até 200, 30 dias de histórico) com a situação e a resposta de cada um.

POST/api/v1/aquecimento/webhooks/{id}/testarPermissão: leitura e escrita

Testar

Manda um webhook.teste agora e devolve o que o endereço respondeu.

POST/api/v1/aquecimento/webhooks/{id}/segredoPermissão: leitura e escrita

Trocar o segredo

Gera um segredo novo; o antigo deixa de valer na hora. A resposta é a única vez em que ele aparece.

POST/api/v1/aquecimento/webhooks/entregas/{id}/reenviarPermissão: leitura e escrita

Reenviar um aviso

Manda de novo um aviso (whe_...) com o mesmo id, para o seu sistema descartar se já recebeu.

GET/api/v1/aquecimento/webhooks/eventosPermissão: leitura

Catálogo

Os avisos do Aquecimento que um webhook pode pedir.

Limites do Aquecimento

  • Números da conta: o limite do plano vale para cadastrar (o maior entre os limites de Aquecimento, Disparos e Grupos da conta) e, à parte, para quantos números aquecem ao mesmo tempo (o limite do plano de aquecimento, em limite_aquecendo).
  • Ritmo: o aquecimento segue o mesmo ritmo da tela, número a número. Ligar modos pela API não acelera nada: a meta de 2.500 mensagens é atingida em cerca de 14 dias.
  • Números em Disparos: número em campanha ou automação de Disparos fica com o aquecimento pausado enquanto isso, e a API recusa ligar modos nele.
  • Conexão: o QR Code e o código de conexão valem por pouco tempo. Pedir uma conexão nova enquanto outra está em andamento reinicia a tentativa.

Avisos de webhook do Aquecimento

Os avisos que um webhook pode pedir para o Aquecimento. Cada um traz o numero (id, nome e telefone) e, quando há, o motivo: na desconexão, por_voce, queda ou banimento_provavel; na pausa, plano, limite, campanha ou automacao. Como funcionam a entrega e a assinatura está em Webhooks.

AvisoQuando chega
aquecimento.numero.conectadoUm número conectou pela primeira vez ou voltou a conectar
aquecimento.numero.desconectadoUm número desconectou, com o motivo: por você, queda ou banimento provável
aquecimento.numero.restritoO WhatsApp restringiu o alcance de um número (iniciar conversas fica bloqueado por um tempo), com até quando
aquecimento.numero.concluidoUm número chegou à meta de mensagens do aquecimento
aquecimento.numero.pausadoO aquecimento de um número foi pausado, com o motivo: plano, limite de números, campanha ou automação de Disparos

Ferramentas do MCP do Aquecimento

Uma chave com o produto Aquecimento mostra estas ferramentas no servidor MCP. As que planejam devolvem um código, e só a ferramenta confirmar executa (veja MCP). Cadastrar, conectar e apagar números ficam com a API e a tela.

aquecimento_numerosNúmeros do AquecimentoPermissão: leitura

Os números da conta com a situação (aquecendo, completo, desconectado, em campanha...), os modos ligados, o dia e as mensagens do aquecimento, a restrição do WhatsApp e onde mais o número está em uso, com o resumo da conta. Use os ids num_ daqui nas outras ferramentas.

Parâmetros: precisa_de_voce

aquecimento_progressoProgresso de um númeroPermissão: leitura

Dia do aquecimento, mensagens enviadas, meta e quantos dias faltam, de um número.

Parâmetros: numero

aquecimento_pendenciasO que precisa de açãoPermissão: leitura

O que pede o usuário no Aquecimento: números desconectados ou nunca conectados, plano vencido, números com restrição do WhatsApp, aquecimento pausado (e por quê) e o uso do limite de números aquecendo.

aquecimento_planejar_modosPlanejar mudança de modosPermissão: leitura

Confere, com as regras da tela (plano, limite de números aquecendo, conexão, Privado com dois números, Status com arquivos, número em campanha ou automação), ligar e desligar modos de um número. Nada muda: devolve um codigo_confirmacao (15 min) e só confirmar aplica.

Parâmetros: numero, modos

aquecimento_planejar_desconexaoPlanejar desconexãoPermissão: leitura

Mostra o efeito de desconectar um número (a sessão do WhatsApp sai, o aquecimento e os matchings param, e voltar exige ler o QR Code no celular). Nada muda: devolve um codigo_confirmacao (15 min) e só confirmar desconecta.

Parâmetros: numero

Erros do Aquecimento

Além dos erros que valem para toda a API:

StatusCódigoQuando
403plano_sem_aquecimentoO plano da conta não inclui aquecimento.
403conta_inativaA assinatura da conta venceu: renove o plano para retomar o aquecimento.
403limite_numerosA conta atingiu o limite de números do plano.
400limite_aquecimentoA conta atingiu o limite de números aquecendo do plano.
400numero_desconectadoLigar um modo num número desconectado: conecte antes.
400privado_requer_doisO modo Privado precisa de pelo menos dois números conectados na conta.
400sem_arquivos_statusO modo Status precisa de arquivos de Status na conta (Configurações › Aquecimento).
409numero_em_usoO número está numa campanha ou automação de Disparos: o aquecimento fica pausado enquanto isso, e o número não pode ser apagado.
409ja_conectadoConectar um número que já está conectado. Desconecte antes para trocar a sessão.
409nome_repetidoOutro número da conta já tem esse nome.
400nome_invalidoO nome precisa ter de 3 a 50 caracteres.
400telefone_invalidoO telefone para o código de conexão precisa ter o DDD.
400cidade_invalidaA cidade não está no catálogo do proxy. Consulte /proxy/cidades.
400horario_invalidoHorário fora do formato HH:MM ou início depois do fim.
503sem_grupo_disponivelNão há grupo de aquecimento com vaga agora. Tente ligar o modo Grupos de novo em alguns minutos.
503capacidade_indisponivelNão foi possível preparar a conexão agora. Tente de novo em alguns minutos.