Ir para Conteúdo Principal

Titulo

Planos de API Whatsapp

📊 Diferenças entre os Planos

Planos

Item
Valor mensalPlano 25.000 mensagens — R$ 39,00
Plano 50.000 mensagens — R$ 59,00
Plano 75.000 mensagens — R$ 79,00
Plano 100.000 mensagens — R$ 99,00
Mensagens incluídas por mês25.000 ou 50.000 mensagens / mês75.000 ou 100.000 mensagens / mês
Limite diárioAté 5.000 mensagens por diaAté 5.000 mensagens por dia
Frequência de envio1 mensagem a cada 10 segundos (anti-spam)1 mensagem a cada 10 segundos (anti-spam)
Tamanho máximo da mensagemMáx. 500 caracteres por mensagemMáx. 500 caracteres por mensagem
Uso indicadoNotificações e lembretes com volume moderadoGrandes volumes de notificações e automações (respeitando anti-spam)

🔄 Itens Comuns em Todos os Planos

Comum Planos

ItemDescrição
Renovação mensalContador de mensagens é zerado automaticamente todo dia 1 às 00h.
Limite diárioIndependente do plano, cada conta pode enviar até 5.000 mensagens por dia.
Controle anti-spamEnvio limitado a 1 mensagem a cada 10 segundos por cliente, reduzindo risco de bloqueio.
Tipo de APIAPI exclusiva para envio de mensagens (one-way). Não recebemos nem processamos respostas.
AutenticaçãoCada cliente recebe um endpoint dedicado com autenticação Basic Auth.
Formato da requisiçãoParâmetros obrigatórios: telefone no formato +551198765432 e mensagem com até 500 caracteres.
CobrançaAssinatura mensal recorrente via Mercado Pago (cartão de crédito).

🚀 Contratar Agora

Preços

Planos básicos — até 50.000 mensagens/mês

Indicados para notificações, lembretes e comunicação recorrente com clientes em volume moderado.

25.000 mensagens por mês Ideal para pequenos sistemas e automações simples
R$ 39,00 Assinar
50.000 mensagens por mês Mais fôlego para lembretes, cobranças e avisos diários
R$ 59,00 Assinar
Planos avançados — até 100.000 mensagens/mês ⭐

Para integrações com maior volume de mensagens e automações mais intensas.

75.000 mensagens por mês Ideal para CRMs, cobranças e notificações em lote controlado
R$ 79,00 Assinar
100.000 mensagens por mês Maior volume disponível, com controle anti-spam (1 msg a cada 10s)
R$ 99,00 Assinar

🛠️ Exemplo de Uso

Exemplos

🛠️ Exemplo de uso da API de WhatsApp

Abaixo seguem exemplos reais de como realizar chamadas para o endpoint da API usando cURL e também via Oracle Database (UTL_HTTP).


curl --location 'https://n8n.hlgcloud.com.br/webhook-test/whatsapp-api' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --user 'api-user-demo:SenhaSuperSecreta123' \
  --data-urlencode 'telefone=+559999999999' \
  --data-urlencode 'mensagem=Olá! Esta é uma mensagem enviada pela API de WhatsApp do HLG Cloud.'

-- Neste exemplo esta foi configurado wallet em /u01/app/oracle/wallet/
-- Necessário liberação de ACL

set define off
 
CREATE OR REPLACE PROCEDURE prc_send_whatsapp(
  p_tel  IN VARCHAR2,   -- exemplo: +5516992267482
  p_msg  IN VARCHAR2,   -- mensagem com acentos até 2000 caracteres
  p_user IN VARCHAR2,   -- usuário do BasicAuth
  p_pass IN VARCHAR2    -- senha do BasicAuth
) AS
  v_req       UTL_HTTP.req;
  v_resp      UTL_HTTP.resp;
  v_url       VARCHAR2(4000) := 'https://n8n.hlgcloud.com.br/webhook/whatsapp-api';
  v_msg_enc   VARCHAR2(32767);
  v_body      VARCHAR2(32767);
  v_raw       RAW(32767);
  v_result    VARCHAR2(32767);
  v_len       PLS_INTEGER;
  l_resp_open BOOLEAN := FALSE;

  -- URL-encode em UTF-8
  FUNCTION url_encode_form(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    v_raw         RAW(32767);
    v_len_bytes   PLS_INTEGER;
    v_pos         PLS_INTEGER := 1;
    v_byte_raw    RAW(1);
    v_byte_num    PLS_INTEGER;
    v_hex         VARCHAR2(2);
    v_out         VARCHAR2(32767) := '';
  BEGIN
    v_raw := UTL_RAW.cast_to_raw(CONVERT(p_str, 'AL32UTF8'));
    v_len_bytes := UTL_RAW.length(v_raw);

    WHILE v_pos <= v_len_bytes LOOP
      v_byte_raw := UTL_RAW.substr(v_raw, v_pos, 1);
      v_byte_num := TO_NUMBER(RAWTOHEX(v_byte_raw), 'XX');

      IF v_byte_num = 32 THEN
        v_out := v_out || '+';
      ELSIF (v_byte_num BETWEEN 48 AND 57)   -- 0-9
         OR (v_byte_num BETWEEN 65 AND 90)   -- A-Z
         OR (v_byte_num BETWEEN 97 AND 122)  -- a-z
         OR v_byte_num IN (45,46,95,126) THEN -- - . _ ~
        v_out := v_out || CHR(v_byte_num);
      ELSE
        v_out := v_out || '%' || RAWTOHEX(v_byte_raw);
      END IF;

      v_pos := v_pos + 1;
    END LOOP;

    RETURN v_out;
  END;
BEGIN
  IF p_tel IS NULL THEN
    RAISE_APPLICATION_ERROR(-20001, 'Telefone não informado.');
  END IF;

  IF p_msg IS NULL THEN
    v_msg_enc := '';
  ELSE
    v_msg_enc := url_encode_form(p_msg);
  END IF;

  v_body := 'telefone=' || p_tel ||
            CHR(38) ||
            'mensagem=' || v_msg_enc;

  -- Converte o body para UTF-8
  v_raw := UTL_RAW.cast_to_raw(CONVERT(v_body, 'AL32UTF8'));
  v_len := UTL_RAW.length(v_raw);

  -- Configura wallet
  UTL_HTTP.set_wallet('file:/u01/app/oracle/wallet/');

  -- Inicia requisição
  v_req := UTL_HTTP.begin_request(url => v_url, method => 'POST');

  UTL_HTTP.set_header(v_req, 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  UTL_HTTP.set_header(v_req, 'Content-Length', TO_CHAR(v_len));

  -- cria BasicAuth seguro
  UTL_HTTP.set_header(
    v_req,
    'Authorization',
    'Basic ' ||
    UTL_RAW.cast_to_varchar2(
      UTL_ENCODE.base64_encode(
        UTL_RAW.cast_to_raw(p_user || ':' || p_pass)
      )
    )
  );

  UTL_HTTP.set_header(v_req, 'User-Agent', 'Oracle-UTL_HTTP');

  -- Envia o corpo UTF-8
  UTL_HTTP.write_raw(v_req, v_raw);

  -- Recebe a resposta
  v_resp := UTL_HTTP.get_response(v_req);
  l_resp_open := TRUE;

  DBMS_OUTPUT.put_line('STATUS: ' || v_resp.status_code);

  LOOP
    BEGIN
      UTL_HTTP.read_text(v_resp, v_result);
      DBMS_OUTPUT.put_line(v_result);
    EXCEPTION
      WHEN UTL_HTTP.end_of_body THEN
        EXIT;
    END;
  END LOOP;

  UTL_HTTP.end_response(v_resp);
  l_resp_open := FALSE;

EXCEPTION
  WHEN OTHERS THEN
    BEGIN
      IF l_resp_open THEN
        UTL_HTTP.end_response(v_resp);
      END IF;
    EXCEPTION
      WHEN OTHERS THEN NULL;
    END;
    RAISE;
END prc_send_whatsapp;
/

-- Para usar acentos o NLS_LANG deve permitir
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

BEGIN
  prc_send_whatsapp(
    p_tel  => '+5516992267482',
    p_msg  => 'Olá! Procedimento funcionando com coração.',
    p_user => 'api-whatsapp',
    p_pass => 'senhaApi'
  );
END;
/

Suporte

📱 Precisa de ajuda? Fale direto no Whatsapp