Integração

Cobre no WhatsApp: link de pagamento na conversa, confirmação automática

Cobre pelo WhatsApp com link de pagamento: Pix a R$ 0, boleto e cartão em 12x. Manual, bot via API do WhatsApp ou n8n, com webhook confirmando.

3 passos · em minutos
  1. 01token do sandbox
  2. 02link de pagamento
  3. 03webhook confirma

Para cobrar pelo WhatsApp com o HeroPay, você gera um link de pagamento (no painel ou com POST /payment_links na API) e manda a URL na conversa. O cliente abre um checkout com Pix, boleto e cartão em até 12x, paga, e o HeroPay avisa seu sistema por webhook. Se você usa a API do WhatsApp (a WhatsApp Business Platform da Meta), um bot faz isso sozinho: cria o link quando o cliente pede, envia na conversa e responde "pagamento confirmado" quando o webhook chega. Pix custa R$ 0 por transação e boleto também.

Resumo

O essencial em 60 segundos

  • O HeroPay não tem um produto oficial de WhatsApp. A integração é o link de pagamento: uma URL de checkout que funciona em qualquer conversa, colada à mão ou enviada por um bot.
  • Existem três caminhos: manual (criar o link no painel e colar), automatizado por código (API do HeroPay + API do WhatsApp) e sem código via n8n.
  • Uma chamada POST /payment_links devolve em data.offer.url um checkout pronto com Pix, boleto e cartão em até 12x, que o bot envia como mensagem de texto.
  • O campo src do link volta em cart.src em todo webhook daquela compra. Mandando nele o id do pedido, o bot sabe exatamente de qual conversa veio o pagamento.
  • Pagamento se confirma pelo webhook spark_payment_confirmed, assinado com HMAC no header X-HeroPay-Signature, e não pelo print de comprovante que o cliente manda na conversa.
  • Pix R$ 0 e boleto R$ 0 por transação; cartão 3,49% por transação aprovada, em até 12x. Sem mensalidade, ativação ou mínimo (preços).
  • A API do WhatsApp tem regras próprias da Meta: o cliente precisa ter dado opt-in, e fora da janela de atendimento de 24 horas só vale mensagem de modelo (template) aprovada.

Como cobrar pelo WhatsApp: qual caminho escolher?

Manual (painel)Bot via APIn8n (sem código)Chave Pix no WhatsApp Business
Quem cria a cobrançaVocê, no painelSeu backend, com POST /payment_linksUm fluxo do n8n chamando a APIVocê, colando a chave
MétodosPix, boleto, cartão até 12xPix, boleto, cartão até 12xPix, boleto, cartão até 12xSó Pix
ConfirmaçãoPainel e e-mailWebhook automático na conversaWebhook no n8nConferir extrato ou comprovante
Conciliação por pedidoPelo src do linkAutomática por cart.srcAutomática por cart.srcManual
Precisa da API do WhatsAppNão (app comum ou Business)SimSim, para responder sozinhoNão
Bom paraAté algumas dezenas de vendas por diaVolume, atendimento 24hQuem já automatiza no n8nVenda pontual, só Pix

A última coluna é honestidade: desde 2024 o app WhatsApp Business permite compartilhar a chave Pix na conversa, e o cliente conclui o pagamento no app do banco (Canaltech, jun/2024). Funciona para vender uma vez. O que falta é cartão parcelado, boleto, confirmação automática e saber qual pagamento é de qual pedido. É isso que o link de pagamento resolve.

  1. No painel do HeroPay, crie um link de pagamento com nome, preço e métodos (Pix, boleto, cartão).

[Tela: formulário "Novo link de pagamento" com os campos nome, valor, parcelas e métodos; botão "Copiar link" no fim.]

  1. Copie a URL e cole na conversa, depois de confirmar o pedido e o valor com o cliente.
  2. Acompanhe as vendas no painel. A confirmação chega lá, não no comprovante que o cliente envia.

Dois truques que valem para o caminho manual:

  • Saiba de onde veio a venda. Acrescente ?src=whatsapp (ou ?src=whatsapp-maria, por vendedor) ao fim da URL. Esse valor é salvo no carrinho e volta em cart.src em todos os webhooks daquela compra. Aceita letras, números e . _ - ~.
  • Mantenha a conversa aberta no checkout. O checkout do HeroPay tem widget de WhatsApp: se o cliente travar na hora de pagar, ele fala com você sem fechar a tela de pagamento, e a venda não se perde no último passo.

Para o caminho inverso, levar o cliente do Instagram ou da landing page para a conversa, a HeroSpark tem um gerador gratuito de link do WhatsApp com mensagem pronta: criarlinkwhatsapp.com.br.

Caminho 2: como montar um bot de WhatsApp que cobra sozinho?

A arquitetura tem duas APIs e o seu backend no meio. O HeroPay cuida do dinheiro; a API do WhatsApp cuida da mensagem.

Cliente no WhatsApp
   │ "quero o plano anual"
   ▼
Provedor da API do WhatsApp ──webhook de mensagem──▶ SEU BACKEND
                                                     │ 1. cria o pedido (status pending)
                                                     │ 2. POST /payment_links  (src = id do pedido)
                                                     │ 3. envia data.offer.url na conversa
Cliente paga no checkout HeroPay (Pix, boleto ou cartão)
                                                     │
HeroPay ──webhook spark_payment_confirmed──────────▶ SEU BACKEND
                                                     │ 4. valida X-HeroPay-Signature
                                                     │ 5. acha o pedido por cart.src, marca paid
                                                     │ 6. responde "pagamento confirmado" na conversa

Sobre o lado do WhatsApp. A automação oficial é a WhatsApp Business Platform da Meta, cuja versão hospedada pela própria Meta é a Cloud API. Você pode usá-la direto ou por um provedor parceiro da Meta; esta página não recomenda nenhum provedor, porque o código do HeroPay é o mesmo em qualquer um. Três regras da plataforma que afetam cobrança (fonte: documentação oficial da Meta, consultada em set/2026):

  • As mensagens que o cliente manda chegam ao seu backend por webhook, e os status de entrega também.
  • Quando o cliente escreve, abre-se uma janela de atendimento de 24 horas em que você responde com texto livre. Fora dela, só mensagem de modelo (template) aprovada, e para isso o cliente precisa ter dado opt-in.
  • Desde 1º de julho de 2025, a Meta cobra por mensagem entregue, com preço por categoria (marketing, utilidade, autenticação). Pela página oficial de preços, mensagens sem template e templates de utilidade dentro da janela aberta são gratuitos. Reverifique antes de dimensionar: a tabela muda com frequência.

Passo 1: crie sua conta sandbox no HeroPay

Crie a conta em app.heropay.tech e copie o token de API nas configurações. É um Bearer JWT. No sandbox a URL base é https://api.beta.heropay.tech; em produção, https://api.heropay.tech. Guarde em variável de ambiente, nunca no código:

export HEROPAY_API_URL="https://api.beta.heropay.tech"
export HEROPAY_API_KEY="seu-jwt-do-sandbox"
export HEROPAY_WEBHOOK_SECRET="segredo-exibido-no-painel"

[Tela: painel HeroPay, seção API, com o token mascarado e o botão "Copiar".]

Passo 2: conecte um número à API do WhatsApp

Siga o guia de primeiros passos da Cloud API (ou o onboarding do provedor que você escolher): crie o app, registre o número e aponte o webhook de mensagens para uma rota do seu backend, por exemplo https://seuapp.com/whatsapp/mensagens. Guarde também o token do WhatsApp em variável de ambiente.

[Tela: configuração de webhook do app WhatsApp, com o campo "URL de callback" apontando para /whatsapp/mensagens.]

Quando o bot entende que o cliente quer comprar, o backend cria o pedido e chama o HeroPay. O preço sai do seu banco, nunca da mensagem do cliente.

curl -X POST "$HEROPAY_API_URL/payment_links" \
  -H "Authorization: Bearer $HEROPAY_API_KEY" \
  -H "Accept: application/vnd.herospark.com; version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_link": {
      "name": "Plano anual",
      "description": "Pedido feito pelo WhatsApp",
      "price_cents": 19700,
      "absorbs_fees": true,
      "max_installments": 12,
      "payment_methods": ["pix", "credit_card", "bank_slip"],
      "src": "pedido-8f3a2c"
    }
  }'

Resposta 201 Created (resumida):

{
  "message": "Payment link created successfully",
  "data": {
    "id": 136,
    "name": "Plano anual",
    "price_cents": 19700,
    "max_installments": 12,
    "period": "unitary",
    "offer": {
      "id": 6094,
      "kind": "payment_link",
      "url": "https://pay.beta.herospark.com/fc280e25-7cbd-446f-b34f-5b8824bb5124-6094?src=pedido-8f3a2c",
      "accepted_payment_methods": ["pix", "credit_card", "bank_slip"]
    }
  }
}

data.offer.url é o que vai na conversa. O src já vem embutido na URL, sem você concatenar nada. Valores sempre em centavos: 19700 = R$ 197,00.

Registre um webhook por gatilho. Uma URL por evento deixa o código simples: a rota já diz o que aconteceu.

for trigger in spark_payment_confirmed payment_credit_cart_refused refunded; do
  curl -s -X POST "$HEROPAY_API_URL/webhook" \
    -H "Authorization: Bearer $HEROPAY_API_KEY" \
    -H "Accept: application/vnd.herospark.com; version=1" \
    -H "Content-Type: application/json" \
    -d "{\"webhook\":{\"trigger\":\"$trigger\",\"webhook_url\":\"https://seuapp.com/webhooks/heropay/$trigger\",\"request_method\":\"post\"}}"
done

O código do backend, em Node.js com Express. A parte do HeroPay é o contrato real da API; a função enviarWhatsApp é onde entra o seu provedor (Cloud API da Meta ou outro):

import express from "express";
import crypto from "node:crypto";

const app = express();
const API = process.env.HEROPAY_API_URL;
const HEADERS = {
  Authorization: `Bearer ${process.env.HEROPAY_API_KEY}`,
  Accept: "application/vnd.herospark.com; version=1",
  "Content-Type": "application/json",
};

// Lado WhatsApp: troque pelo envio de texto do seu provedor.
// Na Cloud API da Meta, é uma chamada à API de mensagens (ver developers.facebook.com).
async function enviarWhatsApp(telefone, texto) { /* ... */ }

// 1) O cliente pediu para comprar: cria pedido, cria link, manda na conversa
async function cobrar({ telefone, produto }) {
  const pedido = await db.pedidos.criar({
    telefone,                       // fica no SEU banco, não na URL
    produto_id: produto.id,
    valor_cents: produto.preco_cents, // preço do servidor, nunca da mensagem
    status: "pending",
  });

  const res = await fetch(`${API}/payment_links`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify({
      payment_link: {
        name: produto.nome,
        price_cents: produto.preco_cents, // mínimo 500 (R$ 5,00)
        absorbs_fees: true,
        max_installments: 12,
        payment_methods: ["pix", "credit_card", "bank_slip"],
        src: `pedido-${pedido.id}`,       // volta em cart.src no webhook
      },
    }),
  });
  if (!res.ok) throw new Error(`HeroPay ${res.status}: ${await res.text()}`);
  const { data } = await res.json();

  await db.pedidos.atualizar(pedido.id, { checkout_url: data.offer.url });
  await enviarWhatsApp(
    telefone,
    `Pedido confirmado: ${produto.nome}, R$ ${(produto.preco_cents / 100).toFixed(2).replace(".", ",")}.\n` +
    `Pague por Pix, boleto ou cartão em até 12x: ${data.offer.url}`
  );
}

// 2) O HeroPay avisou: valida a assinatura, acha o pedido, responde na conversa
app.post("/webhooks/heropay/:trigger", express.raw({ type: "application/json" }), async (req, res) => {
  const recebida = Buffer.from(req.get("X-HeroPay-Signature") || "");
  const hmac = () =>
    crypto.createHmac("sha256", process.env.HEROPAY_WEBHOOK_SECRET).update(req.body); // corpo bruto
  // confira o formato da assinatura (hex ou base64) na documentação e mantenha só o certo
  const valida = [hmac().digest("hex"), hmac().digest("base64")].some((e) => {
    const b = Buffer.from(e);
    return recebida.length === b.length && crypto.timingSafeEqual(recebida, b);
  });
  if (!valida) return res.sendStatus(401);

  const evento = JSON.parse(req.body);
  res.sendStatus(200); // responda rápido; o resto roda depois

  const src = evento.cart?.src || "";
  if (!src.startsWith("pedido-")) return;
  const pedido = await db.pedidos.buscar(src.replace("pedido-", ""));
  if (!pedido) return;

  if (req.params.trigger === "spark_payment_confirmed" && pedido.status === "pending") {
    await db.pedidos.atualizar(pedido.id, { status: "paid", paid_at: new Date() }); // idempotente
    await enviarWhatsApp(pedido.telefone, "Pagamento confirmado. Obrigado! Seu acesso já está liberado.");
  }
  if (req.params.trigger === "payment_credit_cart_refused" && pedido.status === "pending") {
    await enviarWhatsApp(pedido.telefone, `O cartão não passou. Quer tentar no Pix? É só usar o mesmo link: ${pedido.checkout_url}`);
  }
  if (req.params.trigger === "refunded") {
    await db.pedidos.atualizar(pedido.id, { status: "refunded" });
  }
});

Repare que o telefone nunca vai para o HeroPay nem para a URL: o src carrega só o id do pedido, e o telefone fica no seu banco. O payload do webhook também traz os dados do comprador (nome, e-mail, telefone), mas o telefone digitado no checkout pode não ser o mesmo da conversa. Casar por cart.src não erra.

Passo 5: teste no sandbox

  1. Mande "quero comprar" para o número de teste. Confira que um pedido pending nasceu no banco e que o link chegou na conversa.
  2. Abra o link e faça uma compra de teste no checkout do sandbox.
  3. Veja o spark_payment_confirmed chegar em /webhooks/heropay/spark_payment_confirmed, o pedido virar paid e a mensagem de confirmação cair na conversa.
  4. Teste o caminho triste: cartão recusado dispara a sugestão de Pix; um POST sem assinatura válida recebe 401.
  5. Para testar no localhost, exponha a porta com um túnel (ngrok, cloudflared ou similar) e registre a URL pública.

Passo 6: troque a chave e vá pro ar

Troque HEROPAY_API_KEY pelo token de produção e HEROPAY_API_URL por https://api.heropay.tech, registre os webhooks de novo na API de produção e pronto. Sem fila de homologação: o código que passou no sandbox é o que roda em produção. Do lado do WhatsApp, confira na Meta ou no seu provedor se o número de produção e os templates que você vai usar fora da janela de 24 horas estão aprovados.

O prompt pronto para gerar o bot com IA

Se você constrói com Claude, ChatGPT, Cursor, Lovable e outros, cole este prompt. Ele descreve as regras de segurança que a maioria dos tutoriais esquece. Troque o que está entre colchetes.

Quero um backend que cobra clientes pelo WhatsApp usando a API HeroPay (referência: https://heropay.tech/llms.txt e https://docs.heropay.tech; não invente endpoints nem campos que não estejam lá). O envio e o recebimento de mensagens usam [a Cloud API da Meta / o provedor X]; isole isso numa função enviarWhatsApp(telefone, texto) e numa rota que recebe o webhook de mensagens.

PRODUTOS
- [ex.: "Plano anual", R$ 197,00, até 12x]
- O preço vive no banco, em centavos. Nunca aceite valor vindo da mensagem do cliente.

FLUXO
1. Rota POST /whatsapp/mensagens recebe as mensagens do WhatsApp. Quando o cliente pedir para comprar um produto, crie um pedido "pending" com telefone, produto e valor_cents.
2. Chame POST {HEROPAY_API_URL}/payment_links com os headers Authorization: Bearer {HEROPAY_API_KEY}, Accept: application/vnd.herospark.com; version=1 e Content-Type: application/json. Corpo: payment_link com name, price_cents (inteiro, mínimo 500), absorbs_fees true, max_installments [12], payment_methods ["pix","credit_card","bank_slip"] e src = "pedido-<id do pedido>".
3. Salve data.offer.url no pedido e envie ao cliente uma mensagem curta com produto, valor em reais e o link.
4. Rotas POST /webhooks/heropay/:trigger, uma por gatilho (spark_payment_confirmed, payment_credit_cart_refused, refunded). Leia o corpo BRUTO e valide o header X-HeroPay-Signature: HMAC SHA-256 do corpo com HEROPAY_WEBHOOK_SECRET, comparação em tempo constante, no formato (hex ou base64) indicado na documentação. Assinatura inválida: 401.
5. Ache o pedido por cart.src. Em spark_payment_confirmed, marque paid só se ainda estiver pending (idempotente) e mande "pagamento confirmado" no WhatsApp. Em cartão recusado, ofereça o Pix com o mesmo link. Em refunded, marque refunded.
6. Responda 200 rápido aos webhooks e processe depois.

REGRAS
- Tokens (HeroPay e WhatsApp) só em variáveis de ambiente, nunca no código, no repositório ou em log.
- Nunca coloque telefone, e-mail ou CPF no src ou em qualquer URL.
- Nunca confirme pagamento por comprovante, print ou mensagem do cliente. Só o webhook confirma.
- Se a mensagem de confirmação cair fora da janela de 24 horas do WhatsApp, use um template de utilidade aprovado; deixe isso configurável.

Ao terminar, me mostre as URLs que preciso registrar no HeroPay (POST /webhook) e no WhatsApp, e um roteiro de teste no sandbox.

O heropay.tech/llms.txt resume o HeroPay para IAs e aponta para a documentação; o contrato que o bot precisa já vai escrito no prompt. No Claude Code e no Cursor, vale guardar essas regras no arquivo de instruções do projeto: veja Claude Code e Cursor. O MCP server do HeroPay está em desenvolvimento e não é necessário aqui.

Caminho 3: dá para cobrar pelo WhatsApp com n8n, sem programar?

Dá. O n8n faz o papel do backend do caminho 2: um nó recebe a mensagem do WhatsApp, um nó HTTP chama POST /payment_links com os mesmos headers, outro manda a URL de volta, e um webhook do n8n recebe o spark_payment_confirmed e responde na conversa. O passo a passo, com o fluxo pronto para importar, está em /integracoes/n8n. Mesmo no n8n, valide a assinatura do webhook antes de marcar qualquer coisa como paga.

O que o checkout do HeroPay já faz por quem vende no WhatsApp?

Dois recursos do checkout ajudam quem vende pela conversa, mesmo no caminho manual:

RecursoO que faz na venda por WhatsApp
Widget de WhatsApp no checkoutO comprador tira a dúvida com você sem fechar a tela de pagamento, o que evita perder a venda no último passo
Recuperação de carrinhoQuem preencheu os dados e não pagou entra na recuperação automática de carrinho, com gatilho em 15 minutos e cerca de 25 variáveis de personalização

Para retomar a venda na própria conversa, use a API: GET /reports/tracking/abandoned_carts lista os carrinhos em que o comprador deixou e-mail ou telefone e não pagou. Um bot pode puxar essa lista de hora em hora e retomar a conversa, desde que o cliente tenha dado opt-in para receber mensagens no WhatsApp.

Do lado do HeroPay, o custo é por transação aprovada. Veja 300 cobranças de R$ 150 num mês:

300 cobranças de R$ 150HeroPayAsaas
PixR$ 0R$ 597,00 (R$ 1,99 cada)
BoletoR$ 0R$ 597,00 (R$ 1,99 cada)
Cartão à vista, por vendaR$ 5,24 (3,49%)R$ 4,98 (2,99% + R$ 0,49)

Verificado em 23/set/2026. Fontes: heropay.tech/precos, asaas.com/precos-e-taxas. O Asaas cobra R$ 0,99 no Pix e no boleto nos três primeiros meses.

Honestidade no cartão: à vista, acima de R$ 98 por venda, o Asaas sai mais barato, como nas cobranças de R$ 150 da tabela; até R$ 98, o HeroPay cobra o mesmo ou menos. A conta vira quando o cliente paga em Pix, que é o método natural de quem compra pela conversa. Por isso vale oferecer o Pix primeiro na mensagem e o cartão parcelado como alternativa para ticket alto.

Do lado do WhatsApp: mandar o link à mão pelo app comum ou pelo WhatsApp Business não custa nada. Na API do WhatsApp, a Meta cobra por mensagem entregue conforme a categoria, e provedores podem somar a própria tarifa. Consulte a tabela oficial da Meta e a do seu provedor.

Quais são as armadilhas mais comuns ao cobrar pelo WhatsApp?

Aceitar comprovante como prova de pagamento

Print de Pix se falsifica em minutos, e o golpe do comprovante falso é comum em venda por conversa. A única prova é o webhook spark_payment_confirmed com assinatura válida. Confie no evento, não no print.

Preço vindo da conversa

Se o bot monta o price_cents a partir do que o cliente escreveu, alguém pede "o plano de R$ 5" e paga R$ 5. O cliente escolhe o produto; o preço sai do seu banco.

Telefone ou CPF na URL

O link circula: vai para grupos, fica no histórico, passa por encurtadores. Não coloque dado pessoal no src. Use um id opaco do pedido e guarde o telefone no seu banco.

Reais onde a API espera centavos

price_cents é inteiro em centavos: R$ 197,00 é 19700. Mandar 197 cria uma cobrança de R$ 1,97, que a API recusa com 422 porque o mínimo é R$ 5,00. No cartão, cada parcela precisa ter pelo menos R$ 1,99: ajuste max_installments ao ticket.

Confirmação fora da janela de 24 horas

O cliente pede o link às 10h e paga o boleto dois dias depois. Quando o webhook chega, a janela de atendimento já fechou e texto livre não sai. Tenha um template de utilidade aprovado para "pagamento confirmado", ou a mensagem não é entregue.

Webhook sem assinatura ou sem idempotência

Uma rota pública que marca pedido como pago precisa validar o X-HeroPay-Signature, senão qualquer um forja um "pago". E a retentativa automática pode entregar o mesmo evento duas vezes: só mude para paid se ainda estiver pending, para não mandar duas confirmações.

Token no lugar errado

O token do HeroPay dá acesso a vendas e saldo. Ele vive no servidor, em variável de ambiente. Nunca em fluxo exportado, planilha, código de front ou mensagem de chat.

Perguntas frequentes

Como cobrar pelo WhatsApp?

O jeito mais simples é mandar um link de pagamento. Você cria o link no painel do HeroPay com o produto e o valor, cola na conversa, e o cliente paga por Pix, boleto ou cartão em até 12x num checkout seguro, sem você precisar de site ou maquininha. A confirmação chega no painel e, se você integrar, por webhook. Para volume maior, um bot na API do WhatsApp cria o link sozinho quando o cliente pede e avisa na conversa assim que o pagamento é confirmado. Pix e boleto custam R$ 0 por transação no HeroPay.

O HeroPay tem integração oficial com o WhatsApp?

Não existe um aplicativo ou conector oficial do HeroPay dentro do WhatsApp. A integração acontece pelo link de pagamento, que funciona em qualquer conversa, e pela API: seu bot, conectado à WhatsApp Business Platform da Meta direto ou por um provedor, chama POST /payment_links e recebe webhooks do HeroPay. Também dá para montar tudo sem código no n8n. No checkout, o HeroPay já oferece widget de WhatsApp e recuperação de carrinho, que ajudam quem vende pela conversa.

A API do WhatsApp é gratuita?

Não totalmente. A WhatsApp Business Platform da Meta não cobra mensalidade, mas cobra por mensagem entregue desde julho de 2025, com preço por categoria (marketing, utilidade e autenticação) e por país. Segundo a página oficial de preços, consultada em set/2026, mensagens sem template e templates de utilidade dentro da janela de atendimento de 24 horas são gratuitos. Provedores parceiros podem cobrar à parte. Já mandar link de pagamento à mão pelo WhatsApp comum ou Business não tem custo.

Consegue. Quando o bot identifica que o cliente quer comprar, seu backend cria o pedido e chama POST /payment_links na API do HeroPay com o preço em centavos e o id do pedido no campo src. A resposta traz data.offer.url, a URL do checkout, que o bot envia como mensagem. Quando o cliente paga, o webhook spark_payment_confirmed chega com cart.src, o backend acha o pedido e o bot responde "pagamento confirmado". O código completo está nesta página.

Pelo webhook, nunca pelo comprovante. Registre uma URL para o gatilho spark_payment_confirmed e valide a assinatura HMAC no header X-HeroPay-Signature. O evento traz dados do comprador, do pagamento e do carrinho, incluindo cart.src, a origem que você colocou no link. No caminho manual, sem integração, a venda aparece no painel do HeroPay. Print de Pix é fácil de falsificar e o Pix pode ser pago minutos depois; o evento assinado é a única prova confiável.

Pode, e o próprio WhatsApp Business permite compartilhar a chave Pix com o cliente, que conclui o pagamento no app do banco. Para uma venda pontual, resolve. As limitações aparecem com volume: só aceita Pix, não parcela no cartão, não gera boleto, não confirma sozinho e não diz qual pagamento é de qual pedido, então você concilia pelo extrato. O link de pagamento do HeroPay custa os mesmos R$ 0 no Pix e resolve os outros pontos.

Dá para cobrar mensalidade pelo WhatsApp?

Dá. Crie o link com period (monthly, quarterly, semiannual ou annual) e mande na conversa uma vez. A recorrência aceita cartão, boleto e Pix; no Pix, o cliente autoriza o Pix Automático e as cobranças seguintes caem sozinhas, sem precisar mandar link todo mês. Os webhooks subscription_activate, subscription_update e subscription_cancel avisam seu bot do ciclo da assinatura, para ele agradecer a renovação ou chamar o cliente quando uma cobrança falhar.

Preciso da API oficial do WhatsApp para automatizar a cobrança?

Para o bot enviar e receber mensagens sozinho, sim: a automação oficial da Meta é a WhatsApp Business Platform, usada direto pela Cloud API ou por um provedor parceiro. Ferramentas que simulam o WhatsApp Web ficam fora dessa plataforma e podem levar ao bloqueio do número. Se você ainda não tem a API, comece pelo caminho manual: crie links no painel e cole na conversa. A integração com o HeroPay é a mesma quando você migrar para o bot.

É, desde que o cliente reconheça o link. O cartão é digitado no checkout hospedado pelo HeroPay, não na conversa nem no seu sistema, então ninguém da sua equipe vê número de cartão. Para reduzir desconfiança, confirme o pedido e o valor antes de enviar, mande o link a partir do seu número de sempre e oriente o cliente a conferir o nome da sua empresa e o valor no checkout antes de pagar. Nunca peça dados de cartão por mensagem.

No HeroPay, Pix R$ 0 e boleto R$ 0 por transação; cartão 3,49% por transação aprovada, em até 12x. Sem mensalidade, ativação ou mínimo, e o sandbox é gratuito. Numa venda de R$ 150 no cartão, a tarifa fica em R$ 5,24; no Pix, R$ 0. O envio manual do link pelo WhatsApp não custa nada; se você usa a API do WhatsApp, a Meta cobra por mensagem entregue conforme a categoria.

Qual é o valor mínimo para cobrar pelo WhatsApp?

R$ 5,00 por link, ou 500 em price_cents. Abaixo disso a API responde 422. No cartão, cada parcela precisa ter pelo menos R$ 1,99, então um produto de R$ 15 não vai em 12x: ajuste max_installments ao ticket. Para vendas pequenas e frequentes, ofereça o Pix, que custa R$ 0 por transação e não tem parcela mínima a respeitar.

Comece agora

Crie a conta sandbox, gere o primeiro link e mande para o seu próprio WhatsApp. Quando quiser automatizar, o código desta página roda no sandbox do mesmo jeito que em produção: troque a chave e vá pro ar.

Conecte e cobre em minutos

Sandbox grátis, docs abertas e llms.txt para a sua ferramenta de IA.

Pix e boleto R$ 0 · cartão 3,49% em até 12x · saque sem tarifa