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.
Criar conta sandbox Ler a documentação
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_linksdevolve emdata.offer.urlum checkout pronto com Pix, boleto e cartão em até 12x, que o bot envia como mensagem de texto. - O campo
srcdo link volta emcart.srcem 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 headerX-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 API | n8n (sem código) | Chave Pix no WhatsApp Business | |
|---|---|---|---|---|
| Quem cria a cobrança | Você, no painel | Seu backend, com POST /payment_links | Um fluxo do n8n chamando a API | Você, colando a chave |
| Métodos | Pix, boleto, cartão até 12x | Pix, boleto, cartão até 12x | Pix, boleto, cartão até 12x | Só Pix |
| Confirmação | Painel e e-mail | Webhook automático na conversa | Webhook no n8n | Conferir extrato ou comprovante |
| Conciliação por pedido | Pelo src do link | Automática por cart.src | Automática por cart.src | Manual |
| Precisa da API do WhatsApp | Não (app comum ou Business) | Sim | Sim, para responder sozinho | Não |
| Bom para | Até algumas dezenas de vendas por dia | Volume, atendimento 24h | Quem já automatiza no n8n | Venda 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.
Caminho 1: como mandar link de pagamento no WhatsApp sem código?
- 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.]
- Copie a URL e cole na conversa, depois de confirmar o pedido e o valor com o cliente.
- 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 emcart.srcem 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 conversaSobre 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.]
Passo 3: crie o link quando o cliente pedir
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.
Passo 4: envie o link e escute o HeroPay
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\"}}"
doneO 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
- Mande "quero comprar" para o número de teste. Confira que um pedido
pendingnasceu no banco e que o link chegou na conversa. - Abra o link e faça uma compra de teste no checkout do sandbox.
- Veja o
spark_payment_confirmedchegar em/webhooks/heropay/spark_payment_confirmed, o pedido virarpaide a mensagem de confirmação cair na conversa. - Teste o caminho triste: cartão recusado dispara a sugestão de Pix; um POST sem assinatura válida recebe
401. - 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:
| Recurso | O que faz na venda por WhatsApp |
|---|---|
| Widget de WhatsApp no checkout | O 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 carrinho | Quem 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.
Quanto custa cobrar pelo WhatsApp com link de pagamento?
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$ 150 | HeroPay | Asaas |
|---|---|---|
| Pix | R$ 0 | R$ 597,00 (R$ 1,99 cada) |
| Boleto | R$ 0 | R$ 597,00 (R$ 1,99 cada) |
| Cartão à vista, por venda | R$ 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.
Um bot de WhatsApp consegue gerar link de pagamento sozinho?
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.
Como saber se o cliente pagou pelo link enviado no WhatsApp?
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.
Posso mandar a chave Pix direto na conversa em vez de um link?
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.
É seguro mandar link de pagamento pelo WhatsApp?
É, 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.
Quanto custa receber pelo link de pagamento no WhatsApp?
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.