{"openapi":"3.0.3","info":{"title":"Rita — API de mensagens","version":"2.0.0","description":"Uma instância, uma chave. Conecte o WhatsApp do cliente, consulte conversas e envie textos, imagens, áudios, vídeos e arquivos. Use sua chave em Authorize; a organização é identificada automaticamente. Eventos e envio por Socket.IO estão documentados no Guia, dentro de Integrações. As operações executadas aqui são reais."},"servers":[{"url":"https://rita.madevconsultoria.com.br/rita/v1"}],"security":[{"BearerKey":[]}],"components":{"securitySchemes":{"BearerKey":{"type":"http","scheme":"bearer","description":"Cole a chave da instância fornecida pelo administrador. É a mesma usada no login do cliente."}},"schemas":{"TextMessage":{"type":"object","required":["to","type","text"],"properties":{"to":{"type":"string","example":"5511999999999"},"type":{"type":"string","enum":["text"]},"text":{"type":"string","maxLength":10000,"example":"Sua mensagem"}}},"MediaMessage":{"type":"object","required":["to","type","base64","mimeType"],"properties":{"to":{"type":"string","example":"5511999999999"},"type":{"type":"string","enum":["image","audio","document","video"]},"base64":{"type":"string","description":"Arquivo em base64 puro, até 16 MB decodificados. URLs e prefixos data: não são aceitos."},"mimeType":{"type":"string","example":"image/jpeg"},"fileName":{"type":"string","example":"foto.jpg"},"caption":{"type":"string","description":"Legenda para imagem, vídeo ou documento."}}},"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WHATSAPP_NOT_CONNECTED"},"message":{"type":"string"},"details":{"type":"object","properties":{"instanceName":{"type":"string"},"state":{"type":"string"},"connectEndpoint":{"type":"string","format":"uri"}}}}}}}}},"paths":{"/platform/instances":{"post":{"summary":"Provisionar WhatsApp de uma conta da plataforma","tags":["Plataformas"],"operationId":"post_platform_instances","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceId","name"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":80}}}}}},"description":"Somente credenciais habilitadas como plataforma. Cada workspaceId reutiliza sua própria instância; retorna instanceName e apiKey específica, exclusivamente para armazenamento no backend. Nunca devolva essas chaves ao navegador."}},"/connection":{"get":{"summary":"Consultar o WhatsApp da organização","tags":["Conexão"],"operationId":"get_connection","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/contacts/{number}/photo":{"get":{"summary":"Consultar foto de perfil do contato","tags":["Contatos"],"operationId":"get_contacts__number__photo","parameters":[{"name":"number","in":"path","required":true,"schema":{"type":"string"},"description":"Número com DDI ou JID do contato, incluindo @lid. A chave determina a instância."}],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Retorna {url, available}. url é HTTPS ou null quando o provedor não disponibiliza a foto. Respeita a visibilidade da foto no WhatsApp; não garante foto para todo contato. A sessão deve estar conectada."}},"/connection/clear-history":{"post":{"summary":"Desconectar e excluir histórico importado","tags":["Conexão"],"operationId":"post_connection_clear_history","parameters":[],"responses":{"200":{"description":"Sucesso"},"202":{"description":"Exclusão iniciada, aguardando a limpeza da fila","content":{"application/json":{"schema":{"type":"object","properties":{"cleared":{"type":"boolean","enum":[false]},"operationId":{"type":"string","format":"uuid"}}}}}},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["operationId","confirmation"],"properties":{"operationId":{"type":"string","format":"uuid","description":"Identificador da operação; reutilize nas tentativas da mesma exclusão."},"confirmation":{"type":"string","enum":["DELETE_IMPORTED_HISTORY"]}}}}}},"description":"Somente a chave específica de uma conta integrada. Desconecta e remove o histórico da instância no conector e sua fila de eventos, preservando a chave de acesso. Não apaga mensagens no celular. A exclusão é irreversível. Repita com o mesmo operationId até cleared=true; não gere outra operação para uma tentativa interrompida. A plataforma consumidora deve pausar a ingestão e excluir seu histórico local somente após esta confirmação."}},"/connection/connect":{"post":{"summary":"Criar ou reutilizar a instância e obter QR Code","tags":["Conexão"],"operationId":"post_connection_connect","parameters":[],"responses":{"200":{"description":"QR disponível ou WhatsApp já conectado","content":{"application/json":{"schema":{"type":"object","properties":{"instanceName":{"type":"string"},"state":{"type":"string","enum":["open","close","connecting"]},"connected":{"type":"boolean"},"base64":{"type":"string","nullable":true,"description":"data:image/png;base64,… para src de uma imagem"},"qrCode":{"type":"object","properties":{"base64":{"type":"string","nullable":true},"code":{"type":"string","nullable":true}}},"refreshAfterSeconds":{"type":"integer","example":20}}}}}},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"O administrador cadastra o cliente e fornece sua chave. Esta chamada provisiona a única instância permitida, se ainda não existir, ou reutiliza a existente. Não aceita criar instâncias adicionais nem escolher outro cliente. Retorna QR em qrCode.base64 e base64 para que sua plataforma exiba a imagem. Acompanhe qrcode.updated e connection.update por Socket.IO; repita a chamada conforme refreshAfterSeconds enquanto pendente. Se connected=true, o número já está pareado. O titular escaneia o QR em WhatsApp > Aparelhos conectados. Não conecte a conta de outra pessoa."}},"/connection/receiver":{"post":{"summary":"Registrar recebimento contínuo na Isa","tags":["Conexão"],"operationId":"post_connection_receiver","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceId","connectionId","sinkUrl","signingKey"],"properties":{"workspaceId":{"type":"string","format":"uuid"},"connectionId":{"type":"string","format":"uuid"},"sinkUrl":{"type":"string","format":"uri","description":"Somente o receptor Isa autorizado para a conexão."},"signingKey":{"type":"string","minLength":32,"maxLength":256,"writeOnly":true},"enabled":{"type":"boolean","default":true}}}}}},"description":"Integração server-to-server opcional da Isa. A mesma chave de cliente vincula somente uma conta/conexão; não cria clientes nem permite destinos arbitrários. Nunca chamar pelo frontend ou expor o segredo de assinatura. Na Isa este registro é automático."}},"/connection/disconnect":{"post":{"summary":"Desconectar o WhatsApp","tags":["Conexão"],"operationId":"post_connection_disconnect","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Encerra o pareamento. Não exclui a organização nem cria outra instância. Será necessário ler um novo QR."}},"/connection/restart":{"post":{"summary":"Reiniciar a conexão do WhatsApp","tags":["Conexão"],"operationId":"post_connection_restart","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Reinicia a conexão da própria organização. Pode ficar brevemente indisponível. Aguarde envios em andamento antes de reiniciar."}},"/connection/preferences":{"get":{"summary":"Consultar preferências da conexão","tags":["Conexão"],"operationId":"get_connection_preferences","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"summary":"Atualizar preferências da conexão","tags":["Conexão"],"operationId":"patch_connection_preferences","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"rejectCall":{"type":"boolean","description":"Recusar chamadas de voz recebidas."},"groupsIgnore":{"type":"boolean","description":"Ignorar mensagens e eventos de grupos."},"readMessages":{"type":"boolean","description":"Marcar automaticamente mensagens recebidas como lidas."}}}}}}}},"/contacts/resolve":{"post":{"summary":"Validar número e obter o identificador canônico","tags":["Leitura"],"operationId":"post_contacts_resolve","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["number"],"properties":{"number":{"type":"string","description":"DDI, DDD e número, sem pontuação."}}}}}},"description":"Não envia mensagens. Requer WhatsApp conectado e retorna exists e jid. Use o jid retornado para abrir a conversa; RECIPIENT_NOT_ON_WHATSAPP indica número não encontrado."}},"/chats":{"get":{"summary":"Listar conversas sincronizadas","tags":["Leitura"],"operationId":"get_chats","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/contacts":{"get":{"summary":"Listar contatos sincronizados","tags":["Leitura"],"operationId":"get_contacts","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/messages":{"get":{"summary":"Ler mensagens de uma conversa","tags":["Leitura"],"operationId":"get_messages","parameters":[{"name":"chat","in":"query","required":true,"schema":{"type":"string","example":"5511999999999@s.whatsapp.net"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}}],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"summary":"Enviar texto, imagem, áudio, documento ou vídeo","tags":["Envio"],"operationId":"post_messages","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Identificador único por mensagem, de 8 a 128 caracteres. Reutilize somente ao repetir a mesma operação.","schema":{"type":"string","example":"message-20261017-001"}}],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TextMessage"},{"$ref":"#/components/schemas/MediaMessage"}]}}}},"description":"Envia uma mensagem real ao destinatário informado. Limite de 60 envios/minuto por organização. A aceitação pelo servidor não garante entrega no telefone. Consulte messages.update. Respostas 502/504 podem representar envio sem confirmação: consulte a conversa antes de tentar outra identificação."}},"/media/download":{"post":{"summary":"Obter base64 de mídia recebida","tags":["Leitura"],"operationId":"post_media_download","parameters":[],"responses":{"200":{"description":"Sucesso"},"400":{"description":"Dados inválidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Chave inválida ou revogada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"INSTANCE_SCOPE_MISMATCH: a chave não permite acessar outra instância","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"WHATSAPP_NOT_CONNECTED: conecte o número por QR antes de ler/enviar mensagens; ou conflito de idempotência","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Limite de solicitações atingido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"502":{"description":"WhatsApp indisponível ou resposta não confirmada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"504":{"description":"Tempo esgotado; confira o resultado antes de repetir um envio","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messageId"],"properties":{"messageId":{"type":"string","description":"key.id de uma mensagem da própria organização"}}}}}}}}}}