{"id":"29bd7281-6691-4755-8feb-a996e71698c7","shortId":"AjwBRQ","kind":"skill","title":"whatsapp-cloud-api","tagline":"Integracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python.","description":"# WhatsApp Cloud API - Integracao Profissional\n\n## Overview\n\nIntegracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python.\n\n## When to Use This Skill\n\n- When the user mentions \"whatsapp\" or related topics\n- When the user mentions \"whatsapp business\" or related topics\n- When the user mentions \"api whatsapp\" or related topics\n- When the user mentions \"chatbot whatsapp\" or related topics\n- When the user mentions \"mensagem whatsapp\" or related topics\n- When the user mentions \"template whatsapp\" or related topics\n\n## Do Not Use This Skill When\n\n- The task is unrelated to whatsapp cloud api\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\nSkill para implementar integracoes profissionais com WhatsApp Business usando a Cloud API oficial da Meta. Suporta Node.js/TypeScript e Python.\n\n## Overview\n\nA WhatsApp Cloud API e a API oficial da Meta para envio e recebimento de mensagens via WhatsApp Business. Desde outubro 2025, e a unica opcao suportada (a API On-Premises foi descontinuada).\n\n**Versao da API:** Graph API v21.0 (2026)\n**Base URL:** `https://graph.facebook.com/v21.0/{phone-number-id}/messages`\n**Autenticacao:** Bearer Token (System User Token para producao)\n\n**Pricing 2026 (por mensagem):**\n\n| Categoria      | Custo             | Quando cobrado                          |\n|----------------|-------------------|-----------------------------------------|\n| Marketing      | $0.025-$0.1365    | Campanhas, promocoes                    |\n| Utility        | $0.004-$0.0456    | Confirmacoes de pedido, atualizacoes    |\n| Authentication | $0.004-$0.0456    | OTP, reset de senha                     |\n| Service        | GRATIS            | Resposta dentro da janela de 24h        |\n\n**Pre-requisitos:**\n- Conta Meta Business Suite (gratuita)\n- App no Meta for Developers com produto WhatsApp\n- Numero de telefone verificado\n- System User Token (permanente)\n\nSe o usuario nao tem conta Meta Business, leia `references/setup-guide.md` para o guia completo de setup do zero.\n\n---\n\n## Decision Tree\n\nUse esta arvore para determinar o proximo passo:\n\n```\nO usuario precisa de setup inicial?\n├── SIM → Leia references/setup-guide.md\n└── NAO → Qual linguagem?\n    ├── Node.js/TypeScript\n    └── Python\n    → O que quer fazer?\n       ├── Enviar mensagens → Secao \"Tipos de Mensagem\" abaixo\n       ├── Receber mensagens → Secao \"Webhooks\" abaixo\n       ├── Automatizar atendimento → Secao \"Automacao\" abaixo\n       ├── WhatsApp Flows / Commerce → Secao \"Features Avancados\" abaixo\n       ├── Gerenciar templates → references/template-management.md\n       └── Compliance / limites → Secao \"Compliance & Quality\" abaixo\n```\n\nPara iniciar um projeto do zero com boilerplate pronto, use o script:\n```bash\npython scripts/setup_project.py --language nodejs --path ./meu-projeto\n\n## Ou\n\npython scripts/setup_project.py --language python --path ./meu-projeto\n```\n\n---\n\n## 1. Configurar Variaveis De Ambiente\n\n```env\nWHATSAPP_TOKEN=seu_access_token_aqui\nPHONE_NUMBER_ID=seu_phone_number_id\nWABA_ID=seu_whatsapp_business_account_id\nAPP_SECRET=seu_app_secret\nVERIFY_TOKEN=token_customizado_para_webhook\n```\n\n## 2. Enviar Mensagem De Texto Simples\n\n**Node.js/TypeScript:**\n```typescript\nimport axios from 'axios';\n\nconst GRAPH_API = 'https://graph.facebook.com/v21.0';\n\nasync function sendText(to: string, message: string) {\n  const response = await axios.post(\n    `${GRAPH_API}/${process.env.PHONE_NUMBER_ID}/messages`,\n    {\n      messaging_product: 'whatsapp',\n      to,\n      type: 'text',\n      text: { body: message }\n    },\n    { headers: { Authorization: `Bearer ${process.env.WHATSAPP_TOKEN}` } }\n  );\n  return response.data; // { messaging_product, contacts, messages: [{ id }] }\n}\n```\n\n**Python:**\n```python\nimport httpx\nimport os\n\nGRAPH_API = \"https://graph.facebook.com/v21.0\"\n\nasync def send_text(to: str, message: str) -> dict:\n    async with httpx.AsyncClient() as client:\n        response = await client.post(\n            f\"{GRAPH_API}/{os.environ['PHONE_NUMBER_ID']}/messages\",\n            json={\n                \"messaging_product\": \"whatsapp\",\n                \"to\": to,\n                \"type\": \"text\",\n                \"text\": {\"body\": message}\n            },\n            headers={\"Authorization\": f\"Bearer {os.environ['WHATSAPP_TOKEN']}\"}\n        )\n        return response.json()  # {\"messaging_product\", \"contacts\", \"messages\": [{\"id\"}]}\n```\n\n## 3. Enviar Template Message (Fora Da Janela De 24H)\n\nTemplates sao a unica forma de iniciar conversa com um cliente. Devem ser aprovados pela WhatsApp antes do uso.\n\n```json\n{\n  \"messaging_product\": \"whatsapp\",\n  \"to\": \"5511999999999\",\n  \"type\": \"template\",\n  \"template\": {\n    \"name\": \"hello_world\",\n    \"language\": { \"code\": \"pt_BR\" },\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          { \"type\": \"text\", \"text\": \"João\" }\n        ]\n      }\n    ]\n  }\n}\n```\n\n## 4. Verificar Entrega\n\nUse o script de teste para validar:\n```bash\npython scripts/send_test_message.py --to 5511999999999 --message \"Teste de integracao\"\n```\n\n---\n\n## Tipos De Mensagem\n\n| Tipo               | Uso                                   | Limite           |\n|--------------------|---------------------------------------|------------------|\n| Text               | Mensagens simples de texto            | 4096 chars       |\n| Template           | Iniciar conversa / fora da janela 24h | 1600 chars body  |\n| Image              | Fotos e imagens                       | 5MB              |\n| Document           | PDFs, planilhas, docs                 | 100MB            |\n| Video              | Videos                                | 16MB             |\n| Audio              | Mensagens de voz                      | 16MB             |\n| Interactive Button | Botoes de resposta rapida             | Max 3 botoes     |\n| Interactive List   | Menu com opcoes em secoes             | Max 10 opcoes    |\n| Location           | Compartilhar localizacao              | lat/long         |\n| Contact            | Compartilhar contato                  | vCard format     |\n| Reaction           | Reagir com emoji a mensagem           | 1 emoji          |\n\n**Exemplo - Botoes interativos (Node.js):**\n```typescript\nasync function sendButtons(to: string, body: string, buttons: Array<{id: string, title: string}>) {\n  return axios.post(`${GRAPH_API}/${process.env.PHONE_NUMBER_ID}/messages`, {\n    messaging_product: 'whatsapp',\n    to,\n    type: 'interactive',\n    interactive: {\n      type: 'button',\n      body: { text: body },\n      action: {\n        buttons: buttons.map(b => ({\n          type: 'reply',\n          reply: { id: b.id, title: b.title }\n        }))\n      }\n    }\n  }, { headers: { Authorization: `Bearer ${process.env.WHATSAPP_TOKEN}` } });\n}\n\n// Uso:\nawait sendButtons('5511999999999', 'Como posso ajudar?', [\n  { id: 'suporte', title: 'Suporte' },\n  { id: 'vendas', title: 'Vendas' },\n  { id: 'info', title: 'Informacoes' }\n]);\n```\n\n**Para exemplos completos de todos os tipos em Node.js e Python**, leia `references/message-types.md`.\n\n---\n\n## Webhooks\n\nWebhooks permitem receber mensagens e atualizacoes de status em tempo real.\n\n## Verificacao (Get) - Obrigatorio\n\nQuando voce configura o webhook no Meta Developers, a Meta envia um GET para verificar:\n\n```typescript\n// Node.js (Express)\napp.get('/webhook', (req, res) => {\n  const mode = req.query['hub.mode'];\n  const token = req.query['hub.verify_token'];\n  const challenge = req.query['hub.challenge'];\n\n  if (mode === 'subscribe' && token === process.env.VERIFY_TOKEN) {\n    res.status(200).send(challenge);\n  } else {\n    res.sendStatus(403);\n  }\n});\n```\n\n## Recebimento (Post) - Com Seguranca Hmac-Sha256\n\nToda notificacao de webhook vem assinada no header `X-Hub-Signature-256`. Valide SEMPRE antes de processar:\n\n```typescript\nimport crypto from 'crypto';\n\nfunction validateSignature(rawBody: Buffer, signature: string): boolean {\n  const expectedSig = crypto\n    .createHmac('sha256', process.env.APP_SECRET!)\n    .update(rawBody)\n    .digest('hex');\n  return crypto.timingSafeEqual(\n    Buffer.from(`sha256=${expectedSig}`),\n    Buffer.from(signature)\n  );\n}\n```\n\n**Importante:** Usar `crypto.timingSafeEqual` (Node.js) ou `hmac.compare_digest` (Python) para prevenir timing attacks. Nunca use comparacao simples de strings.\n\n## Eventos Recebidos\n\n- **messages** - Mensagem do cliente (texto, midia, botao, localizacao)\n- **statuses** - Atualizado de status (sent → delivered → read)\n- **errors** - Erros de entrega\n\n**Requisitos:**\n- Endpoint HTTPS com certificado SSL valido\n- Responder com HTTP 200 em ate 5 segundos\n- Dev: use ngrok para teste local\n\n**Para setup completo com exemplos Node.js e Python**, leia `references/webhook-setup.md`.\n\n---\n\n## Menu Principal Interativo\n\nUse botoes ou listas para criar um menu de opcoes na primeira interacao:\n\n```python\n\n## Python - Menu Com Lista Interativa\n\nasync def send_main_menu(to: str):\n    await send_interactive_list(\n        to=to,\n        header=\"Bem-vindo!\",\n        body=\"Selecione o que precisa:\",\n        button_text=\"Ver opcoes\",\n        sections=[{\n            \"title\": \"Atendimento\",\n            \"rows\": [\n                {\"id\": \"suporte\", \"title\": \"Suporte Tecnico\", \"description\": \"Ajuda com problemas\"},\n                {\"id\": \"vendas\", \"title\": \"Vendas\", \"description\": \"Conhecer nossos produtos\"},\n                {\"id\": \"financeiro\", \"title\": \"Financeiro\", \"description\": \"Boletos e pagamentos\"},\n            ]\n        }]\n    )\n```\n\n## State Machine Para Fluxos\n\nGerencie conversas com uma maquina de estados. Cada cliente tem um estado atual que determina como a proxima mensagem sera processada:\n\n```\nINICIO → MENU_PRINCIPAL → SUPORTE → AGUARDANDO_DETALHES → ESCALACAO_HUMANO\n                        → VENDAS → CATALOGO → CHECKOUT\n                        → FINANCEIRO → SEGUNDA_VIA_BOLETO\n```\n\n## Janela De 24 Horas\n\n- **Dentro da janela (24h apos ultima mensagem do cliente):** Pode enviar qualquer tipo de mensagem gratuitamente\n- **Fora da janela:** Apenas template messages (cobradas por categoria)\n\n## Integracao Com Ia (Claude Api)\n\nCombine WhatsApp com Claude para respostas inteligentes:\n1. Receba mensagem via webhook\n2. Envie para Claude API com contexto da conversa\n3. Retorne resposta via WhatsApp\n4. Mantenha escalacao para humano disponivel\n\n**Para padroes completos de automacao**, leia `references/automation-patterns.md`.\n\n---\n\n## Whatsapp Flows\n\nFormularios interativos multi-tela dentro do WhatsApp. O cliente preenche campos sem sair do app. Definidos em JSON com screens, components e actions.\n\nUse cases: cadastros, agendamentos, pesquisas NPS, selecao de produtos.\n\n## Commerce & Catalogo\n\nAte 500 produtos no catalogo WhatsApp. Envie mensagens de produto individual ou multi-produto com checkout in-app.\n\n## Template Management Api\n\nCrie, liste e delete templates programaticamente. Ate 6000 traducoes por conta. Aprovacao em minutos.\n\n## Whatsapp Channels\n\nBroadcasting unidirecional para subscribers ilimitados. Localizado na aba \"Atualizacoes\" do WhatsApp.\n\n## Click-To-Whatsapp Ads\n\nAnuncios no Facebook/Instagram com botao que abre conversa no WhatsApp. 99% de taxa de abertura.\n\n## Status Tracking\n\nRastreie entrega: pending → server → device → read. Receba via webhook de status updates.\n\n**Para detalhes completos de features avancados**, leia `references/advanced-features.md`.\n**Para gerenciamento de templates via API**, leia `references/template-management.md`.\n\n---\n\n## Checklist Essencial\n\n- [ ] Opt-in explicito obtido antes de enviar mensagens\n- [ ] Mecanismo de opt-out implementado (keyword \"SAIR\" ou \"STOP\")\n- [ ] Registro de consentimento com timestamp, metodo e proposito\n- [ ] Conteudo dentro das politicas do WhatsApp (sem spam, sem conteudo proibido)\n- [ ] LGPD/GDPR compliance (base legal definida, direitos do titular)\n- [ ] Frequencia de mensagens adequada (nao excessiva)\n- [ ] Templates aprovados antes do uso\n- [ ] Verificacao de negocio completa (para limites maiores)\n\n## Quality Rating\n\nO WhatsApp monitora a qualidade das suas mensagens e atribui um rating:\n\n| Rating    | Significado                        | Acao                              |\n|-----------|------------------------------------|-----------------------------------|\n| Verde     | Boa qualidade, poucos bloqueios    | Manter — elegivel para upgrade    |\n| Amarelo   | Qualidade media, atencao necessaria| Revisar conteudo e frequencia     |\n| Vermelho  | Qualidade baixa, risco de suspensao| Acao imediata: reduzir volume     |\n\n**Sinais positivos:** Alta taxa de resposta, engajamento, poucos bloqueios\n**Sinais negativos:** Bloqueios, reports de spam, baixo engajamento\n\n## Tier System (Limites De Mensagem)\n\nDesde outubro 2025, limites sao por **Business Portfolio** (nao por numero):\n\n| Tier         | Conversas/24h | Como alcancar                           |\n|--------------|---------------|------------------------------------------|\n| Inicial      | 250           | Conta nova / nao verificada              |\n| Tier 1       | 1,000         | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Tier 2       | 10,000        | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Tier 3       | 100,000       | Auto-upgrade: 50%+ do limite por 7 dias  |\n| Unlimited    | Ilimitado     | Auto-upgrade: 50%+ do limite por 7 dias  |\n\n**Mudancas 2026:** Tiers 2K e 10K serao removidos. Apos verificacao de negocio, limite imediato de 100K.\n\n**Para guia completo de compliance**, leia `references/compliance.md`.\n\n---\n\n## Troubleshooting\n\n| Problema                       | Causa Provavel                     | Solucao                                    |\n|--------------------------------|------------------------------------|--------------------------------------------|\n| 401 Unauthorized               | Token expirado ou invalido         | Gerar novo System User Token               |\n| 400 Bad Request                | Payload malformado                 | Verificar JSON contra exemplos             |\n| Template rejeitado             | Conteudo viola politicas           | Revisar e resubmeter com alteracoes        |\n| Webhook nao recebe             | URL invalida ou sem HTTPS          | Usar ngrok (dev) ou certificado SSL (prod) |\n| Rate limit exceeded            | Ultrapassou 80 msg/s              | Implementar queue com retry                |\n| Quality rating baixo           | Muitos bloqueios/reports           | Reduzir volume, melhorar conteudo          |\n| Mensagem nao entregue          | Numero invalido ou nao no WhatsApp | Validar numero antes de enviar             |\n| Numero nao verificado          | OTP nao completado                 | Repetir verificacao via SMS ou ligacao      |\n\nPara validar sua configuracao:\n```bash\npython scripts/validate_config.py\n```\n\n---\n\n## Referencias (Leia Conforme Necessidade)\n\n| Arquivo                        | Quando ler                                        |\n|--------------------------------|---------------------------------------------------|\n| `references/setup-guide.md`    | Setup inicial — criar conta Meta, configurar API  |\n| `references/message-types.md`  | Exemplos completos de todos os tipos de mensagem   |\n| `references/webhook-setup.md`  | Configurar webhooks com seguranca HMAC             |\n| `references/automation-patterns.md` | Chatbot, filas, state machine, integracao IA  |\n| `references/compliance.md`     | LGPD/GDPR, opt-in, quality rating, tier system    |\n| `references/api-reference.md`  | Endpoints, erros, rate limits, pricing 2026        |\n| `references/advanced-features.md` | Flows, Commerce, Channels, Ads, Status Tracking|\n| `references/template-management.md` | CRUD de templates via API                     |\n\n## Scripts\n\n| Script                         | O que faz                                         |\n|--------------------------------|---------------------------------------------------|\n| `scripts/setup_project.py`     | Cria projeto com boilerplate (Node.js ou Python)   |\n| `scripts/validate_config.py`   | Valida credenciais e conexao com a API             |\n| `scripts/send_test_message.py` | Envia mensagem teste para validar setup            |\n\n## Boilerplate\n\n| Diretorio                      | Conteudo                                          |\n|--------------------------------|---------------------------------------------------|\n| `assets/boilerplate/nodejs/`   | Projeto TypeScript/Express completo                |\n| `assets/boilerplate/python/`   | Projeto Python/Flask completo                      |\n| `assets/examples/`             | Exemplos de payloads JSON (templates, webhooks, flows) |\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Related Skills\n\n- `instagram` - Complementary skill for enhanced analysis\n- `social-orchestrator` - Complementary skill for enhanced analysis\n- `telegram` - Complementary skill for enhanced analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["whatsapp","cloud","api","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-whatsapp-cloud-api","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/whatsapp-cloud-api","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34404 github stars · SKILL.md body (17,678 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:51:58.592Z","embedding":null,"createdAt":"2026-04-18T21:47:31.326Z","updatedAt":"2026-04-22T00:51:58.592Z","lastSeenAt":"2026-04-22T00:51:58.592Z","tsv":"'/messages':217,465,522,721 '/meu-projeto':384,391 '/typescript':163,327 '/typescript:**':437 '/v21.0':497 '/v21.0'';':448 '/v21.0/':212 '/webhook':816 '0.004':240,247 '0.025':235 '0.0456':241,248 '0.1365':236 '000':1454,1467,1480 '1':392,694,1128,1452,1453 '10':677,1466 '100':1479 '100k':1516 '100mb':651 '10k':1506 '1600':639 '16mb':654,659 '2':429,1133,1465 '200':839,949 '2025':188,1432 '2026':207,227,1502,1678 '24':1089 '24h':260,556,638,1094 '250':1446 '256':864 '2k':1504 '3':548,667,1142,1478 '4':600,1147 '400':1540 '401':1529 '403':844 '4096':630 '5':952 '50':1458,1471,1484,1495 '500':1198 '5511999999999':581,614,753 '5mb':646 '6000':1227 '7':1462,1475,1488,1499 '80':1578 '99':1262 'aba':1243 'abaixo':339,344,349,356,365 'abertura':1266 'abr':1258 'acao':1379,1404 'access':401 'account':416 'accur':1791 'action':734,1185 'ad':1251,1683 'adequada':1348 'agendamento':1189 'aguardando':1076 'ajuda':1028 'ajudar':756 'alcancar':1444 'alta':1410 'alteraco':1558 'amarelo':1389 'ambient':396 'analysi':1766,1792,1800,1808,1814 'ant':573,867,1304,1353,1604 'anuncio':1252 'apena':1110 'api':4,10,27,36,77,122,156,170,173,195,203,205,445,461,494,517,717,1120,1137,1219,1294,1640,1691,1712 'apo':1095,1509 'app':269,418,421,1177,1216 'app.get':815 'appli':1754,1778 'aprovacao':1231 'aprovado':570,1352 'aqui':403 'arquivo':1630 'array':709 'arvor':307 'ask':1848 'assets/boilerplate/nodejs':1723 'assets/boilerplate/python':1727 'assets/examples':1731 'assinada':857 'assist':138 'async':449,498,507,701,992 'ate':951,1197,1226 'atencao':1392 'atendimento':20,46,346,1020 'atribui':1374 'attack':911 'atual':1063 'atualizaco':245,788,1244 'atualizado':929 'audio':655 'autenticacao':218 'authent':246 'author':476,535,746 'auto':1456,1469,1482,1493 'auto-upgrad':1455,1468,1481,1492 'automacao':18,44,348,1157 'automatizar':345 'avancado':355,1286 'await':458,513,751,999 'axio':440,442 'axios.post':459,715 'b':737 'b.id':742 'b.title':744 'bad':1541 'baixa':1400 'baixo':1423,1586 'base':208,1339 'bash':378,610,1623 'bearer':219,477,537,747 'bem':1007 'bem-vindo':1006 'best':1739 'bloqueio':1384,1416,1419 'bloqueios/reports':1588 'boa':1381 'bodi':473,532,594,641,706,731,733,1009 'boilerpl':21,47,373,1701,1720 'boleto':1044,1086 'boolean':881 'botao':926,1256 'boto':662,668,697,974 'boundari':1856 'br':591 'broadcast':1236 'buffer':878 'buffer.from':895,898 'busi':8,34,69,152,185,266,292,415,1436 'button':661,708,730,735,1014 'buttons.map':736 'cada':1058 'cadastro':1188 'campanha':237 'campo':1173 'case':1187 'catalogo':1081,1196,1201 'categoria':230,1115 'causa':1526 'certificado':943,1571 'challeng':829,841 'channel':1235,1682 'char':631,640 'chatbot':86,1657 'checklist':1297 'checkout':1082,1213 'clarif':1850 'claud':1119,1124,1136 'clear':1742,1823 'click':1248 'click-to-whatsapp':1247 'client':511,567,923,1059,1099,1171 'client.post':514 'cloud':3,9,26,35,121,155,169 'cobrada':1113 'cobrado':233 'code':589,1758 'com':6,32,150,274,372,565,672,690,847,942,947,963,989,1029,1053,1117,1123,1138,1181,1212,1255,1321,1557,1582,1653,1700,1710 'combin':1121,1759 'commerc':352,1195,1681 'common':1767 'como':754,1066,1443 'comparacao':914 'compartilhar':680,684 'complementari':1762,1796,1804,1810 'completa':1359 'completado':1612 'completo':298,771,962,1155,1283,1519,1643,1726,1730 'complianc':360,363,1338,1521 'compon':592,1183 'comprehens':1765 'conexao':1709 'configura':799 'configuracao':1622 'configurar':393,1639,1651 'confirmaco':242 'conform':1628 'conhec':1036 'consentimento':1320 'const':443,456,819,823,828,882 'conta':264,290,1230,1447,1637 'contact':484,545,683 'contato':685 'conteudo':1326,1335,1395,1551,1592,1722 'context':1744,1784,1789 'contexto':1139 'contra':1547 'conversa':564,634,1052,1141,1259 'conversas/24h':1442 'createhmac':885 'credenciai':1707 'cria':1698 'criar':978,1636 'crie':1220 'criteria':1859 'crud':1687 'crypto':872,874,884 'crypto.timingsafeequal':894,902 'custo':231 'customizado':426 'da':158,175,202,257,553,636,1092,1108,1140 'das':1328,1370 'de':19,45,181,243,251,259,278,299,316,337,395,432,555,562,606,617,620,628,657,663,772,789,854,868,916,930,937,981,1056,1088,1104,1156,1193,1205,1263,1265,1278,1284,1291,1305,1309,1319,1346,1357,1402,1412,1421,1428,1511,1515,1520,1605,1644,1648,1688,1733 'decis':303 'def':499,993 'definida':1341 'definido':1178 'delet':1223 'deliv':933 'dentro':256,1091,1167,1327 'descontinuada':200 'describ':1827 'descript':1027,1035,1043 'desd':186,1430 'detalh':1077,1282 'determina':1065 'determinar':309 'dev':954,1569 'develop':273,804 'devem':568 'devic':1273 'dia':1463,1476,1489,1500 'dict':506 'digest':891,906 'direito':1342 'diretorio':1721 'disponivel':1152 'doc':650 'document':647 'domain':140,1776 'e':23,49,164,171,179,189,644,778,787,966,1045,1184,1222,1324,1373,1396,1505,1555,1708 'elegivel':1386 'els':842 'em':674,776,791,950,1179,1232 'emoji':691,695 'endpoint':940,1673 'engajamento':1414,1424 'enhanc':1799,1807,1813 'enough':1787 'entrega':602,938,1270 'entregu':1595 'env':397 'envi':1134,1203 'envia':807,1714 'enviar':333,430,549,1101,1306,1606 'envio':178 'environ':1839 'environment-specif':1838 'erro':936,1674 'error':935 'escalacao':1078,1149 'essenci':1298 'esta':306 'estado':1057,1062 'evento':918 'exceed':1576 'excessiva':1350 'exemplo':696,770,964,1548,1642,1732 'expectedsig':883,897 'expert':1844 'expertis':141,1777 'expirado':1532 'explicito':1302 'express':814 'f':515,536 'facebook/instagram':1254 'faz':1696 'fazer':332 'featur':354,1285 'fila':1658 'financeiro':1040,1042,1083 'flow':351,1161,1680,1738 'fluxo':1050 'foi':199 'fora':552,635,1107 'forma':561 'format':687 'formulario':1162 'foto':643 'frequencia':1345,1397 'function':450,702,875 'general':136 'general-purpos':135 'gerar':1535 'gerenci':1051 'gerenciamento':1290 'gerenciar':357 'get':795,809 'graph':204,444,460,493,516,716 'graph.facebook.com':211,447,496 'graph.facebook.com/v21.0':495 'graph.facebook.com/v21.0'';':446 'graph.facebook.com/v21.0/':210 'grati':254 'gratuita':268 'gratuitament':1106 'guia':297,1518 'handl':129 'header':475,534,745,859,1005 'hello':586 'hex':892 'hmac':16,42,850,1655 'hmac-sha256':15,41,849 'hmac.compare':905 'hora':1090 'http':948 'https':941,1566 'httpx':490 'httpx.asyncclient':509 'hub':862 'hub.challenge':831 'hub.mode':822 'hub.verify':826 'humano':1079,1151 'ia':1118,1662 'id':216,406,410,412,417,464,486,521,547,710,720,741,757,761,765,1022,1031,1039 'ilimitado':1240,1491 'imag':642 'imagen':645 'imediata':1405 'imediato':1514 'implementado':1313 'implementar':147,1580 'import':439,489,491,871 'important':900 'in-app':1214 'individu':1207 'info':766 'informaco':768 'inici':318,1445,1635 'iniciar':367,563,633 'inicio':1072 'input':1853 'instagram':1795 'integracao':5,28,31,618,1116,1661 'integraco':148 'inteligent':1127 'interacao':985 'interact':660,669,727,728,1001 'interativa':991 'interativo':698,972,1163 'invalida':1563 'invalido':1534,1597 'janela':258,554,637,1087,1093,1109 'joão':599 'json':523,576,1180,1546,1735 'keyword':1314 'languag':381,388,588 'lat/long':682 'legal':1340 'leia':293,320,780,968,1158,1287,1295,1522,1627 'ler':1632 'lgpd/gdpr':1337,1664 'ligacao':1618 'limit':361,624,1361,1427,1433,1460,1473,1486,1497,1513,1575,1676,1815 'linguagem':324 'list':670,1002,1221 'lista':976,990 'local':959 'localizacao':681,927 'localizado':1241 'locat':679 'machin':1048,1660 'main':995 'maior':1362 'malformado':1544 'manag':1218 'mantenha':1148 'manter':1385 'maquina':1055 'market':234 'match':1824 'max':666,676 'mecanismo':1308 'media':1391 'melhorar':1591 'mensagem':95,229,338,431,621,693,921,1069,1097,1105,1130,1429,1593,1649,1715 'mensagen':12,38,182,334,341,626,656,786,1204,1307,1347,1372 'mention':59,67,76,85,94,103 'menu':671,970,980,988,996,1073 'messag':454,466,474,482,485,504,524,533,543,546,551,577,615,722,920,1112 'meta':11,37,159,176,265,271,291,803,806,1638 'metodo':1323 'midia':925 'minuto':1233 'miss':1861 'mode':820,833 'monitora':1367 'msg/s':1579 'mudanca':1501 'muito':1587 'multi':1165,1210 'multi-produto':1209 'multi-tela':1164 'na':983,1242 'name':585 'nao':288,322,1349,1438,1449,1560,1594,1599,1608,1611 'necessaria':1393 'necessidad':1629 'need':134 'negativo':1418 'negocio':1358,1512 'ngrok':956,1568 'node.js':22,48,162,326,436,699,777,813,903,965,1702 'node.js/typescript':161,325 'node.js/typescript:**':435 'nodej':382 'nosso':1037 'notificacao':853 'nova':1448 'novo':1536 'nps':1191 'number':215,405,409,463,520,719 'numero':277,1440,1596,1603,1607 'nunca':912 'o':286,296,310,313,329,376,604,800,1011,1170,1365,1694 'obrigatorio':796 'obtido':1303 'ofici':157,174 'on-premis':196 'opcao':192 'opco':673,678,982,1017 'opt':1300,1311,1666 'opt-in':1299,1665 'opt-out':1310 'orchestr':1803 'os':492,774,1646 'os.environ':518,538 'otp':249,1610 'ou':385,904,975,1208,1316,1533,1564,1570,1598,1617,1703 'output':1833 'outsid':1774 'outubro':187,1431 'overview':30,166 'padro':1154 'pagamento':1046 'para':146,177,224,295,308,366,427,608,769,810,908,957,960,977,1049,1125,1135,1150,1153,1238,1281,1289,1360,1387,1517,1619,1717 'paramet':595 'passo':312 'path':383,390 'payload':1543,1734 'pdfs':648 'pedido':244 'pela':571 'pend':1271 'permanent':284 'permiss':1854 'permitem':784 'pesquisa':1190 'phone':214,404,408,519 'phone-number-id':213 'pitfal':1768 'planilha':649 'pode':1100 'politica':1329,1553 'por':228,1114,1229,1435,1439,1461,1474,1487,1498 'portfolio':1437 'positivo':1409 'posso':755 'post':846 'pouco':1383,1415 'practic':1740 'pre':262 'pre-requisito':261 'precisa':315,1013 'preench':1172 'premis':198 'prevenir':909 'price':226,1677 'primeira':984 'princip':971,1074 'problema':1030,1525 'process.env.app':887 'process.env.phone':462,718 'process.env.verify':836 'process.env.whatsapp':478,748 'processada':1071 'processar':869 'prod':1573 'producao':225 'product':467,483,525,544,578,723,1757 'produto':275,1038,1194,1199,1206,1211 'profission':29 'profissionai':149 'programaticament':1225 'proibido':1336 'project':1747,1788 'projeto':369,1699,1724,1728 'promoco':238 'pronto':374 'proposito':1325 'provavel':1527 'provid':1741,1786 'proxima':1068 'proximo':311 'pt':590 'purpos':137 'python':24,50,165,328,379,386,389,487,488,611,779,907,967,986,987,1624,1704 'python/flask':1729 'qual':323 'qualidad':1369,1382,1390,1399 'qualiti':364,1363,1584,1668 'qualquer':1102 'quando':232,797,1631 'que':330,1012,1064,1257,1695 'quer':331 'queue':1581 'rapida':665 'rastrei':1269 'rate':1364,1376,1377,1574,1585,1669,1675 'rawbodi':877,890 'reaction':688 'read':934,1274 'reagir':689 'real':793 'receb':340,785,1561 'receba':1129,1275 'recebido':919 'recebimento':180,845 'recommend':1779 'reduzir':1406,1589 'references/advanced-features.md':1288,1679 'references/api-reference.md':1672 'references/automation-patterns.md':1159,1656 'references/compliance.md':1523,1663 'references/message-types.md':781,1641 'references/setup-guide.md':294,321,1633 'references/template-management.md':359,1296,1686 'references/webhook-setup.md':969,1650 'referencia':1626 'registro':1318 'rejeitado':1550 'relat':62,71,80,89,98,107,1793 'removido':1508 'repetir':1613 'repli':739,740 'report':1420 'req':817 'req.query':821,825,830 'request':131,1542 'requir':1749,1852 'requisito':263,939 'res':818 'res.sendstatus':843 'res.status':838 'reset':250 'respond':946 'respons':457,512 'response.data':481 'response.json':542 'resposta':255,664,1126,1144,1413 'resubmet':1556 'retorn':1143 'retri':1583 'return':480,541,714,893 'review':1750,1845 'revisar':1394,1554 'risco':1401 'row':1021 'safeti':1855 'sair':1175,1315 'sao':558,1434 'scope':1826 'screen':1182 'script':377,605,1692,1693 'scripts/send_test_message.py':612,1713 'scripts/setup_project.py':380,387,1697 'scripts/validate_config.py':1625,1705 'se':285 'secao':335,342,347,353,362 'seco':675 'secret':419,422,888 'section':1018 'segunda':1084 'segundo':953 'seguranca':848,1654 'selecao':1192 'selecion':1010 'sem':1174,1332,1334,1565 'sempr':866 'send':500,840,994,1000 'sendbutton':703,752 'sendtext':451 'senha':252 'sent':932 'ser':569 'sera':1070 'serao':1507 'server':1272 'servic':253 'setup':300,317,961,1634,1719 'seu':400,407,413,420 'sha256':17,43,851,886,896 'signatur':863,879,899 'significado':1378 'sim':319 'simpl':434,627,915 'simpler':124 'sinai':1408,1417 'skill':55,113,145,1763,1771,1794,1797,1805,1811,1818 'skill-whatsapp-cloud-api' 'sms':1616 'social':1802 'social-orchestr':1801 'solucao':1528 'source-sickn33' 'spam':1333,1422 'specif':126,1743,1783,1840 'ssl':944,1572 'state':1047,1659 'status':790,928,931,1267,1279,1684 'stop':1317,1846 'str':503,505,998 'string':453,455,705,707,711,713,880,917 'sua':1371,1621 'subscrib':834,1239 'substitut':1836 'success':1858 'suggest':1752 'suit':267 'suport':758,760,1023,1025,1075 'suporta':160 'suportada':193 'suspensao':1403 'system':221,281,1426,1537,1671 'task':116,1773,1822 'taxa':1264,1411 'tecnico':1026 'tela':1166 'telefon':279 'telegram':1809 'tem':289,1060 'templat':13,39,104,358,550,557,583,584,632,1111,1217,1224,1292,1351,1549,1689,1736 'tempo':792 'test':607,616,958,1716,1842 'text':471,472,501,530,531,597,598,625,732,1015 'texto':433,629,924 'tier':1425,1441,1451,1464,1477,1503,1670 'time':910 'timestamp':1322 'tipo':336,619,622,775,1103,1647 'titl':712,743,759,763,767,1019,1024,1033,1041 'titular':1344 'toda':852 'todo':773,1645 'token':220,223,283,399,402,424,425,479,540,749,824,827,835,837,1531,1539 'tool':127 'topic':63,72,81,90,99,108 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':1268,1685 'traduco':1228 'treat':1831 'tree':304 'troubleshoot':1524 'type':470,529,582,593,596,726,729,738 'typescript':438,700,812,870 'typescript/express':1725 'ultima':1096 'ultrapassou':1577 'um':368,566,808,979,1061,1375 'uma':1054 'unauthor':1530 'understand':1781 'unica':191,560 'unidirecion':1237 'unlimit':1490 'unrel':118 'updat':889,1280 'upgrad':1388,1457,1470,1483,1494 'url':209,1562 'usando':153 'usar':901,1567 'use':53,111,305,375,603,913,955,973,1186,1769,1816 'user':58,66,75,84,93,102,133,222,282,1538 'uso':575,623,750,1355 'usuario':287,314 'util':239 'v21.0':206 'valid':865,1841 'valida':1706 'validar':609,1602,1620,1718 'validatesignatur':876 'valido':945 'variavei':394 'vcard':686 'vem':856 'venda':762,764,1032,1034,1080 'ver':1016 'verd':1380 'verifi':423 'verificacao':794,1356,1510,1614 'verificada':1450 'verificado':280,1609 'verificar':601,811,1545 'vermelho':1398 'versao':201 'via':183,1085,1131,1145,1276,1293,1615,1690 'video':652,653 'vindo':1008 'viola':1552 'voce':798 'volum':1407,1590 'voz':658 'waba':411 'webhook':14,40,343,428,782,783,801,855,1132,1277,1559,1652,1737 'whatsapp':2,7,25,33,60,68,78,87,96,105,120,151,168,184,276,350,398,414,468,526,539,572,579,724,1122,1146,1160,1169,1202,1234,1246,1250,1261,1331,1366,1601 'whatsapp-cloud-api':1 'without':139,1780 'work':144 'world':587 'x':861 'x-hub-signatur':860 'zero':302,371","prices":[{"id":"9025d863-2b9e-46dc-96e0-d19bb9ee3c6c","listingId":"29bd7281-6691-4755-8feb-a996e71698c7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:47:31.326Z"}],"sources":[{"listingId":"29bd7281-6691-4755-8feb-a996e71698c7","source":"github","sourceId":"sickn33/antigravity-awesome-skills/whatsapp-cloud-api","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/whatsapp-cloud-api","isPrimary":false,"firstSeenAt":"2026-04-18T21:47:31.326Z","lastSeenAt":"2026-04-22T00:51:58.592Z"}],"details":{"listingId":"29bd7281-6691-4755-8feb-a996e71698c7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"whatsapp-cloud-api","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-21T16:43:40Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"568174e5228e65fa063188b2fef6f944316d928a","skill_md_path":"skills/whatsapp-cloud-api/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/whatsapp-cloud-api"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"whatsapp-cloud-api","description":"Integracao com WhatsApp Business Cloud API (Meta). Mensagens, templates, webhooks HMAC-SHA256, automacao de atendimento. Boilerplates Node.js e Python."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/whatsapp-cloud-api"},"updatedAt":"2026-04-22T00:51:58.592Z"}}