{
"error": {
"code": "invalid_request",
"message": "The request body is invalid.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1",
"details": [
{
"path": "to",
"message": "Required"
}
]
}
}
{
"error": {
"code": "invalid_api_key",
"message": "Missing or invalid API key. Send it as 'Authorization: Bearer sk_...'.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "lead_not_found",
"message": "No lead matches this recipient in your company. The API only messages existing leads.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "idempotency_conflict",
"message": "This Idempotency-Key was already used with a different request body, or the original request is still in progress.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "outside_24h_window",
"message": "Free-form messages require the lead to have messaged you within the last 24 hours. Send an approved template instead.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1",
"upstream_code": 131047
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit for this API key exceeded. Retry after the time in the Retry-After header.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
WhatsApp
Enviar Mensagem
Envia uma mensagem WhatsApp para um lead existente da sua empresa.
O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads).
O campo type define qual objeto de conteúdo acompanha o body: type: "text" exige o objeto text, type: "image" exige image, e assim por diante.
Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: "template" com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens.
Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida…). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks.
Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.
{
"error": {
"code": "invalid_request",
"message": "The request body is invalid.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1",
"details": [
{
"path": "to",
"message": "Required"
}
]
}
}
{
"error": {
"code": "invalid_api_key",
"message": "Missing or invalid API key. Send it as 'Authorization: Bearer sk_...'.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "lead_not_found",
"message": "No lead matches this recipient in your company. The API only messages existing leads.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "idempotency_conflict",
"message": "This Idempotency-Key was already used with a different request body, or the original request is still in progress.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "outside_24h_window",
"message": "Free-form messages require the lead to have messaged you within the last 24 hours. Send an approved template instead.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1",
"upstream_code": 131047
}
}
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit for this API key exceeded. Retry after the time in the Retry-After header.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
Chave de API da sua empresa (sk_...). Crie no painel Superlead em Integrações → API e envie em toda chamada como Authorization: Bearer sk_.... Veja Autenticação.
Chave única que torna o envio idempotente por 24h: retries com a mesma chave e o mesmo body retornam a resposta original sem reenviar a mensagem. A mesma chave com body diferente retorna 409 idempotency_conflict.
Destinatário: telefone E.164 (+5511999999999) ou BSUID (BR.13491208655302741918 — o fromUserId dos webhooks, para leads que chegaram por username do WhatsApp). Precisa ser um lead existente da sua empresa. Números brasileiros: a variação do nono dígito é resolvida automaticamente.
Conteúdo quando type: "template" — o único tipo entregue fora da janela de 24h. Nome e idioma precisam bater exatamente com o template aprovado na Meta (liste-os em GET /v1/whatsapp/templates).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Superlead","description":"API pública da Superlead para envio de mensagens WhatsApp e gestão de leads.","colors":{"primary":"#0E7A66","light":"#2BB597","dark":"#0E8F79"},"logo":{"light":"https://mintcdn.com/superlead/lAbwMrIKfewRNFRq/logo/light.svg?fit=max\u0026auto=format\u0026n=lAbwMrIKfewRNFRq\u0026q=85\u0026s=6ed7fc7c9bab87f5523f7d9ae92c7eff","dark":"https://mintcdn.com/superlead/lAbwMrIKfewRNFRq/logo/dark.svg?fit=max\u0026auto=format\u0026n=lAbwMrIKfewRNFRq\u0026q=85\u0026s=c9cd189b28820f7cde80f7e9c50249a4","href":"https://superlead.app"},"favicon":"https://mintcdn.com/superlead/lAbwMrIKfewRNFRq/favicon.png?fit=max\u0026auto=format\u0026n=lAbwMrIKfewRNFRq\u0026q=85\u0026s=e2d8fc30fdafb7a60c19af84ba48fdd3","api":{"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","languages":["bash","javascript","python"]}},"footer":{"socials":{"website":"https://superlead.app"}},"search":{"prompt":"Buscar na documentação..."},"fonts":{"heading":{"family":"Outfit"},"body":{"family":"Inter"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superlead","hasAudioNarration":false,"actualSubdomain":"superlead","customDomains":["docs.superlead.app"],"gitSource":{"type":"github","owner":"kaique-grigoletto","repo":"superlead-2","deployBranch":"feat/webhook-saida-svix","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"9a428529-d79f-46fa-944b-7a6b4be4b990","liveDeploymentHistoryId":"6ad7694f7895bb0f9a31de92","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad7694f7895bb0f9a31de92"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad7694f7895bb0f9a31de92","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Referência da API","count":14},{"language":"default","tag":"Documentação","count":10},{"language":"default","tag":"Conceitos","count":8},{"language":"default","tag":"Leads","count":5},{"language":"default","tag":"Templates","count":5},{"language":"default","tag":"Comece aqui","count":2},{"language":"default","tag":"WhatsApp","count":2},{"language":"default","tag":"Introdução","count":1},{"language":"default","tag":"Funil","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#ask-assistant-code-block-button,#assistant-entry,#assistant-entry-mobile,#chat-assistant-sheet,#chat-assistant-textarea,[data-component-part=search-ask-ai-button],[data-component-part=search-ask-ai-item],[role=group]:has([data-component-part=search-ask-ai-item]),button[aria-label=\"Toggle assistant panel\"],div:has(>#chat-assistant-sheet),div:has(>div>#chat-assistant-textarea){display:none!important}button[aria-label=\"Preview Widget\"]{display:none!important}[data-component-part=field-required-pill]{font-size:0!important}[data-component-part=field-required-pill]::after{content:\"obrigatório\";font-size:.75rem;line-height:1rem}img.nav-logo{height:2.25rem!important}"}],"page":{"pagePath":"api-reference/enviar-mensagem","slug":"/api-reference/enviar-mensagem","pageMetadata":{"title":"Enviar Mensagem","description":"Envia uma mensagem WhatsApp para um **lead existente** da sua empresa.\n\n- O destinatário `to` aceita telefone E.164 ou BSUID. O envio **nunca cria leads** — para contatos novos, crie antes com `POST /v1/leads` (veja o fluxo recomendado em [Leads](/guias/leads)).\n- O campo `type` define qual objeto de conteúdo acompanha o body: `type: \"text\"` exige o objeto `text`, `type: \"image\"` exige `image`, e assim por diante.\n- **Janela de 24h**: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas `type: \"template\"` com template aprovado — liste-os em `GET /v1/whatsapp/templates`. Detalhes em [Envio de mensagens](/guias/envio-de-mensagens).\n- Um `201` significa **aceita**, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por `GET /v1/whatsapp/messages/{id}` ou pelo webhook `whatsapp.message.updated` — veja [Webhooks](/guias/webhooks).\n- Recomendado: envie o header `Idempotency-Key` para poder repetir a requisição com segurança em timeouts — veja [Idempotência](/guias/idempotencia).","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/whatsapp/messages","href":"/api-reference/enviar-mensagem","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Envia uma mensagem WhatsApp para um \", _jsx(_components.strong, {\n children: \"lead existente\"\n }), \" da sua empresa.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"O destinatário \", _jsx(_components.code, {\n children: \"to\"\n }), \" aceita telefone E.164 ou BSUID. O envio \", _jsx(_components.strong, {\n children: \"nunca cria leads\"\n }), \" — para contatos novos, crie antes com \", _jsx(_components.code, {\n children: \"POST /v1/leads\"\n }), \" (veja o fluxo recomendado em \", _jsx(_components.a, {\n href: \"/guias/leads\",\n children: \"Leads\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"O campo \", _jsx(_components.code, {\n children: \"type\"\n }), \" define qual objeto de conteúdo acompanha o body: \", _jsx(_components.code, {\n children: \"type: \\\"text\\\"\"\n }), \" exige o objeto \", _jsx(_components.code, {\n children: \"text\"\n }), \", \", _jsx(_components.code, {\n children: \"type: \\\"image\\\"\"\n }), \" exige \", _jsx(_components.code, {\n children: \"image\"\n }), \", e assim por diante.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Janela de 24h\"\n }), \": mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas \", _jsx(_components.code, {\n children: \"type: \\\"template\\\"\"\n }), \" com template aprovado — liste-os em \", _jsx(_components.code, {\n children: \"GET /v1/whatsapp/templates\"\n }), \". Detalhes em \", _jsx(_components.a, {\n href: \"/guias/envio-de-mensagens\",\n children: \"Envio de mensagens\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Um \", _jsx(_components.code, {\n children: \"201\"\n }), \" significa \", _jsx(_components.strong, {\n children: \"aceita\"\n }), \", não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida…). Acompanhe por \", _jsx(_components.code, {\n children: \"GET /v1/whatsapp/messages/{id}\"\n }), \" ou pelo webhook \", _jsx(_components.code, {\n children: \"whatsapp.message.updated\"\n }), \" — veja \", _jsx(_components.a, {\n href: \"/guias/webhooks\",\n children: \"Webhooks\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Recomendado: envie o header \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" para poder repetir a requisição com segurança em timeouts — veja \", _jsx(_components.a, {\n href: \"/guias/idempotencia\",\n children: \"Idempotência\"\n }), \".\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Enviar Mensagem","description":"Envia uma mensagem WhatsApp para um **lead existente** da sua empresa.\n\n- O destinatário `to` aceita telefone E.164 ou BSUID. O envio **nunca cria leads** — para contatos novos, crie antes com `POST /v1/leads` (veja o fluxo recomendado em [Leads](/guias/leads)).\n- O campo `type` define qual objeto de conteúdo acompanha o body: `type: \"text\"` exige o objeto `text`, `type: \"image\"` exige `image`, e assim por diante.\n- **Janela de 24h**: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas `type: \"template\"` com template aprovado — liste-os em `GET /v1/whatsapp/templates`. Detalhes em [Envio de mensagens](/guias/envio-de-mensagens).\n- Um `201` significa **aceita**, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por `GET /v1/whatsapp/messages/{id}` ou pelo webhook `whatsapp.message.updated` — veja [Webhooks](/guias/webhooks).\n- Recomendado: envie o header `Idempotency-Key` para poder repetir a requisição com segurança em timeouts — veja [Idempotência](/guias/idempotencia).","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/whatsapp/messages","href":"/api-reference/enviar-mensagem","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/superlead/25b2f7a78b2d28d5/script.js"],"openApiReferenceData":{"operation":{"operationId":"sendWhatsAppMessage","summary":"Enviar Mensagem","description":"Envia uma mensagem WhatsApp para um **lead existente** da sua empresa.\n\n- O destinatário `to` aceita telefone E.164 ou BSUID. O envio **nunca cria leads** — para contatos novos, crie antes com `POST /v1/leads` (veja o fluxo recomendado em [Leads](/guias/leads)).\n- O campo `type` define qual objeto de conteúdo acompanha o body: `type: \"text\"` exige o objeto `text`, `type: \"image\"` exige `image`, e assim por diante.\n- **Janela de 24h**: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas `type: \"template\"` com template aprovado — liste-os em `GET /v1/whatsapp/templates`. Detalhes em [Envio de mensagens](/guias/envio-de-mensagens).\n- Um `201` significa **aceita**, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por `GET /v1/whatsapp/messages/{id}` ou pelo webhook `whatsapp.message.updated` — veja [Webhooks](/guias/webhooks).\n- Recomendado: envie o header `Idempotency-Key` para poder repetir a requisição com segurança em timeouts — veja [Idempotência](/guias/idempotencia).","security":["1efaa394-ab40-4311-9f21-ccc9fad9cfd8"],"parameters":["c180ac01-6f08-490b-ae75-67290c7730b1"],"requestBody":"72a66202-7a3f-4777-a876-2a86e04f963f","responses":{"201":"5ab796ae-5de7-46f7-a050-ce725674beb9","400":"7189cee9-5ab1-427d-a84a-6ac8596ee5d3","401":"674a8db0-b4c4-4091-acca-97d9f46a058d","404":"ad4ff0e3-f464-4dc5-9e3a-b1f94716aa70","409":"128286f5-da4f-41c4-937d-3912472b111d","422":"7cec71f3-6487-4e21-89c8-12c5523cd685","429":"46d19c28-9af0-408d-b000-214d6d392d4b"},"method":"post","type":"path","servers":["3a775c26-798c-4eee-887e-ba104b2f983e"],"path":"/v1/whatsapp/messages","baseUrlOptions":["https://api.superlead.app"],"title":"Enviar Mensagem","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c180ac01-6f08-490b-ae75-67290c7730b1":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255,"isRequired":false,"description":"Chave única que torna o envio idempotente por 24h: retries com a mesma chave e o **mesmo body** retornam a resposta original sem reenviar a mensagem. A mesma chave com body diferente retorna `409 idempotency_conflict`.","uniqueKey":"","typeLabel":"string"},"description":"Chave única que torna o envio idempotente por 24h: retries com a mesma chave e o **mesmo body** retornam a resposta original sem reenviar a mensagem. A mesma chave com body diferente retorna `409 idempotency_conflict`.","example":"pedido-8734"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["to","type"],"additionalProperties":false,"properties":{"to":{"type":"string","description":"Destinatário: telefone **E.164** (`+5511999999999`) ou **BSUID** (`BR.13491208655302741918` — o `fromUserId` dos webhooks, para leads que chegaram por username do WhatsApp). Precisa ser um lead existente da sua empresa. Números brasileiros: a variação do nono dígito é resolvida automaticamente.","example":"+5511999999999","isRequired":true,"uniqueKey":"to","typeLabel":"string"},"type":{"type":"string","enum":["text","template","image","video","audio","document","sticker","location","contacts","interactive","reaction"],"description":"Tipo da mensagem. Define qual objeto de conteúdo é obrigatório no body (ex.: `text` exige o objeto `text`).","example":"text","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"external_id":{"type":"string","minLength":1,"maxLength":255,"description":"Identificador do **seu** sistema (id do pedido, ticket...), para reconciliação. Volta na resposta, na consulta de status e nos webhooks.","example":"pedido-8734","uniqueKey":"external_id","typeLabel":"string"},"context":{"type":"object","required":["message_id"],"description":"Responde (cita) uma mensagem anterior da conversa.","properties":{"message_id":{"type":"string","minLength":1,"description":"Id da mensagem citada: o `id` (`msg_...`) retornado no envio ou o `wamid` recebido nos webhooks.","example":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f","isRequired":true,"uniqueKey":"context.message_id","typeLabel":"string"}},"uniqueKey":"context","typeLabel":"object"},"text":{"type":"object","required":["body"],"description":"Conteúdo quando `type: \"text\"`. Requer janela de 24h aberta.","properties":{"body":{"type":"string","minLength":1,"maxLength":4096,"description":"Texto da mensagem, até 4096 caracteres. Aceita a formatação do WhatsApp: `*negrito*`, `_itálico_`, `~tachado~`.","example":"Olá! Seu orçamento está pronto 🎉","isRequired":true,"uniqueKey":"text.body","typeLabel":"string"},"preview_url":{"type":"boolean","default":false,"description":"Gera pré-visualização do primeiro link contido no `body`.","uniqueKey":"text.preview_url","typeLabel":"boolean"}},"uniqueKey":"text","typeLabel":"object"},"template":{"type":"object","required":["name","language"],"description":"Conteúdo quando `type: \"template\"` — o único tipo entregue fora da janela de 24h. Nome e idioma precisam bater **exatamente** com o template aprovado na Meta (liste-os em `GET /v1/whatsapp/templates`).","properties":{"name":{"type":"string","minLength":1,"description":"Nome exato do template aprovado.","example":"confirmacao_consulta","isRequired":true,"uniqueKey":"template.name","typeLabel":"string"},"language":{"type":"object","required":["code"],"description":"Idioma do template.","properties":{"code":{"type":"string","minLength":2,"description":"Código do idioma, como aprovado na Meta.","example":"pt_BR","isRequired":true,"uniqueKey":"template.language.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"template.language","typeLabel":"object"},"components":{"type":"array","description":"Parâmetros do template (variáveis do body, mídia do header, botões), no formato de `components` da Cloud API da Meta. Obrigatório quando o template tem variáveis — quantidade e formato precisam bater com o template aprovado.","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"template.components.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"template.components.items.[INDEX]","typeLabel":"object"},"example":[{"type":"body","parameters":[{"type":"text","text":"João"},{"type":"text","text":"quinta, 10h"}]}],"uniqueKey":"template.components","typeLabel":"object[]"}},"uniqueKey":"template","typeLabel":"object"},"image":{"type":"object","required":["link"],"description":"Conteúdo quando `type: \"image\"`. Mídia é enviada por link: você hospeda o arquivo e o WhatsApp baixa da URL no momento do envio.","properties":{"link":{"type":"string","format":"uri","description":"URL **pública e direta** do arquivo — sem autenticação, token ou página intermediária; o servidor deve responder com o Content-Type real. Limite do WhatsApp: 5 MB. Formatos: JPEG, PNG (WebP não — use `sticker`).","example":"https://seusite.com/arquivos/orcamento.jpg","isRequired":true,"uniqueKey":"image.link","typeLabel":"string\u003curi>"},"caption":{"type":"string","maxLength":1024,"description":"Legenda exibida junto à mídia (até 1024 caracteres).","example":"Seu orçamento","uniqueKey":"image.caption","typeLabel":"string"}},"uniqueKey":"image","typeLabel":"object"},"video":{"type":"object","required":["link"],"description":"Conteúdo quando `type: \"video\"`. Mídia é enviada por link: você hospeda o arquivo e o WhatsApp baixa da URL no momento do envio.","properties":{"link":{"type":"string","format":"uri","description":"URL **pública e direta** do arquivo — sem autenticação, token ou página intermediária; o servidor deve responder com o Content-Type real. Limite do WhatsApp: 16 MB. Formatos: MP4/3GPP (vídeo H.264, áudio AAC).","example":"https://seusite.com/videos/demo.mp4","isRequired":true,"uniqueKey":"video.link","typeLabel":"string\u003curi>"},"caption":{"type":"string","maxLength":1024,"description":"Legenda exibida junto à mídia (até 1024 caracteres).","example":"Seu orçamento","uniqueKey":"video.caption","typeLabel":"string"}},"uniqueKey":"video","typeLabel":"object"},"audio":{"type":"object","required":["link"],"description":"Conteúdo quando `type: \"audio\"`. Mídia é enviada por link: você hospeda o arquivo e o WhatsApp baixa da URL no momento do envio.","properties":{"link":{"type":"string","format":"uri","description":"URL **pública e direta** do arquivo — sem autenticação, token ou página intermediária; o servidor deve responder com o Content-Type real. Limite do WhatsApp: 16 MB. Formatos: AAC, MP3, M4A, AMR, OGG (opus).","example":"https://seusite.com/audios/boas-vindas.mp3","isRequired":true,"uniqueKey":"audio.link","typeLabel":"string\u003curi>"}},"uniqueKey":"audio","typeLabel":"object"},"document":{"type":"object","required":["link"],"description":"Conteúdo quando `type: \"document\"`. Mídia é enviada por link: você hospeda o arquivo e o WhatsApp baixa da URL no momento do envio.","properties":{"link":{"type":"string","format":"uri","description":"URL **pública e direta** do arquivo — sem autenticação, token ou página intermediária; o servidor deve responder com o Content-Type real. Limite do WhatsApp: 100 MB. Formatos: PDF, Office, texto e afins.","example":"https://seusite.com/arquivos/contrato.pdf","isRequired":true,"uniqueKey":"document.link","typeLabel":"string\u003curi>"},"caption":{"type":"string","maxLength":1024,"description":"Legenda exibida junto à mídia (até 1024 caracteres).","example":"Seu orçamento","uniqueKey":"document.caption","typeLabel":"string"},"filename":{"type":"string","maxLength":240,"description":"Nome do arquivo exibido no WhatsApp, com extensão. Relevante principalmente para `document`.","example":"orcamento.pdf","uniqueKey":"document.filename","typeLabel":"string"}},"uniqueKey":"document","typeLabel":"object"},"sticker":{"type":"object","required":["link"],"description":"Conteúdo quando `type: \"sticker\"`. Mídia é enviada por link: você hospeda o arquivo e o WhatsApp baixa da URL no momento do envio.","properties":{"link":{"type":"string","format":"uri","description":"URL **pública e direta** do arquivo — sem autenticação, token ou página intermediária; o servidor deve responder com o Content-Type real. Limite do WhatsApp: 100 KB (500 KB animado). Formatos: WebP.","example":"https://seusite.com/stickers/logo.webp","isRequired":true,"uniqueKey":"sticker.link","typeLabel":"string\u003curi>"}},"uniqueKey":"sticker","typeLabel":"object"},"location":{"type":"object","required":["latitude","longitude"],"description":"Conteúdo quando `type: \"location\"` — envia um pin de localização.","properties":{"latitude":{"type":"number","description":"Latitude em graus decimais.","example":-23.5613,"isRequired":true,"uniqueKey":"location.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Longitude em graus decimais.","example":-46.6565,"isRequired":true,"uniqueKey":"location.longitude","typeLabel":"number"},"name":{"type":"string","description":"Nome do local exibido no pin.","example":"Escritório Superlead","uniqueKey":"location.name","typeLabel":"string"},"address":{"type":"string","description":"Endereço exibido abaixo do nome.","example":"Av. Paulista, 1000 - São Paulo, SP","uniqueKey":"location.address","typeLabel":"string"}},"uniqueKey":"location","typeLabel":"object"},"contacts":{"type":"array","minItems":1,"description":"Conteúdo quando `type: \"contacts\"` — cartões de contato no formato `contacts` da Cloud API da Meta (`name`, `phones`, `emails`...).","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"contacts.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"contacts.items.[INDEX]","typeLabel":"object"},"example":[{"name":{"formatted_name":"Maria Souza","first_name":"Maria"},"phones":[{"phone":"+5511988887777","type":"CELL"}]}],"uniqueKey":"contacts","typeLabel":"object[]"},"interactive":{"type":"object","required":["type"],"description":"Conteúdo quando `type: \"interactive\"` — botões e listas, no formato `interactive` da Cloud API da Meta.","properties":{"type":{"type":"string","minLength":1,"description":"Formato interativo da Cloud API (ex.: `button`, `list`). Os demais campos do objeto seguem o formato da Meta para o tipo escolhido.","example":"button","isRequired":true,"uniqueKey":"interactive.type","typeLabel":"string"}},"uniqueKey":"interactive","typeLabel":"object"},"reaction":{"type":"object","required":["message_id","emoji"],"description":"Conteúdo quando `type: \"reaction\"` — reage a uma mensagem existente da conversa.","properties":{"message_id":{"type":"string","minLength":1,"description":"Id da mensagem que recebe a reação: `id` (`msg_...`) ou `wamid`.","example":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f","isRequired":true,"uniqueKey":"reaction.message_id","typeLabel":"string"},"emoji":{"type":"string","minLength":1,"description":"Emoji da reação.","example":"👍","isRequired":true,"uniqueKey":"reaction.emoji","typeLabel":"string"}},"uniqueKey":"reaction","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"texto":{"title":"texto","value":{"to":"+5511999999999","type":"text","text":{"body":"Olá! Seu orçamento está pronto 🎉"}}},"template":{"title":"template","value":{"to":"+5511999999999","type":"template","template":{"name":"confirmacao_consulta","language":{"code":"pt_BR"},"components":[{"type":"body","parameters":[{"type":"text","text":"João"},{"type":"text","text":"quinta, 10h"}]}]}}},"imagem":{"title":"imagem","value":{"to":"+5511999999999","type":"image","image":{"link":"https://seusite.com/arquivos/orcamento.jpg","caption":"Seu orçamento"}}},"documento":{"title":"documento","value":{"to":"+5511999999999","type":"document","document":{"link":"https://seusite.com/arquivos/contrato.pdf","filename":"contrato.pdf"}}},"resposta":{"title":"resposta","value":{"to":"+5511999999999","type":"text","context":{"message_id":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f"},"text":{"body":"Sobre a sua pergunta: sim!"}}},"com_external_id":{"title":"com_external_id","value":{"to":"+5511999999999","external_id":"pedido-8734","type":"text","text":{"body":"Pedido confirmado! Chega em 3 dias úteis."}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"5ab796ae-5de7-46f7-a050-ce725674beb9":{"description":"Mensagem **aceita** pelo canal. Aceita ≠ entregue: acompanhe o status por `GET /v1/whatsapp/messages/{id}` ou pelo webhook `whatsapp.message.updated`.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Id da mensagem no Superlead (`msg_...`). Use em `GET /v1/whatsapp/messages/{id}`.","example":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f","uniqueKey":"id","typeLabel":"string"},"wamid":{"oneOf":[{"type":"string","description":"Id da mensagem na Meta. Os webhooks de status (`whatsapp.message.updated`) referenciam este valor.","example":"wamid.HBgNNTUxMTk5OTk5OTk5ORUCABEYEjVGQjA3RDIzRkU3QzYxRjM5NQA=","uniqueKey":"wamid.oneOf.0","typeLabel":"string"},{"type":"null","description":"Id da mensagem na Meta. Os webhooks de status (`whatsapp.message.updated`) referenciam este valor.","example":"wamid.HBgNNTUxMTk5OTk5OTk5ORUCABEYEjVGQjA3RDIzRkU3QzYxRjM5NQA=","uniqueKey":"wamid.oneOf.1","typeLabel":"null"}],"uniqueKey":"wamid","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","description":"O `external_id` enviado no body, se houver.","example":"pedido-8734","uniqueKey":"external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O `external_id` enviado no body, se houver.","example":"pedido-8734","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"string | null"},"to":{"oneOf":[{"type":"string","description":"Destinatário, como resolvido pela API.","example":"+5511999999999","uniqueKey":"to.oneOf.0","typeLabel":"string"},{"type":"null","description":"Destinatário, como resolvido pela API.","example":"+5511999999999","uniqueKey":"to.oneOf.1","typeLabel":"null"}],"uniqueKey":"to","typeLabel":"string | null"},"type":{"type":"string","enum":["text","template","image","video","audio","document","sticker","location","contacts","interactive","reaction"],"description":"Tipo da mensagem enviada.","uniqueKey":"type","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["accepted","held_for_quality_assessment","paused","sent","delivered","read","failed"],"description":"Status atual da mensagem:\n- `accepted` — aceita pelo canal; entrega ainda não confirmada.\n- `held_for_quality_assessment` — retida pela Meta para avaliação de qualidade.\n- `paused` — envio pausado pela Meta.\n- `sent` — entregue ao servidor do WhatsApp.\n- `delivered` — entregue ao aparelho do lead.\n- `read` — lida pelo lead.\n- `failed` — falhou; o motivo fica em `error`.","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"Data de criação da mensagem (ISO 8601, UTC).","example":"2026-07-08T12:34:56.000Z","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f","wamid":"wamid.HBgNNTUxMTk5OTk5OTk5ORUCABEYEjVGQjA3RDIzRkU3QzYxRjM5NQA=","external_id":"pedido-8734","to":"+5511999999999","type":"text","status":"accepted","created_at":"2026-07-08T12:34:56.000Z"},"examples":{"Example":{"title":"Example","value":{"id":"msg_9f8e7d6c-1a2b-3c4d-5e6f-7a8b9c0d1e2f","wamid":"wamid.HBgNNTUxMTk5OTk5OTk5ORUCABEYEjVGQjA3RDIzRkU3QzYxRjM5NQA=","external_id":"pedido-8734","to":"+5511999999999","type":"text","status":"accepted","created_at":"2026-07-08T12:34:56.000Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"7189cee9-5ab1-427d-a84a-6ac8596ee5d3":{"description":"`invalid_request` — o body ou os parâmetros da requisição são inválidos. O campo `details` aponta cada campo com problema.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_request","message":"The request body is invalid.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","details":[{"path":"to","message":"Required"}]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"The request body is invalid.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","details":[{"path":"to","message":"Required"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"674a8db0-b4c4-4091-acca-97d9f46a058d":{"description":"`invalid_api_key` — chave de API ausente, malformada ou revogada. Envie `Authorization: Bearer sk_...`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_api_key","message":"Missing or invalid API key. Send it as 'Authorization: Bearer sk_...'.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_api_key","message":"Missing or invalid API key. Send it as 'Authorization: Bearer sk_...'.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ad4ff0e3-f464-4dc5-9e3a-b1f94716aa70":{"description":"`lead_not_found` — o destinatário não é um lead da sua empresa. O envio nunca cria leads: registre-o antes com `POST /v1/leads`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"lead_not_found","message":"No lead matches this recipient in your company. The API only messages existing leads.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"lead_not_found","message":"No lead matches this recipient in your company. The API only messages existing leads.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}}}},"exampleType":"examples"}},"exampleType":"examples"},"128286f5-da4f-41c4-937d-3912472b111d":{"description":"`idempotency_conflict` — a `Idempotency-Key` já foi usada com um body diferente, ou a requisição original ainda está em andamento.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"idempotency_conflict","message":"This Idempotency-Key was already used with a different request body, or the original request is still in progress.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"idempotency_conflict","message":"This Idempotency-Key was already used with a different request body, or the original request is still in progress.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}}}},"exampleType":"examples"}},"exampleType":"examples"},"7cec71f3-6487-4e21-89c8-12c5523cd685":{"description":"Regra de negócio impediu o envio: `outside_24h_window`, `template_not_found`, `template_params_invalid`, `media_unsupported`, `no_active_connection`, `connection_expired`, `channel_capability_unsupported`, `recipient_unavailable` ou `message_blocked`. Veja o [catálogo de erros](/guias/erros).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"outside_24h_window","message":"Free-form messages require the lead to have messaged you within the last 24 hours. Send an approved template instead.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","upstream_code":131047}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"outside_24h_window","message":"Free-form messages require the lead to have messaged you within the last 24 hours. Send an approved template instead.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","upstream_code":131047}}}},"exampleType":"examples"}},"exampleType":"examples"},"46d19c28-9af0-408d-b000-214d6d392d4b":{"description":"`rate_limit_exceeded` — limite de 60 requisições/min da chave excedido (aguarde o `Retry-After`). `daily_quota_exceeded` — a cota diária da empresa acabou; zera à meia-noite de Brasília (aguarde o `Retry-After`). `channel_rate_limit` — o WhatsApp está limitando o seu número; reduza o ritmo.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável do erro (ex.: `lead_not_found`). Novos códigos podem surgir a qualquer momento — trate códigos desconhecidos pelo HTTP status.","example":"lead_not_found","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Descrição legível do erro, em inglês. O texto pode mudar — não faça parsing dele; use `code`.","uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Id único desta requisição. Inclua ao reportar um problema ao suporte.","example":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1","uniqueKey":"error.request_id","typeLabel":"string"},"upstream_code":{"type":"number","description":"Código numérico original da Meta, presente quando o erro veio do WhatsApp (ex.: `131047` para fora da janela de 24h).","example":131047,"uniqueKey":"error.upstream_code","typeLabel":"number"},"details":{"type":"array","description":"Detalhes do erro. Aparece em três casos: erros de validação campo a campo em `400 invalid_request` (`path` é o campo do body); a explicação da Meta numa recusa de template, com `path: \"meta\"` (só quando a Meta envia uma explicação); e as campanhas que bloqueiam a exclusão de um template (`template_in_use`), com `path: \"campaigns\"` (até 10).","items":{"type":"object","properties":{"path":{"type":"string","description":"Em `invalid_request`, o caminho do campo inválido no body (ex.: `text.body`). Nas recusas de template vale `meta`; em `template_in_use` vale `campaigns`.","uniqueKey":"error.details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"O que está errado com o campo.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limit_exceeded","message":"Rate limit for this API key exceeded. Retry after the time in the Retry-After header.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limit_exceeded","message":"Rate limit for this API key exceeded. Retry after the time in the Retry-After header.","request_id":"req_01J9X7K2M3N4P5Q6R7S8T9V0W1"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1efaa394-ab40-4311-9f21-ccc9fad9cfd8":{"apiKey":{"type":"http","scheme":"bearer","description":"Chave de API da sua empresa (`sk_...`). Crie no painel Superlead em **Integrações → API** e envie em toda chamada como `Authorization: Bearer sk_...`. Veja [Autenticação](/guias/autenticacao).","scopes":[],"schemeName":"apiKey"}}},"servers":{"3a775c26-798c-4eee-887e-ba104b2f983e":{"url":"https://api.superlead.app","description":"Produção"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Chave de API da sua empresa (`sk_...`). Crie no painel Superlead em **Integrações → API** e envie em toda chamada como `Authorization: Bearer sk_...`. Veja [Autenticação](/guias/autenticacao).","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Chave de API da sua empresa (`sk_...`). Crie no painel Superlead em **Integrações → API** e envie em toda chamada como `Authorization: Bearer sk_...`. Veja [Autenticação](/guias/autenticacao).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"superlead","siteName":"Superlead","title":"Enviar Mensagem - Superlead","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T13:15:00.746Z","originalFileLocation":"api-reference/enviar-mensagem.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Envia uma mensagem WhatsApp para um lead existente da sua empresa. - O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads). - O campo type define qual objeto de conteúdo acompanha o body: type: \u0026quot;text\u0026quot; exige o objeto text, type: \u0026quot;image\u0026quot; exige image, e assim por diante. - Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: \u0026quot;template\u0026quot; com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens. - Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks. - Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Superlead\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Enviar Mensagem - Superlead\">\u003cmeta data-mint-head property=\"og:description\" content=\"Envia uma mensagem WhatsApp para um lead existente da sua empresa. - O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads). - O campo type define qual objeto de conteúdo acompanha o body: type: \u0026quot;text\u0026quot; exige o objeto text, type: \u0026quot;image\u0026quot; exige image, e assim por diante. - Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: \u0026quot;template\u0026quot; com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens. - Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks. - Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Superlead\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.superlead.app/api-reference/enviar-mensagem\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superlead.mintlify.app/_mintlify/api/og/v2?division=WhatsApp\u0026amp;title=Enviar+Mensagem\u0026amp;description=Envia+uma+mensagem+WhatsApp+para+um+**lead+existente**+da+sua+empresa.%0A%0A-+O+destinat%C3%A1rio+%60to%60+aceita+telefone+E.164+ou+BSUID.+O+envio+**nunca+cria+leads**+%E2%80%94+par\u0026amp;theme=fbae094d518bcaff4ff0ada0\u0026amp;signature=f6392487fb3837a026759befd93f60609b82a2b8c7f905b8ce45d80b93f37cc6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Enviar Mensagem - Superlead\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Envia uma mensagem WhatsApp para um lead existente da sua empresa. - O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads). - O campo type define qual objeto de conteúdo acompanha o body: type: \u0026quot;text\u0026quot; exige o objeto text, type: \u0026quot;image\u0026quot; exige image, e assim por diante. - Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: \u0026quot;template\u0026quot; com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens. - Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks. - Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superlead.mintlify.app/_mintlify/api/og/v2?division=WhatsApp\u0026amp;title=Enviar+Mensagem\u0026amp;description=Envia+uma+mensagem+WhatsApp+para+um+**lead+existente**+da+sua+empresa.%0A%0A-+O+destinat%C3%A1rio+%60to%60+aceita+telefone+E.164+ou+BSUID.+O+envio+**nunca+cria+leads**+%E2%80%94+par\u0026amp;theme=fbae094d518bcaff4ff0ada0\u0026amp;signature=f6392487fb3837a026759befd93f60609b82a2b8c7f905b8ce45d80b93f37cc6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/superlead/0daKLFNz1QdqIPeS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Superlead\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0E7A66\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.superlead.app/api-reference/enviar-mensagem\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/enviar-mensagem.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.superlead.app/#organization\",\"name\":\"Superlead\",\"url\":\"https://docs.superlead.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superlead/lAbwMrIKfewRNFRq/logo/light.svg?fit=max\u0026auto=format\u0026n=lAbwMrIKfewRNFRq\u0026q=85\u0026s=6ed7fc7c9bab87f5523f7d9ae92c7eff\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.superlead.app#website\",\"name\":\"Superlead\",\"url\":\"https://docs.superlead.app\",\"publisher\":{\"@id\":\"https://docs.superlead.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.superlead.app/api-reference/enviar-mensagem#webpage\",\"url\":\"https://docs.superlead.app/api-reference/enviar-mensagem\",\"name\":\"Enviar Mensagem\",\"description\":\"Envia uma mensagem WhatsApp para um lead existente da sua empresa. - O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads). - O campo type define qual objeto de conteúdo acompanha o body: type: \\\"text\\\" exige o objeto text, type: \\\"image\\\" exige image, e assim por diante. - Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: \\\"template\\\" com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens. - Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks. - Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.\",\"dateModified\":\"2026-10-20T13:15:00.746Z\",\"isPartOf\":{\"@id\":\"https://docs.superlead.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.superlead.app/api-reference/enviar-mensagem#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.superlead.app/api-reference/enviar-mensagem#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Superlead\",\"item\":\"https://docs.superlead.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enviar Mensagem\",\"item\":\"https://docs.superlead.app/api-reference/enviar-mensagem\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.superlead.app/api-reference/enviar-mensagem#apireference\",\"headline\":\"Enviar Mensagem\",\"name\":\"Enviar Mensagem\",\"description\":\"Envia uma mensagem WhatsApp para um lead existente da sua empresa. - O destinatário to aceita telefone E.164 ou BSUID. O envio nunca cria leads — para contatos novos, crie antes com POST /v1/leads (veja o fluxo recomendado em Leads). - O campo type define qual objeto de conteúdo acompanha o body: type: \\\"text\\\" exige o objeto text, type: \\\"image\\\" exige image, e assim por diante. - Janela de 24h: mensagens de formato livre (texto, mídia) só são entregues se o lead falou com você nas últimas 24 horas. Fora da janela, apenas type: \\\"template\\\" com template aprovado — liste-os em GET /v1/whatsapp/templates. Detalhes em Envio de mensagens. - Um 201 significa aceita, não entregue: a Meta pode falhar o envio de forma assíncrona segundos depois (janela de 24h, mídia inválida...). Acompanhe por GET /v1/whatsapp/messages/{id} ou pelo webhook whatsapp.message.updated — veja Webhooks. - Recomendado: envie o header Idempotency-Key para poder repetir a requisição com segurança em timeouts — veja Idempotência.\",\"url\":\"https://docs.superlead.app/api-reference/enviar-mensagem\",\"mainEntityOfPage\":{\"@id\":\"https://docs.superlead.app/api-reference/enviar-mensagem#webpage\"},\"dateModified\":\"2026-10-20T13:15:00.746Z\",\"publisher\":{\"@id\":\"https://docs.superlead.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.superlead.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Superlead\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Superlead","nav":{"global":null,"tabs":[{"tab":"Documentação","pages":[{"title":"Documentação","href":""}]},{"tab":"Referência da API","groups":[{"group":"Introdução","pages":[{"title":"Visão geral da referência","sidebarTitle":"Visão geral","description":"Base URL, autenticação e os endpoints disponíveis na API v1.","href":"/referencia/visao-geral"}]},{"group":"WhatsApp","pages":[{"title":"Enviar Mensagem","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/whatsapp/messages","href":"/api-reference/enviar-mensagem"},{"title":"Consultar Mensagem","description":"Consulta uma mensagem enviada pela API e o seu status de entrega atual.\n\nUse o `id` (`msg_...`) retornado no envio. Ciclo de vida: `accepted → sent → delivered → read`, com desvio para `failed` a qualquer momento — inclusive **depois** de um `201` (falha assíncrona da Meta: janela de 24h, mídia inválida...). Mensagens `failed` trazem o motivo em `error`, com o código estável do [catálogo de erros](/guias/erros) e o código numérico original da Meta em `upstream_code`.\n\nPara acompanhar transições em tempo real sem polling, prefira o webhook `whatsapp.message.updated` — veja [Webhooks](/guias/webhooks). Use esta consulta para reconciliação e verificações pontuais.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whatsapp/messages/{id}","href":"/api-reference/consultar-mensagem"}]},{"group":"Templates","pages":[{"title":"Listar Templates","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whatsapp/templates","href":"/api-reference/listar-templates"},{"title":"Criar Template","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/whatsapp/templates","href":"/api-reference/criar-template"},{"title":"Consultar Template","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whatsapp/templates/{id}","href":"/api-reference/consultar-template"},{"title":"Editar Template","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/whatsapp/templates/{id}","href":"/api-reference/editar-template"},{"title":"Excluir Template","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/whatsapp/templates/{id}","href":"/api-reference/excluir-template"}]},{"group":"Leads","pages":[{"title":"Criar Lead","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/leads","href":"/api-reference/criar-lead"},{"title":"Buscar ou Listar Leads","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/leads","href":"/api-reference/buscar-ou-listar-leads"},{"title":"Buscar Lead por ID","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/leads/{id}","href":"/api-reference/buscar-lead-por-id"},{"title":"Editar Lead","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/leads/{id}","href":"/api-reference/editar-lead"},{"title":"Mover Lead de Etapa","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/leads/{id}/stage","href":"/api-reference/mover-lead-de-etapa"}]},{"group":"Funil","pages":[{"title":"Listar Etapas do Funil","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/funnel/stages","href":"/api-reference/listar-etapas-do-funil"}]}]}]},"basePath":"","title":"Enviar Mensagem - Superlead","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}