{
"error": "Token não fornecido",
"code": "ERR_TOKEN_MISSING"
}
{
"error": "Token sem permissão para esta ação",
"code": "ERR_SCOPE_MISSING"
}
{
"error": "Conexão informada não encontrada",
"code": "ERR_CONNECTION_NOT_FOUND"
}
{
"error": "Limite de requisições excedido",
"code": "ERR_RATE_LIMITED"
}
Mensagens
Enviar mensagem para um número (cria conversa se preciso)
Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: "open", e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.
Template aprovado do WABA. Aceita um objeto { templateName, templateLanguage, templateParameters } ou, por compatibilidade, a mesma estrutura como string JSON.
false = fire-and-forget: a resposta não traz ticketId/contactId. Em conexões WABA o envio ainda passa por um ticket normal (status: "open"), visível no painel; medias é ignorado nesse modo.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Whatix","colors":{"primary":"#5ba240","light":"#82c968","dark":"#3f702d"},"logo":{"light":"https://mintcdn.com/whatix/Vug4rfKX3rb30lbJ/logo/light.svg?fit=max\u0026auto=format\u0026n=Vug4rfKX3rb30lbJ\u0026q=85\u0026s=e641de8c3d7963baf33174a0f7997ec8","dark":"https://mintcdn.com/whatix/Vug4rfKX3rb30lbJ/logo/dark.svg?fit=max\u0026auto=format\u0026n=Vug4rfKX3rb30lbJ\u0026q=85\u0026s=821072ad9ea197d8db116be43a80658b"},"favicon":"https://mintcdn.com/whatix/dJ-XLwDJ4Q9D5NC6/favicon.svg?fit=max\u0026auto=format\u0026n=dJ-XLwDJ4Q9D5NC6\u0026q=85\u0026s=c5bb6c8bd1a819b8b82f620af96def28","appearance":{"default":"light","strict":false},"footer":{"socials":{"website":"https://whatix.com.br"}},"fonts":{"family":"Geist"},"styling":{"latex":false},"navigation":{"languages":[{"language":"pt","href":"pt"},{"language":"en","href":"en"},{"language":"es","href":"es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"whatix","hasAudioNarration":false,"actualSubdomain":"whatix","customDomains":["docs.whatix.com.br"],"gitSource":{"type":"github","owner":"doiscomunicacao","repo":"whatix-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ab6d3e96b4114931ef9046f","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"en","tag":"Reference","count":19},{"language":"es","tag":"Referencia","count":19},{"language":"pt","tag":"Referência","count":19},{"language":"pt","tag":"Início","count":8},{"language":"pt","tag":"Guias","count":7},{"language":"en","tag":"Cards","count":6},{"language":"en","tag":"Contatos","count":6},{"language":"es","tag":"Cards","count":6},{"language":"es","tag":"Contatos","count":6},{"language":"pt","tag":"Cards","count":6},{"language":"pt","tag":"Contatos","count":6},{"language":"en","tag":"Mensagens","count":4},{"language":"es","tag":"Mensagens","count":4},{"language":"pt","tag":"Mensagens","count":4},{"language":"en","tag":"Start","count":1},{"language":"en","tag":"Conexões","count":1},{"language":"en","tag":"Conversas","count":1},{"language":"en","tag":"Flows","count":1},{"language":"es","tag":"Inicio","count":1},{"language":"es","tag":"Conexões","count":1},{"language":"es","tag":"Conversas","count":1},{"language":"es","tag":"Flows","count":1},{"language":"pt","tag":"Conexões","count":1},{"language":"pt","tag":"Conversas","count":1},{"language":"pt","tag":"Flows","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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"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},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","slug":"/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","pageMetadata":{"title":"Enviar mensagem para um número (cria conversa se preciso)","description":"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: `whatsappId`, se informado; senão `whatsappName`; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo `isDefault` de /v1/connections não entra nessa escolha). Envie pelo menos um entre `body`, `medias` (multipart) ou `templateData`; fora da janela de 24h do WABA só templates aprovados são entregues. `contactName` só é usado se o contato for criado agora. Com `saveOnTicket=false` o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, `status: \"open\"`, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, `medias` é ignorado (só body/templateData chegam ao envio) e o `id` de cada mensagem no retorno pode vir `null`. O `status` de cada mensagem no retorno pode ser `queued`, `sent`, `server_ack`, `delivered`, `read`, `failed`, `received` ou `unknown`. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo `messages:send`.","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/messages/send","href":"/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: \", _jsx(_components.code, {\n children: \"whatsappId\"\n }), \", se informado; senão \", _jsx(_components.code, {\n children: \"whatsappName\"\n }), \"; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo \", _jsx(_components.code, {\n children: \"isDefault\"\n }), \" de /v1/connections não entra nessa escolha). Envie pelo menos um entre \", _jsx(_components.code, {\n children: \"body\"\n }), \", \", _jsx(_components.code, {\n children: \"medias\"\n }), \" (multipart) ou \", _jsx(_components.code, {\n children: \"templateData\"\n }), \"; fora da janela de 24h do WABA só templates aprovados são entregues. \", _jsx(_components.code, {\n children: \"contactName\"\n }), \" só é usado se o contato for criado agora. Com \", _jsx(_components.code, {\n children: \"saveOnTicket=false\"\n }), \" o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, \", _jsx(_components.code, {\n children: \"status: \\\"open\\\"\"\n }), \", e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, \", _jsx(_components.code, {\n children: \"medias\"\n }), \" é ignorado (só body/templateData chegam ao envio) e o \", _jsx(_components.code, {\n children: \"id\"\n }), \" de cada mensagem no retorno pode vir \", _jsx(_components.code, {\n children: \"null\"\n }), \". O \", _jsx(_components.code, {\n children: \"status\"\n }), \" de cada mensagem no retorno pode ser \", _jsx(_components.code, {\n children: \"queued\"\n }), \", \", _jsx(_components.code, {\n children: \"sent\"\n }), \", \", _jsx(_components.code, {\n children: \"server_ack\"\n }), \", \", _jsx(_components.code, {\n children: \"delivered\"\n }), \", \", _jsx(_components.code, {\n children: \"read\"\n }), \", \", _jsx(_components.code, {\n children: \"failed\"\n }), \", \", _jsx(_components.code, {\n children: \"received\"\n }), \" ou \", _jsx(_components.code, {\n children: \"unknown\"\n }), \". Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo \", _jsx(_components.code, {\n children: \"messages:send\"\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 para um número (cria conversa se preciso)","description":"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: `whatsappId`, se informado; senão `whatsappName`; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo `isDefault` de /v1/connections não entra nessa escolha). Envie pelo menos um entre `body`, `medias` (multipart) ou `templateData`; fora da janela de 24h do WABA só templates aprovados são entregues. `contactName` só é usado se o contato for criado agora. Com `saveOnTicket=false` o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, `status: \"open\"`, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, `medias` é ignorado (só body/templateData chegam ao envio) e o `id` de cada mensagem no retorno pode vir `null`. O `status` de cada mensagem no retorno pode ser `queued`, `sent`, `server_ack`, `delivered`, `read`, `failed`, `received` ou `unknown`. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo `messages:send`.","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/messages/send","href":"/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/whatix/1366b42f4001cd55/instance.js"],"openApiReferenceData":{"operation":{"x-scope":"messages:send","description":"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: `whatsappId`, se informado; senão `whatsappName`; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo `isDefault` de /v1/connections não entra nessa escolha). Envie pelo menos um entre `body`, `medias` (multipart) ou `templateData`; fora da janela de 24h do WABA só templates aprovados são entregues. `contactName` só é usado se o contato for criado agora. Com `saveOnTicket=false` o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, `status: \"open\"`, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, `medias` é ignorado (só body/templateData chegam ao envio) e o `id` de cada mensagem no retorno pode vir `null`. O `status` de cada mensagem no retorno pode ser `queued`, `sent`, `server_ack`, `delivered`, `read`, `failed`, `received` ou `unknown`. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo `messages:send`.","security":["28d7141a-6498-426b-9f89-4308b1c5a861"],"summary":"Enviar mensagem para um número (cria conversa se preciso)","tags":["Mensagens"],"requestBody":"26ee0689-df02-45f0-94ce-8ca897a03374","responses":{"200":"9508be3f-c9e3-44ea-b649-7211684f737c","400":"915c3cff-ceb0-42a9-9fbf-e40a1b7e851b","401":"e39c6064-2268-4da1-b889-22450a9bfdcd","403":"cc21504a-50b6-4949-b472-6ea261935476","404":"8615f9f6-f5de-4f4a-9f9b-0be8f02794dd","429":"5b406567-dc7a-40ef-8288-6487141964b0"},"method":"post","type":"path","servers":["a81656e0-5b44-4f60-a372-6139898741b5"],"path":"/v1/messages/send","baseUrlOptions":["https://{instance}/wapi"],"title":"Enviar mensagem para um número (cria conversa se preciso)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["number"],"description":"Pelo menos um entre body, medias (multipart) e templateData é obrigatório.","properties":{"number":{"type":"string","example":"5534992341048","description":"E.164 sem `+` (DDI+DDD+número).","isRequired":true,"uniqueKey":"number","typeLabel":"string"},"body":{"type":"string","uniqueKey":"body","typeLabel":"string"},"whatsappId":{"oneOf":[{"type":"integer","description":"Conexão de saída (id). Tem prioridade sobre whatsappName e sobre a conexão padrão.","uniqueKey":"whatsappId.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Conexão de saída (id). Tem prioridade sobre whatsappName e sobre a conexão padrão.","uniqueKey":"whatsappId.oneOf.1","typeLabel":"null"}],"uniqueKey":"whatsappId","typeLabel":"integer | null"},"whatsappName":{"oneOf":[{"type":"string","description":"Conexão de saída pelo nome (alternativa ao id).","uniqueKey":"whatsappName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Conexão de saída pelo nome (alternativa ao id).","uniqueKey":"whatsappName.oneOf.1","typeLabel":"null"}],"uniqueKey":"whatsappName","typeLabel":"string | null"},"contactName":{"oneOf":[{"type":"string","description":"Nome usado se o contato for criado agora.","uniqueKey":"contactName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nome usado se o contato for criado agora.","uniqueKey":"contactName.oneOf.1","typeLabel":"null"}],"uniqueKey":"contactName","typeLabel":"string | null"},"templateData":{"oneOf":[{"type":"object","description":"Template aprovado do WABA. Aceita um objeto `{ templateName, templateLanguage, templateParameters }` ou, por compatibilidade, a mesma estrutura como string JSON.","properties":{"templateName":{"type":"string","uniqueKey":"templateData.oneOf.0.templateName","typeLabel":"string"},"templateLanguage":{"type":"string","example":"pt_BR","uniqueKey":"templateData.oneOf.0.templateLanguage","typeLabel":"string"},"templateParameters":{"type":"array","items":{"type":"string","uniqueKey":"templateData.oneOf.0.templateParameters.items.[INDEX]","typeLabel":"string"},"uniqueKey":"templateData.oneOf.0.templateParameters","typeLabel":"string[]"}},"uniqueKey":"templateData.oneOf.0","typeLabel":"object"},{"type":"string","description":"Template aprovado do WABA. Aceita um objeto `{ templateName, templateLanguage, templateParameters }` ou, por compatibilidade, a mesma estrutura como string JSON.","uniqueKey":"templateData.oneOf.1","typeLabel":"string"},{"type":"null","description":"Template aprovado do WABA. Aceita um objeto `{ templateName, templateLanguage, templateParameters }` ou, por compatibilidade, a mesma estrutura como string JSON.","uniqueKey":"templateData.oneOf.2","typeLabel":"null"}],"uniqueKey":"templateData","typeLabel":"object | string | null"},"saveOnTicket":{"type":"boolean","default":true,"description":"false = fire-and-forget: a resposta não traz ticketId/contactId. Em conexões WABA o envio ainda passa por um ticket normal (`status: \"open\"`), visível no painel; `medias` é ignorado nesse modo.","uniqueKey":"saveOnTicket","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"texto":{"title":"texto","value":{"number":"5534992341048","body":"Olá! Tudo bem?"}},"template":{"title":"template","value":{"number":"5534992341048","templateData":{"templateName":"boleto_atualizado","templateLanguage":"pt_BR","templateParameters":["Maria","R$ 129,90"]}}},"templateLegado":{"title":"templateLegado","value":{"number":"5534992341048","templateData":"{\"templateName\":\"boleto_atualizado\",\"templateLanguage\":\"pt_BR\",\"templateParameters\":[\"Maria\",\"R$ 129,90\"]}"}}},"exampleType":"examples"},"multipart/form-data":{"schema":{"type":"object","properties":{"number":{"type":"string","uniqueKey":"number","typeLabel":"string"},"body":{"type":"string","uniqueKey":"body","typeLabel":"string"},"medias":{"type":"array","items":{"type":"string","format":"binary","uniqueKey":"medias.items.[INDEX]","typeLabel":"file"},"uniqueKey":"medias","typeLabel":"file[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"number":"\u003cstring>","body":"\u003cstring>","medias":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"examples"},"responses":{"9508be3f-c9e3-44ea-b649-7211684f737c":{"description":"Mensagem aceita; conversa criada/reaproveitada.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Quantas requisições o token pode fazer por minuto."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Quantas requisições ainda restam na janela atual."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Epoch (segundos) em que a janela de rate limit atual reseta."}},"content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","uniqueKey":"requestId","typeLabel":"string"},"ticketId":{"oneOf":[{"type":"integer","description":"null quando saveOnTicket=false.","uniqueKey":"ticketId.oneOf.0","typeLabel":"integer"},{"type":"null","description":"null quando saveOnTicket=false.","uniqueKey":"ticketId.oneOf.1","typeLabel":"null"}],"uniqueKey":"ticketId","typeLabel":"integer | null"},"contactId":{"oneOf":[{"type":"integer","uniqueKey":"contactId.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"contactId.oneOf.1","typeLabel":"null"}],"uniqueKey":"contactId","typeLabel":"integer | null"},"whatsappId":{"type":"integer","uniqueKey":"whatsappId","typeLabel":"integer"},"channel":{"type":"string","uniqueKey":"channel","typeLabel":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID da mensagem (wamid/uuid).","uniqueKey":"messages.items.[INDEX].id","typeLabel":"string"},"ticketId":{"type":"integer","uniqueKey":"messages.items.[INDEX].ticketId","typeLabel":"integer"},"fromMe":{"type":"boolean","uniqueKey":"messages.items.[INDEX].fromMe","typeLabel":"boolean"},"body":{"type":"string","uniqueKey":"messages.items.[INDEX].body","typeLabel":"string"},"mediaUrl":{"oneOf":[{"type":"string","uniqueKey":"messages.items.[INDEX].mediaUrl.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"messages.items.[INDEX].mediaUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].mediaUrl","typeLabel":"string | null"},"mediaType":{"oneOf":[{"type":"string","example":"image","uniqueKey":"messages.items.[INDEX].mediaType.oneOf.0","typeLabel":"string"},{"type":"null","example":"image","uniqueKey":"messages.items.[INDEX].mediaType.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].mediaType","typeLabel":"string | null"},"ack":{"type":"integer","description":"0-5 (progresso de entrega).","uniqueKey":"messages.items.[INDEX].ack","typeLabel":"integer"},"status":{"type":"string","description":"Legível, derivado do `ack`: queued | sent | server_ack | delivered | read | failed | received | unknown. GET /v1/messages/{messageId}/status pode devolver ainda `processing` enquanto a mensagem não chegou no seu histórico.","uniqueKey":"messages.items.[INDEX].status","typeLabel":"string"},"quotedMsgId":{"oneOf":[{"type":"string","uniqueKey":"messages.items.[INDEX].quotedMsgId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"messages.items.[INDEX].quotedMsgId.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].quotedMsgId","typeLabel":"string | null"},"contactId":{"oneOf":[{"type":"integer","uniqueKey":"messages.items.[INDEX].contactId.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"messages.items.[INDEX].contactId.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].contactId","typeLabel":"integer | null"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"messages.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","uniqueKey":"messages.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"},"quotedMsg":{"oneOf":[{"type":"object","description":"Presente quando a mensagem responde outra.","properties":{"id":{"type":"string","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.id","typeLabel":"string"},"body":{"type":"string","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.body","typeLabel":"string"},"fromMe":{"type":"boolean","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.fromMe","typeLabel":"boolean"},"mediaType":{"oneOf":[{"type":"string","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.mediaType.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.mediaType.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.mediaType","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0.createdAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.0","typeLabel":"object"},{"type":"null","description":"Presente quando a mensagem responde outra.","properties":{"id":{"type":"string"},"body":{"type":"string"},"fromMe":{"type":"boolean"},"mediaType":{"oneOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"uniqueKey":"messages.items.[INDEX].quotedMsg.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].quotedMsg","typeLabel":"object | null"}},"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"uniqueKey":"messages","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"requestId":"req_a10f3e","ticketId":4901,"contactId":602,"whatsappId":2,"channel":"waba","messages":[{"id":"wamid.HBgN...","status":"sent","ack":1,"createdAt":"2026-09-23T09:20:11.000Z"}]},"examples":{"Example":{"title":"Example","value":{"requestId":"req_a10f3e","ticketId":4901,"contactId":602,"whatsappId":2,"channel":"waba","messages":[{"id":"wamid.HBgN...","status":"sent","ack":1,"createdAt":"2026-09-23T09:20:11.000Z"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"915c3cff-ceb0-42a9-9fbf-e40a1b7e851b":{"description":"`ERR_NUMBER_REQUIRED`: O campo `number` é obrigatório. · `ERR_NUMBER_INVALID`: O número não tem dígitos válidos após normalização. Use E.164 sem `+` (ex.: 5534999990000). · `ERR_MISSING_CONTENT`: O envio precisa de pelo menos um entre `body`, `medias` (multipart) ou `templateData`. · `ERR_UNSUPPORTED_CHANNEL`: A conexão escolhida não é WhatsApp. Só canais `whatsapp` e `waba` enviam pela API. Em POST /v1/messages/send devolve 400; em POST /v1/flows/trigger, 422.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"description":"Corpo plano `{ error, code, ...extras }`: extras aparecem na raiz — `retryAfter` (429), `requiredScope` (403), `ticketId` (409), `param` (filtro de data inválido). Não existe objeto `details`.","properties":{"error":{"type":"string","description":"Texto do erro (em ~22 códigos é o próprio código). Não faça match nele; use `code`.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["ERR_TOKEN_MISSING","ERR_TOKEN_INVALID","ERR_TOKEN_REVOKED","ERR_TOKEN_EXPIRED","ERR_SCOPE_MISSING","ERR_RATE_LIMITED","ERR_MISSING_CONTENT","ERR_NUMBER_REQUIRED","ERR_NUMBER_INVALID","ERR_CONNECTION_NOT_FOUND","ERR_NO_CONNECTION_AVAILABLE","ERR_UNSUPPORTED_CHANNEL","ERR_NO_TICKET_FOUND","ERR_MISSING_NUMBER","ERR_NUMBER_NOT_ON_WHATSAPP","ERR_WHATSAPP_NOT_FOUND","ERR_NO_CONTACT_FOUND","ERR_NUMBER_IMMUTABLE","ERR_INVALID_TAG_IDS","ERR_INVALID_TAGMODE","ERR_INVALID_DATE_FILTER","ERR_NO_CARD_FOUND","ERR_CONTACT_IDENTIFIER_REQUIRED","ERR_PIPELINE_NOT_FOUND","ERR_STAGE_REQUIRED","ERR_STAGE_NOT_FOUND","ERR_STAGE_NOT_IN_PIPELINE","ERR_SOURCE_NOT_FOUND","ERR_SOURCE_REQUIRED_FOR_STAGE","ERR_FLOW_ID_AND_WHATSAPP_ID_REQUIRED","ERR_VARIABLES_MUST_BE_OBJECT","ERR_FLOW_NOT_FOUND","ERR_FLOW_NOT_EXECUTABLE","ERR_TICKET_IN_HUMAN_SERVICE","ERR_FEATURE_NOT_AVAILABLE","ERR_STORAGE_LIMIT_REACHED","ERR_DUPLICATED_CONTACT","ERR_CONTACT_NUMBER_IS_LID"],"description":"Código estável do erro.","uniqueKey":"code","typeLabel":"enum\u003cstring>"},"retryAfter":{"type":"integer","description":"Só no 429: segundos até poder tentar de novo (igual ao header Retry-After).","uniqueKey":"retryAfter","typeLabel":"integer"},"requiredScope":{"type":"string","description":"Só no 403: escopo que o token não tem.","uniqueKey":"requiredScope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"ERR_NUMBER_REQUIRED","code":"ERR_NUMBER_REQUIRED"},"examples":{"Example":{"title":"Example","value":{"error":"ERR_NUMBER_REQUIRED","code":"ERR_NUMBER_REQUIRED"}}},"exampleType":"examples"}},"exampleType":"examples"},"e39c6064-2268-4da1-b889-22450a9bfdcd":{"description":"`ERR_TOKEN_MISSING`: Header Authorization ausente. Envie `Authorization: Bearer wtx_live_…`. · `ERR_TOKEN_INVALID`: O token não existe ou está mal formado. Gere um novo na tela API do Chat → Tokens. · `ERR_TOKEN_REVOKED`: O token foi revogado no painel. Crie outro. · `ERR_TOKEN_EXPIRED`: Passou da validade definida na criação. Crie outro ou rotacione antes de expirar.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"description":"Corpo plano `{ error, code, ...extras }`: extras aparecem na raiz — `retryAfter` (429), `requiredScope` (403), `ticketId` (409), `param` (filtro de data inválido). Não existe objeto `details`.","properties":{"error":{"type":"string","description":"Texto do erro (em ~22 códigos é o próprio código). Não faça match nele; use `code`.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["ERR_TOKEN_MISSING","ERR_TOKEN_INVALID","ERR_TOKEN_REVOKED","ERR_TOKEN_EXPIRED","ERR_SCOPE_MISSING","ERR_RATE_LIMITED","ERR_MISSING_CONTENT","ERR_NUMBER_REQUIRED","ERR_NUMBER_INVALID","ERR_CONNECTION_NOT_FOUND","ERR_NO_CONNECTION_AVAILABLE","ERR_UNSUPPORTED_CHANNEL","ERR_NO_TICKET_FOUND","ERR_MISSING_NUMBER","ERR_NUMBER_NOT_ON_WHATSAPP","ERR_WHATSAPP_NOT_FOUND","ERR_NO_CONTACT_FOUND","ERR_NUMBER_IMMUTABLE","ERR_INVALID_TAG_IDS","ERR_INVALID_TAGMODE","ERR_INVALID_DATE_FILTER","ERR_NO_CARD_FOUND","ERR_CONTACT_IDENTIFIER_REQUIRED","ERR_PIPELINE_NOT_FOUND","ERR_STAGE_REQUIRED","ERR_STAGE_NOT_FOUND","ERR_STAGE_NOT_IN_PIPELINE","ERR_SOURCE_NOT_FOUND","ERR_SOURCE_REQUIRED_FOR_STAGE","ERR_FLOW_ID_AND_WHATSAPP_ID_REQUIRED","ERR_VARIABLES_MUST_BE_OBJECT","ERR_FLOW_NOT_FOUND","ERR_FLOW_NOT_EXECUTABLE","ERR_TICKET_IN_HUMAN_SERVICE","ERR_FEATURE_NOT_AVAILABLE","ERR_STORAGE_LIMIT_REACHED","ERR_DUPLICATED_CONTACT","ERR_CONTACT_NUMBER_IS_LID"],"description":"Código estável do erro.","uniqueKey":"code","typeLabel":"enum\u003cstring>"},"retryAfter":{"type":"integer","description":"Só no 429: segundos até poder tentar de novo (igual ao header Retry-After).","uniqueKey":"retryAfter","typeLabel":"integer"},"requiredScope":{"type":"string","description":"Só no 403: escopo que o token não tem.","uniqueKey":"requiredScope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Token não fornecido","code":"ERR_TOKEN_MISSING"},"examples":{"Example":{"title":"Example","value":{"error":"Token não fornecido","code":"ERR_TOKEN_MISSING"}}},"exampleType":"examples"}},"exampleType":"examples"},"cc21504a-50b6-4949-b472-6ea261935476":{"description":"`ERR_SCOPE_MISSING`: O token é válido mas não tem o escopo exigido pelo endpoint. Um escopo `x:write` satisfaz `x:read`. · `ERR_STORAGE_LIMIT_REACHED`: Limite de armazenamento da instância atingido; envio de mídia bloqueado. · `ERR_STORAGE_LIMIT_REACHED` vem sem `code`; trate pelo `error`.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"description":"Corpo plano `{ error, code, ...extras }`: extras aparecem na raiz — `retryAfter` (429), `requiredScope` (403), `ticketId` (409), `param` (filtro de data inválido). Não existe objeto `details`.","properties":{"error":{"type":"string","description":"Texto do erro (em ~22 códigos é o próprio código). Não faça match nele; use `code`.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["ERR_TOKEN_MISSING","ERR_TOKEN_INVALID","ERR_TOKEN_REVOKED","ERR_TOKEN_EXPIRED","ERR_SCOPE_MISSING","ERR_RATE_LIMITED","ERR_MISSING_CONTENT","ERR_NUMBER_REQUIRED","ERR_NUMBER_INVALID","ERR_CONNECTION_NOT_FOUND","ERR_NO_CONNECTION_AVAILABLE","ERR_UNSUPPORTED_CHANNEL","ERR_NO_TICKET_FOUND","ERR_MISSING_NUMBER","ERR_NUMBER_NOT_ON_WHATSAPP","ERR_WHATSAPP_NOT_FOUND","ERR_NO_CONTACT_FOUND","ERR_NUMBER_IMMUTABLE","ERR_INVALID_TAG_IDS","ERR_INVALID_TAGMODE","ERR_INVALID_DATE_FILTER","ERR_NO_CARD_FOUND","ERR_CONTACT_IDENTIFIER_REQUIRED","ERR_PIPELINE_NOT_FOUND","ERR_STAGE_REQUIRED","ERR_STAGE_NOT_FOUND","ERR_STAGE_NOT_IN_PIPELINE","ERR_SOURCE_NOT_FOUND","ERR_SOURCE_REQUIRED_FOR_STAGE","ERR_FLOW_ID_AND_WHATSAPP_ID_REQUIRED","ERR_VARIABLES_MUST_BE_OBJECT","ERR_FLOW_NOT_FOUND","ERR_FLOW_NOT_EXECUTABLE","ERR_TICKET_IN_HUMAN_SERVICE","ERR_FEATURE_NOT_AVAILABLE","ERR_STORAGE_LIMIT_REACHED","ERR_DUPLICATED_CONTACT","ERR_CONTACT_NUMBER_IS_LID"],"description":"Código estável do erro.","uniqueKey":"code","typeLabel":"enum\u003cstring>"},"retryAfter":{"type":"integer","description":"Só no 429: segundos até poder tentar de novo (igual ao header Retry-After).","uniqueKey":"retryAfter","typeLabel":"integer"},"requiredScope":{"type":"string","description":"Só no 403: escopo que o token não tem.","uniqueKey":"requiredScope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Token sem permissão para esta ação","code":"ERR_SCOPE_MISSING"},"examples":{"Example":{"title":"Example","value":{"error":"Token sem permissão para esta ação","code":"ERR_SCOPE_MISSING"}}},"exampleType":"examples"}},"exampleType":"examples"},"8615f9f6-f5de-4f4a-9f9b-0be8f02794dd":{"description":"`ERR_CONNECTION_NOT_FOUND`: `whatsappId`/`whatsappName` não corresponde a uma conexão desta conta. · `ERR_NO_CONNECTION_AVAILABLE`: A conta não tem conexão padrão ativa. Informe `whatsappId` ou configure a conexão padrão no painel.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"description":"Corpo plano `{ error, code, ...extras }`: extras aparecem na raiz — `retryAfter` (429), `requiredScope` (403), `ticketId` (409), `param` (filtro de data inválido). Não existe objeto `details`.","properties":{"error":{"type":"string","description":"Texto do erro (em ~22 códigos é o próprio código). Não faça match nele; use `code`.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["ERR_TOKEN_MISSING","ERR_TOKEN_INVALID","ERR_TOKEN_REVOKED","ERR_TOKEN_EXPIRED","ERR_SCOPE_MISSING","ERR_RATE_LIMITED","ERR_MISSING_CONTENT","ERR_NUMBER_REQUIRED","ERR_NUMBER_INVALID","ERR_CONNECTION_NOT_FOUND","ERR_NO_CONNECTION_AVAILABLE","ERR_UNSUPPORTED_CHANNEL","ERR_NO_TICKET_FOUND","ERR_MISSING_NUMBER","ERR_NUMBER_NOT_ON_WHATSAPP","ERR_WHATSAPP_NOT_FOUND","ERR_NO_CONTACT_FOUND","ERR_NUMBER_IMMUTABLE","ERR_INVALID_TAG_IDS","ERR_INVALID_TAGMODE","ERR_INVALID_DATE_FILTER","ERR_NO_CARD_FOUND","ERR_CONTACT_IDENTIFIER_REQUIRED","ERR_PIPELINE_NOT_FOUND","ERR_STAGE_REQUIRED","ERR_STAGE_NOT_FOUND","ERR_STAGE_NOT_IN_PIPELINE","ERR_SOURCE_NOT_FOUND","ERR_SOURCE_REQUIRED_FOR_STAGE","ERR_FLOW_ID_AND_WHATSAPP_ID_REQUIRED","ERR_VARIABLES_MUST_BE_OBJECT","ERR_FLOW_NOT_FOUND","ERR_FLOW_NOT_EXECUTABLE","ERR_TICKET_IN_HUMAN_SERVICE","ERR_FEATURE_NOT_AVAILABLE","ERR_STORAGE_LIMIT_REACHED","ERR_DUPLICATED_CONTACT","ERR_CONTACT_NUMBER_IS_LID"],"description":"Código estável do erro.","uniqueKey":"code","typeLabel":"enum\u003cstring>"},"retryAfter":{"type":"integer","description":"Só no 429: segundos até poder tentar de novo (igual ao header Retry-After).","uniqueKey":"retryAfter","typeLabel":"integer"},"requiredScope":{"type":"string","description":"Só no 403: escopo que o token não tem.","uniqueKey":"requiredScope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Conexão informada não encontrada","code":"ERR_CONNECTION_NOT_FOUND"},"examples":{"Example":{"title":"Example","value":{"error":"Conexão informada não encontrada","code":"ERR_CONNECTION_NOT_FOUND"}}},"exampleType":"examples"}},"exampleType":"examples"},"5b406567-dc7a-40ef-8288-6487141964b0":{"description":"`ERR_RATE_LIMITED`: Mais de 120 requisições por minuto com o mesmo token. Aguarde os segundos de `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":true,"description":"Corpo plano `{ error, code, ...extras }`: extras aparecem na raiz — `retryAfter` (429), `requiredScope` (403), `ticketId` (409), `param` (filtro de data inválido). Não existe objeto `details`.","properties":{"error":{"type":"string","description":"Texto do erro (em ~22 códigos é o próprio código). Não faça match nele; use `code`.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["ERR_TOKEN_MISSING","ERR_TOKEN_INVALID","ERR_TOKEN_REVOKED","ERR_TOKEN_EXPIRED","ERR_SCOPE_MISSING","ERR_RATE_LIMITED","ERR_MISSING_CONTENT","ERR_NUMBER_REQUIRED","ERR_NUMBER_INVALID","ERR_CONNECTION_NOT_FOUND","ERR_NO_CONNECTION_AVAILABLE","ERR_UNSUPPORTED_CHANNEL","ERR_NO_TICKET_FOUND","ERR_MISSING_NUMBER","ERR_NUMBER_NOT_ON_WHATSAPP","ERR_WHATSAPP_NOT_FOUND","ERR_NO_CONTACT_FOUND","ERR_NUMBER_IMMUTABLE","ERR_INVALID_TAG_IDS","ERR_INVALID_TAGMODE","ERR_INVALID_DATE_FILTER","ERR_NO_CARD_FOUND","ERR_CONTACT_IDENTIFIER_REQUIRED","ERR_PIPELINE_NOT_FOUND","ERR_STAGE_REQUIRED","ERR_STAGE_NOT_FOUND","ERR_STAGE_NOT_IN_PIPELINE","ERR_SOURCE_NOT_FOUND","ERR_SOURCE_REQUIRED_FOR_STAGE","ERR_FLOW_ID_AND_WHATSAPP_ID_REQUIRED","ERR_VARIABLES_MUST_BE_OBJECT","ERR_FLOW_NOT_FOUND","ERR_FLOW_NOT_EXECUTABLE","ERR_TICKET_IN_HUMAN_SERVICE","ERR_FEATURE_NOT_AVAILABLE","ERR_STORAGE_LIMIT_REACHED","ERR_DUPLICATED_CONTACT","ERR_CONTACT_NUMBER_IS_LID"],"description":"Código estável do erro.","uniqueKey":"code","typeLabel":"enum\u003cstring>"},"retryAfter":{"type":"integer","description":"Só no 429: segundos até poder tentar de novo (igual ao header Retry-After).","uniqueKey":"retryAfter","typeLabel":"integer"},"requiredScope":{"type":"string","description":"Só no 403: escopo que o token não tem.","uniqueKey":"requiredScope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Limite de requisições excedido","code":"ERR_RATE_LIMITED"},"examples":{"Example":{"title":"Example","value":{"error":"Limite de requisições excedido","code":"ERR_RATE_LIMITED"}}},"exampleType":"examples"}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Quantas requisições o token pode fazer por minuto."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Quantas requisições ainda restam na janela atual."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Epoch (segundos) em que a janela de rate limit atual reseta."},"Retry-After":{"schema":{"type":"integer"},"description":"Só no 429: segundos até poder tentar de novo (igual ao campo `retryAfter` do corpo)."}},"exampleType":"examples"}},"security":{"28d7141a-6498-426b-9f89-4308b1c5a861":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Token criado em API → Tokens no painel. Prefixo `wtx_live_` (ou `wtx_test_`).","scopes":[]}}},"servers":{"a81656e0-5b44-4f60-a372-6139898741b5":{"url":"https://{instance}/wapi","description":"Sua instância Whatix","variables":{"instance":{"default":"sua-instancia.whatix.cloud","description":"Domínio da sua instância (sem https://)"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Token criado em API → Tokens no painel. Prefixo `wtx_live_` (ou `wtx_test_`).","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Token criado em API → Tokens no painel. Prefixo `wtx_live_` (ou `wtx_test_`).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/wapi-v1.pt.json"},"subdomain":"whatix","siteName":"Whatix","title":"Enviar mensagem para um número (cria conversa se preciso) - Whatix","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"pt":{"href":"/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","matchLevel":0},"en":{"href":"/en","matchLevel":3},"es":{"href":"/es/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso","matchLevel":1}}},"lastModified":"2026-09-23T14:34:12.683Z","originalFileLocation":"pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso.mdx","locale":"pt"},"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=\"light\"}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 direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: \u0026quot;open\u0026quot;, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Whatix\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_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/whatix/84PBuzFANd1kr4UD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Enviar mensagem para um número (cria conversa se preciso) - Whatix\">\u003cmeta data-mint-head property=\"og:description\" content=\"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: \u0026quot;open\u0026quot;, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Whatix\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://whatix.mintlify.site/_mintlify/api/og/v2?division=Mensagens\u0026amp;title=Enviar+mensagem+para+um+n%C3%BAmero+%28cria+conversa+se+preciso%29\u0026amp;description=Envia+uma+mensagem+direto+pra+um+n%C3%BAmero+de+telefone%2C+criando+o+contato+e+a+conversa+%28ticket%29+automaticamente+quando+ainda+n%C3%A3o+existem.+A+conex%C3%A3o+de+sa%C3%ADda+%C3%A9+esco\u0026amp;theme=97113865b7d9829b5c9409db\u0026amp;signature=c1019eaf4dccebb6a4bcb0c77555eb473e27e6aed63fd3a2151ad1b17a606de4\">\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 para um número (cria conversa se preciso) - Whatix\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: \u0026quot;open\u0026quot;, e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://whatix.mintlify.site/_mintlify/api/og/v2?division=Mensagens\u0026amp;title=Enviar+mensagem+para+um+n%C3%BAmero+%28cria+conversa+se+preciso%29\u0026amp;description=Envia+uma+mensagem+direto+pra+um+n%C3%BAmero+de+telefone%2C+criando+o+contato+e+a+conversa+%28ticket%29+automaticamente+quando+ainda+n%C3%A3o+existem.+A+conex%C3%A3o+de+sa%C3%ADda+%C3%A9+esco\u0026amp;theme=97113865b7d9829b5c9409db\u0026amp;signature=c1019eaf4dccebb6a4bcb0c77555eb473e27e6aed63fd3a2151ad1b17a606de4\">\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/whatix/84PBuzFANd1kr4UD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Whatix\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5ba240\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.whatix.com.br/es/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.whatix.com.br/#organization\",\"name\":\"Whatix\",\"url\":\"https://docs.whatix.com.br\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/whatix/Vug4rfKX3rb30lbJ/logo/light.svg?fit=max\u0026auto=format\u0026n=Vug4rfKX3rb30lbJ\u0026q=85\u0026s=e641de8c3d7963baf33174a0f7997ec8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.whatix.com.br#website\",\"name\":\"Whatix\",\"url\":\"https://docs.whatix.com.br\",\"publisher\":{\"@id\":\"https://docs.whatix.com.br/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso#webpage\",\"url\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso\",\"name\":\"Enviar mensagem para um número (cria conversa se preciso)\",\"description\":\"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: \\\"open\\\", e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.\",\"dateModified\":\"2026-09-23T14:34:12.683Z\",\"isPartOf\":{\"@id\":\"https://docs.whatix.com.br#website\"},\"breadcrumb\":{\"@id\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Referência\",\"item\":\"https://docs.whatix.com.br/pt/referencia/conversas/listar-conversas\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mensagens\",\"item\":\"https://docs.whatix.com.br/pt/referencia/mensagens/listar-mensagens-de-uma-conversa\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enviar mensagem para um número (cria conversa se preciso)\",\"item\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso#apireference\",\"headline\":\"Enviar mensagem para um número (cria conversa se preciso)\",\"name\":\"Enviar mensagem para um número (cria conversa se preciso)\",\"description\":\"Envia uma mensagem direto pra um número de telefone, criando o contato e a conversa (ticket) automaticamente quando ainda não existem. A conexão de saída é escolhida nesta ordem: whatsappId, se informado; senão whatsappName; senão a conexão padrão configurada na sua conta (não por token); senão a primeira conexão whatsapp/waba CONECTADA da sua conta, pelo menor id; senão a primeira conexão whatsapp/waba existente, pelo menor id (o campo isDefault de /v1/connections não entra nessa escolha). Envie pelo menos um entre body, medias (multipart) ou templateData; fora da janela de 24h do WABA só templates aprovados são entregues. contactName só é usado se o contato for criado agora. Com saveOnTicket=false o envio é feito à parte do fluxo normal de atendimento (fire-and-forget), mas em conexões WABA o ticket criado/reaproveitado é um ticket normal, status: \\\"open\\\", e aparece no painel igual a qualquer outra conversa — não é invisível. Nesse modo, medias é ignorado (só body/templateData chegam ao envio) e o id de cada mensagem no retorno pode vir null. O status de cada mensagem no retorno pode ser queued, sent, server_ack, delivered, read, failed, received ou unknown. Número ausente devolve 400 ERR_NUMBER_REQUIRED; número sem dígitos válidos, 400 ERR_NUMBER_INVALID; nenhum conteúdo, 400 ERR_MISSING_CONTENT; conexão informada que não existe na sua conta, 404 ERR_CONNECTION_NOT_FOUND; nenhuma conexão disponível, 404 ERR_NO_CONNECTION_AVAILABLE; conexão de canal diferente de whatsapp/waba, 400 ERR_UNSUPPORTED_CHANNEL. Requer escopo messages:send.\",\"url\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso\",\"mainEntityOfPage\":{\"@id\":\"https://docs.whatix.com.br/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso#webpage\"},\"dateModified\":\"2026-09-23T14:34:12.683Z\",\"publisher\":{\"@id\":\"https://docs.whatix.com.br/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.whatix.com.br#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Whatix\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Whatix\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/pt/referencia/mensagens/enviar-mensagem-para-um-n%C3%BAmero-cria-conversa-se-preciso.md","siteName":"Whatix","nav":{"global":null,"languages":[{"language":"pt","groups":[{"group":"Início","pages":[{"title":"Documentação da API do Whatix","href":"/pt"},{"title":"Comece em 5 minutos","href":"/pt/quickstart"},{"title":"Autenticação","href":"/pt/autenticacao"},{"title":"Erros e limites","href":"/pt/erros-e-limites"},{"title":"Paginação e filtros","href":"/pt/paginacao-e-filtros"},{"title":"Números de telefone","href":"/pt/numeros-de-telefone"},{"title":"Sua instância","href":"/pt/sua-instancia"},{"title":"Changelog","href":"/pt/changelog"}]},{"group":"Guias","pages":[{"title":"Enviar mensagens","href":"/pt/guias/enviar-mensagens"},{"title":"Conversas e mensagens","href":"/pt/guias/conversas-e-mensagens"},{"title":"Contatos e tags","href":"/pt/guias/contatos-e-tags"},{"title":"Cards e pipelines","href":"/pt/guias/cards-e-pipelines"},{"title":"Disparar flows","href":"/pt/guias/disparar-flows"},{"title":"Webhooks de entrada","href":"/pt/guias/webhooks-de-entrada"},{"title":"Receita: n8n","href":"/pt/guias/receita-n8n"}]},{"group":"Referência","pages":[{"group":"Conversas","pages":[{"title":"Listar conversas","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/conversations","href":"/pt/referencia/conversas/listar-conversas"}]},{"group":"Mensagens","pages":[{"title":"Listar mensagens de uma conversa","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/conversations/{ticketId}/messages","href":"/pt/referencia/mensagens/listar-mensagens-de-uma-conversa"},{"title":"Enviar mensagem numa conversa existente","description":"Responde numa conversa (ticket) já aberta, usando a mesma conexão do ticket. Envie pelo menos um entre `body` (texto), `medias` (multipart, um ou mais arquivos) ou `templateData` (template aprovado, obrigatório fora da janela de 24h do WABA — depois que o contato responde, a janela reabre por mais 24h; sem isso, apenas templates aprovados são entregues). Use `quotedMsgId` pra responder citando uma mensagem anterior daquela conversa. Nenhum conteúdo enviado devolve 400 ERR_MISSING_CONTENT; `ticketId` inexistente ou de outra conta devolve 404 ERR_NO_TICKET_FOUND. Requer escopo `messages:send`.","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/conversations/{ticketId}/messages","href":"/pt/referencia/mensagens/enviar-mensagem-numa-conversa-existente"},{"title":"Enviar mensagem para um número (cria conversa se preciso)","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/messages/send","href":"/pt/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso"},{"title":"Consultar status de entrega de uma mensagem","description":"Consulta o status de entrega de uma mensagem específica pelo id (wamid ou uuid interno) devolvido no envio. O campo `ack` vem cru do WhatsApp: 0 pendente, 1 enviada, 2 recebida pelo servidor, 3 entregue, 4 lida, 5 falhou. Use o `status` (queued, sent, server_ack, delivered, read, failed, received, unknown) em vez de interpretar o `ack` na mão. Faça polling até chegar em `read` (ou `failed`) se precisar confirmar a entrega. Enquanto a mensagem ainda não existe no seu histórico (por exemplo, um envio muito recente), a resposta continua 200 com `found: false` — não é erro, tente de novo em alguns segundos. Requer escopo `messages:read`.","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/messages/{messageId}/status","href":"/pt/referencia/mensagens/consultar-status-de-entrega-de-uma-mensagem"}]},{"group":"Conexões","pages":[{"title":"Listar conexões (canais) da sua conta","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/connections","href":"/pt/referencia/conexões/listar-conexões-canais-da-sua-conta"}]},{"group":"Contatos","pages":[{"title":"Listar contatos","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/contacts","href":"/pt/referencia/contatos/listar-contatos"},{"title":"Criar ou atualizar contato por número (upsert)","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/contacts","href":"/pt/referencia/contatos/criar-ou-atualizar-contato-por-número-upsert"},{"title":"Consultar contato por ID","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/contacts/{contactId}","href":"/pt/referencia/contatos/consultar-contato-por-id"},{"title":"Atualizar contato","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json put /v1/contacts/{contactId}","href":"/pt/referencia/contatos/atualizar-contato"},{"title":"Sincronizar tags do contato","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json put /v1/contacts/{contactId}/tags","href":"/pt/referencia/contatos/sincronizar-tags-do-contato"},{"title":"Listar tags da sua conta","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/tags","href":"/pt/referencia/contatos/listar-tags-da-sua-conta"}]},{"group":"Cards","pages":[{"title":"Listar cards","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/cards","href":"/pt/referencia/cards/listar-cards"},{"title":"Criar card","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/cards","href":"/pt/referencia/cards/criar-card"},{"title":"Consultar card por ID","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/cards/{cardId}","href":"/pt/referencia/cards/consultar-card-por-id"},{"title":"Mover card de etapa","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json patch /v1/cards/{cardId}/stage","href":"/pt/referencia/cards/mover-card-de-etapa"},{"title":"Listar pipelines e suas etapas","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/pipelines","href":"/pt/referencia/cards/listar-pipelines-e-suas-etapas"},{"title":"Listar motivos de perda","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json get /v1/lost-reasons","href":"/pt/referencia/cards/listar-motivos-de-perda"}]},{"group":"Flows","pages":[{"title":"Disparar um flow do FlowBuilder para um número","deprecated":null,"version":null,"openapi":"/openapi/wapi-v1.pt.json post /v1/flows/trigger","href":"/pt/referencia/flows/disparar-um-flow-do-flowbuilder-para-um-número"}]}]}]},{"language":"en","pages":[{"title":"en","href":"/en"}]},{"language":"es","pages":[{"title":"es","href":"/es/referencia/mensagens/enviar-mensagem-para-um-número-cria-conversa-se-preciso"}]}]},"basePath":"","title":"Enviar mensagem para um número (cria conversa se preciso) - Whatix","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}