API REST para o WhatsApp · Cloud API oficial

WhatsApp oficial, sem a complexidade da Meta.

Uma API REST simples para integrar o WhatsApp ao seu sistema pela Cloud API da Meta.

Conecte o número pela janela da Meta, crie uma chave e envie com POST /v1/messages. A Chasque cuida da conexão, das novas tentativas, dos logs e dos erros. Você cuida da regra de negócio.

Estamos em beta fechado: a entrada é por convite. Pedir convite →

  • Cloud API oficial, sem App Review próprio
  • Número novo ou o do app, com Coexistence
  • Webhooks assinados, com novas tentativas por 7 dias
  • Campanhas com opt-in declarado
  • Docs em português, preço em reais
POST /v1/messages
curl -X POST https://SEU-DOMINIO/v1/messages \
  -H "Authorization: Bearer chq_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "from": "pn_01J…",
    "to": "+5511900000000",
    "type": "template",
    "template": {
      "name": "pedido_enviado",
      "language": "pt_BR",
      "variables": ["Ana", "#1234"]
    }
  }'
201 Created "id": "msg_01J…", "status": "accepted"
  1. Na fila
  2. Enviado
  3. Entregue
  4. Lido

Cada mudança chega no seu webhook, assinada, ou em GET /v1/messages/{id}.

Para quem

Os recados que o seu sistema já precisa mandar

Para quem desenvolve ou mantém um sistema que fala com cliente: loja, agenda, cobrança, login. Cada caso usa um recurso da API que já existe hoje.

Pedidos e entregas

"Pedido confirmado", "saiu para entrega" e a nota fiscal em PDF, por URL. Quando o cliente responde "chegou?", a mensagem cai no seu webhook.

template pedido_enviado → message.received

Agendamentos e lembretes

Lembrete de consulta ou serviço com botões de resposta rápida. "Confirmar" e "Remarcar" voltam como mensagem no webhook, prontos para a sua regra.

quick_reply "Confirmar" → message.received

Códigos de verificação

Template de autenticação com botão de copiar o código e validade definida por você. O texto é o padrão da Meta, aprovado mais rápido.

template codigo_verificacao · "482913"

Cobrança e documentos

"Sua fatura de outubro está disponível", com o boleto anexado por URL pública e nome de arquivo. Sem upload prévio na Meta.

type: "document" · boleto-outubro.pdf

Precisa falar com muita gente de uma vez? Campanhas disparam um template aprovado para uma lista com opt-in, no ritmo do número.

Meta × Chasque

A Meta entrega o WhatsApp. A Chasque entrega a integração.

Você pode integrar direto na Cloud API da Meta. A Chasque existe para tirar do seu time a infraestrutura e a operação que vêm junto, usando a mesma API oficial.

Direto na Metafica com o seu time

  • App na Meta, Business Verification, tokens e permissões
  • Graph API e as mudanças de versão
  • Recepção e validação dos webhooks
  • Novas tentativas quando o seu endpoint cai, sem histórico
  • Códigos de erro numéricos: 131047 e o fórum para descobrir que a janela de 24 h fechou
  • Templates e o que a Meta recusa
  • Logs, métricas e painel para a operação

Com a Chasquejá vem pronto

  • Conexão do número pela janela da Meta; o app e a verificação são da Chasque
  • Uma API REST enxuta, com uma chave e Idempotency-Key
  • Webhooks assinados, novas tentativas por 7 dias, histórico de cada entrega e reenvio manual
  • Erros traduzidos: window_closed e a frase "envie um template"
  • Templates pela API ou no painel, com prévia e checklist do que a Meta recusa
  • Painel com logs, métricas, cota do mês e qualidade do número
  • Documentação e atendimento em português

Você integra. A Chasque cuida da camada operacional.

Como funciona

Do zero à primeira mensagem entregue em quatro passos

Os mesmos passos do tutorial do painel, que acompanha a sua primeira mensagem ao vivo até "Lido".

  1. Conecte um número

    Número pela janela da Meta, novo ou o que já está no app, com Coexistence. Cada número conta no limite do plano.

    pn_01J… · ativo
  2. Crie uma chave de API

    No painel, em um clique. A chave aparece uma vez e fica guardada só como hash. Revogue quando quiser.

    chq_live_••••3f9a
  3. Envie com uma chamada

    Texto, template e mídia por URL. raw repassa o objeto da Meta e o wamid volta na hora.

    POST /v1/messages → 201
  4. Receba tudo no webhook

    Status, respostas dos clientes e mídia chegam assinados no seu endpoint. Ou consulte por GET /v1/messages/{id}.

    message.delivered
  1. seu sistema
  2. chasque
  3. WhatsApp
  4. webhook de volta

A Meta conecta você ao WhatsApp. A Chasque conecta o WhatsApp ao seu software.

O produto

Veja funcionando antes de criar a conta

Requisição, resposta, evento de webhook, erros e painel, como aparecem na integração.

Uma chamada, um id, a cota na resposta

Payload enxuto: from, to e o conteúdo. O header Idempotency-Key garante que um retry não envia duas vezes, e a resposta diz quantos envios restam no mês.

  • Aceita telefone (E.164) ou o user_id de quem ocultou o número
  • Imagem, documento, áudio e vídeo por URL pública, sem upload prévio
  • type: "raw" repassa qualquer objeto da Meta (interativo, localização, reação)
jsonrequisição
{
  "from": "pn_01J…",
  "to": "+5511900000000",
  "type": "text",
  "text": { "body": "Pedido #1234 saiu para entrega." }
}
201 createdresposta
Chasque-Quota-Remaining: 9871

{
  "id": "msg_01J…",
  "wamid": "wamid.HBg…",
  "status": "accepted"
}

Cada status chega assinado no seu webhook

Um evento por mudança: na fila, enviado, entregue, lido, falhou. Mensagens recebidas, mídia e respostas também. Tudo com Chasque-Signature (HMAC-SHA256 com carimbo de tempo) e Chasque-Event-Id para deduplicar.

Se o seu servidor não responder 2xx, tentamos de novo em

  1. 30 s
  2. 2 min
  3. 10 min
  4. 1 h
  5. 6 h
  6. 12 h
  7. 24 h

…e a cada 24 h, por 7 dias. Cada entrega fica no painel, com reenvio manual.

Eventos

  • message.received
  • message.sent
  • message.delivered
  • message.read
  • message.failed
  • template.status_updated
  • phone_number.quality_updated
  • campaign.completed
  • account.quota_warning
POST seu-webhookmessage.delivered
Chasque-Signature: t=1758900004,v1=9f2c…
Chasque-Event-Id: evt_01J…

{
  "id": "evt_01J…",
  "type": "message.delivered",
  "created_at": "2026-09-26T15:00:04Z",
  "data": {
    "phone_number_id": "pn_01J…",
    "message": {
      "id": "msg_01J…",
      "status": "delivered"
    },
    "raw": { … }
  }
}

Erros que dizem o que fazer

A Meta responde com números. A Chasque devolve um código legível, o status HTTP certo e a frase de ação, no retorno da API e no log do painel. O que não tem tradução chega como meta_error, com o código e a mensagem originais.

MetaChasqueO que fazer
131047window_closed 422Passaram 24 h desde a última mensagem do usuário. Envie um template.
131026recipient_unreachable 422O destinatário não pode receber: sem WhatsApp, versão antiga ou bloqueou.
131042meta_payment_required 402Cadastre um cartão na sua conta WhatsApp Business.
132000template_params_mismatch 422O número de variáveis não bate com o template.
130429throughput_exceeded 429Limite por segundo do número (a Meta aceita até 80, ou 20 no Coexistence). Tente de novo em instantes.

Painel com logs, templates, campanhas e uso do mês

Cada mensagem com status e erro traduzido, entregas do webhook com payload e resposta, editor de templates com prévia e checklist do que a Meta recusa, campanhas com o andamento, e a cota do mês com aviso aos 80%. Tema claro e escuro.

Painel · dados de exemplo
Campanhas

Um template para uma lista inteira, sem derrubar a qualidade do número

Para avisos em lote: recall de produto, mudança de horário, novidade para quem pediu para receber. O painel monta o disparo em três passos e a API faz o resto no ritmo que a Meta tolera.

  1. Mensagem

    Escolha o número e um template aprovado pela Meta. Variáveis fixas aqui; as que mudam por pessoa vêm da lista.

  2. Audiência

    CSV, Excel ou ODS, uma pessoa por linha, com telefone e as variáveis dela. Você declara que a lista tem opt-in; sem isso o disparo não existe.

  3. Revisão

    Quantos envios, qual template, agora ou em um horário marcado. Nada sai antes de confirmar.

PlanoCampanhas por vezDestinatários por campanha
Free11.000
Starter12.000
Pro320.000
Business5100.000
  • Ritmo por número (menor no Coexistence), dentro da cota do mês
  • Cada envio aparece em Mensagens, com o status de sempre
  • campaign.started, campaign.paused e campaign.completed no webhook

Só com template aprovado e destinatários que aceitaram receber. É regra da Meta e da nossa política de uso aceitável; disparo em massa fora disso é proibido.

Por que a Chasque

Três promessas, todas no código

Nada aqui é roadmap. Cada item está no produto e na documentação.

01Uma chamada e pronto

POST /v1/messages e a mensagem sai.

  • API enxutaPayloads simples, Idempotency-Key e type: "raw" para qualquer formato da Meta.
  • Exemplos em sete linguagenscURL, PowerShell, Node.js, Python, PHP, Java e C#, gerados de uma única especificação, no painel e nos docs.
  • Templates pela API ou no painelEditor com prévia e checklist do que a Meta recusa, antes da análise.

02Você sabe onde está cada recado

Status por webhook assinado e por GET /v1/messages/{id}.

  • Status normalizadoNa fila, enviado, entregue, lido ou falhou, com o erro traduzido e o que fazer.
  • Webhooks com histórico e reenvioNovas tentativas por 7 dias se o seu servidor cair, cada entrega no painel, reenvio com um clique.
  • Cota e qualidade à vistaAviso aos 80% da cota, account.quota_warning no webhook e pausa automática quando a Meta rebaixa o número.

03Feita aqui

Para quem integra no Brasil.

  • Docs e atendimento em portuguêsReferência da API, erros e regras da Meta explicadas, e uma equipe que responde pelo formulário de contato.
  • Preço em reais, Free permanenteAssinatura no Stripe, sem cartão para começar e sem trial que expira antes de a Meta aprovar o seu template.
  • LGPD e páginas legais publicadasRetenção definida por plano, exclusão de dados a pedido, termos, privacidade e uso aceitável no ar.
Comparação

Três maneiras de integrar o WhatsApp

Os caminhos para colocar o WhatsApp no seu sistema, comparados por categoria.

Critério WhatsApp não oficialautomação do WhatsApp Web Cloud API diretaapp próprio na Meta Chasqueoficial via Tech Provider
WhatsApp oficialNão, número sujeito a bloqueio sem avisoSimSim, pela Cloud API
Para começarLer um QR codeApp na Meta, Business Verification e App ReviewConta com GitHub e a janela da Meta
APIVariaGraph APIAPI REST simplificada, com idempotência
TemplatesNãoSimSim, com análise da Meta
Status de entregaLimitadoSimSim, normalizado
WebhooksVariaReenvio por até 7 dias, sem histórico nem reenvio manualNovas tentativas por 7 dias, histórico de cada entrega e reenvio manual
ErrosVariaCódigos numéricosTraduzidos, com o que fazer
CampanhasVaria, sem opt-inVocê constrói o disparo e o ritmoIncluídas, com opt-in declarado e ritmo por número
Painel operacionalVariaVocê constróiIncluído
DocumentaçãoVariaDocumentação da MetaDocs em português
CoexistenceNão se aplicaSó como Tech Provider, com Embedded SignupSim
Preço da plataformaPor instânciaR$ 0 (o custo é a engenharia)R$ 0 a R$ 399 por mês, com excedente por mil
Tarifa da MetaNão se aplicaPaga direto à MetaDireto à Meta, sem markup

A mesma Cloud API, com menos código e menos operação.

As tarifas por mensagem são definidas e cobradas pela Meta. Ver a tabela oficial →

Preços

A Chasque cobra pela infraestrutura. A Meta cobra as mensagens.

A mensalidade inclui uma cota de envios pela API. Nos planos pagos, você escolhe: limitar a cobrança à mensalidade ou autorizar o excedente por mil, com um limite de gasto que você define. Mensagens recebidas nunca são bloqueadas.

Free

Para testar a API e desenvolver a integração.

R$ 0 /mês
  • 1.000 mensagens/mês incluídas
  • Para na cota, sem excedente
  • 1 número
  • 1 campanha por vez, até 1.000 destinatários
  • Logs por 3 dias
  • Não expira
Começar no Free

Pro

Para mais volume ou vários números.

R$ 179 /mês
  • 50.000 mensagens/mês incluídas
  • Excedente R$ 6 por 1.000, com limite de gasto
  • 5 números
  • 3 campanhas por vez, até 20.000 destinatários
  • Logs por 30 dias
Assinar Pro

Business

Para sistemas que dependem do WhatsApp em escala.

R$ 399 /mês
  • 200.000 mensagens/mês incluídas
  • Excedente R$ 4 por 1.000, com limite de gasto
  • 15 números
  • 5 campanhas por vez, até 100.000 destinatários
  • Logs por 90 dias
Falar com a equipe

Excedente: você decide se os envios continuam depois da cota

Por padrão a cobrança fica limitada à mensalidade: ao fim das mensagens incluídas, os envios pausam até o dia 1. Se preferir, ative a cobrança por uso no painel: o que passar da cota é cobrado por mil na fatura seguinte, até um limite de gasto mensal que você define (o padrão é uma mensalidade). Mensagens recebidas continuam sempre.

PlanoIncluído por mêsExcedente
Free1.000não disponível
Starter10.000R$ 8 / 1.000
Pro50.000R$ 6 / 1.000
Business200.000R$ 4 / 1.000

As tarifas do WhatsApp (Meta) não estão incluídas

Você paga à Chasque a mensalidade pela infraestrutura e pelo acesso à API. As tarifas por mensagem da Meta são cobradas por ela, no cartão cadastrado na sua conta WhatsApp Business, sem markup nosso. Elas variam por categoria e, a partir de 1º de outubro de 2026, mensagens de serviço também passam a ser cobradas no Brasil. O plano Free é gratuito na Chasque, não no WhatsApp.

Segurança e conformidade

O que protege a sua conta e os seus dados

Sem promessas genéricas: o que está implementado.

  • Token cifradoO token da Meta fica em AES-GCM, com a chave mestra fora do banco.
  • Chaves de API só como hashExibidas uma vez, revogáveis a qualquer momento, com o último uso no painel.
  • Webhooks assinadosHMAC-SHA256 com carimbo de tempo, para você validar cada entrega.
  • Retenção definidaLogs de mensagens apagados após 3, 14, 30 ou 90 dias, conforme o plano.
  • LGPD e páginas legaisPrivacidade, termos, uso aceitável e exclusão de dados publicados.
  • Login com GitHub, sem senhaSem acesso aos seus repositórios. Todo o tráfego em HTTPS.
Perguntas frequentes

O que perguntam antes de criar a conta

As respostas curtas. A lista completa cobre preços, cobrança, janela de 24 h, templates, webhooks e dados.

Ver todas as perguntas →

O que é a Chasque?

A camada de infraestrutura que liga o WhatsApp ao seu software pela Cloud API da Meta. Você conecta o número, gera uma chave e envia com POST /v1/messages. Cada mudança de status (na fila, enviado, entregue, lido, falhou) chega no seu webhook, assinada.

A Chasque usa a API oficial do WhatsApp?

Sim. As mensagens passam pela Cloud API da Meta e a Chasque atua como provedora de tecnologia (Tech Provider). A Chasque não é afiliada ao WhatsApp ou à Meta.

Por que não integrar direto na Meta?

Pode, e a Chasque usa a mesma Cloud API oficial. A diferença é o que fica com o seu time: direto na Meta, você mantém o app e os tokens, recebe e valida os webhooks, trata novas tentativas e códigos de erro e monta logs e painel. Na Chasque, essa camada já está pronta: você integra uma API REST com uma chave e acompanha tudo pelo painel. As tarifas por mensagem continuam sendo cobradas pela Meta, sem markup.

Preciso criar um app na Meta ou passar por App Review?

Não. Você conecta o número pelo Embedded Signup do app da Chasque, numa janela da própria Meta. A verificação do app e as permissões ficam com a Chasque.

Posso usar o número que já uso no app WhatsApp Business?

Sim, com o Coexistence: a empresa continua atendendo pelo app e a sua integração usa a API. Ao conectar, isto muda no app:

  • Aparelhos conectados (WhatsApp Web, desktop) são desvinculados.
  • Mensagens temporárias, visualização única e localização em tempo real ficam desativadas nas conversas 1:1.
  • Listas de transmissão ficam somente leitura.
  • O app precisa ser aberto no celular pelo menos a cada 14 dias, senão a Meta desconecta o número.
  • Grupos, ligações e catálogo continuam só no app.
A Meta cobra à parte?

Sim. A Meta cobra por mensagem enviada pela Cloud API, direto no cartão cadastrado na sua conta WhatsApp Business. Essa tarifa não está no preço da Chasque e é repassada sem markup: ela varia por categoria e, a partir de 1º de outubro de 2026, mensagens de serviço também passam a ser cobradas no Brasil. O plano Free é gratuito na Chasque, não no WhatsApp. Mensagens enviadas pelo app, no Coexistence, continuam sem custo.

Como crio a conta?

Com a sua conta do GitHub. Não pedimos senha nem acesso aos seus repositórios. Durante o beta a entrada é por convite: peça pelo formulário de contato.

Como os dados são protegidos?

O token da Meta fica cifrado (AES-GCM), as chaves de API são guardadas só como hash e todo o tráfego usa HTTPS. Os logs de mensagens são apagados depois de 3, 14, 30 ou 90 dias, conforme o plano. Detalhes na Política de privacidade.

Comece hoje

Conecte o número oficial e veja a primeira mensagem chegar a "Lido".

Crie a conta com o GitHub, conecte o número pela janela da Meta e acompanhe o status ao vivo no tutorial do painel. Plano Free permanente, sem cartão.

Estamos em beta fechado: a entrada é por convite. Pedir convite →