sendMessageByTicket permite que você responda a qualquer conversa usando apenas o ID do ticket, sem precisar saber o canal subjacente ou o identificador do destinatário. Também é a única forma de enviar mensagens para conversas do Webchat e do Mercado Livre, que não possuem número de telefone endereçável nem ID externo persistente.
Visão Geral
Quando você já tem umticketId vindo de um payload de webhook ou de uma chamada de API anterior, não precisa saber o canal subjacente — o endpoint sendMessageByTicket resolve o canal automaticamente e roteia a mensagem para a conversa correta.
Esta também é a única forma de enviar mensagens para conversas do Webchat e do Mercado Livre, já que esses canais não possuem número de telefone ou identificador persistente que você possa endereçar diretamente.
URL Base
Conceitos-Chave
reopen
Se o ticket estiver fechado no momento, você deve definir reopen: true para reabri-lo antes que a mensagem possa ser entregue. Enviar para um ticket fechado sem essa flag retorna um erro 409 ERR_TICKET_CLOSED.
isClosed
Defina isClosed: true para fechar automaticamente o ticket imediatamente após o envio da mensagem — útil para enviar uma resposta final e arquivar a conversa na mesma requisição.
Janela de Idempotência do externalKey
Se o mesmo valor de externalKey for enviado duas vezes dentro de 120 segundos, a segunda chamada é tratada como duplicada. Em vez de enviar novamente, a API retorna:
Uma Única Fonte de Mídia por Requisição
Cada requisição pode incluir no máximo uma das seguintes opções:media— um arquivo enviado comomultipart/form-datamediaUrl— uma URL de acesso público apontando para o arquivobase64Data— o conteúdo do arquivo codificado como uma string base64
Regras do mediaUrl
- Deve usar o esquema
httpouhttps. - Redirecionamentos não são seguidos.
- Hosts internos, privados ou loopback são bloqueados.
Enviar uma Mensagem de Texto
Responda a uma conversa aberta com uma mensagem de texto simples.Request
integer
obrigatório
O ID do ticket (conversa) no qual a mensagem será enviada.
string
obrigatório
O conteúdo de texto da mensagem.
string
Chave de idempotência única gerada pelo seu sistema. A janela de deduplicação é de 120 segundos.
boolean
padrão:"false"
Defina como
true para reabrir um ticket fechado antes de enviar. Obrigatório se o ticket não estiver atualmente aberto ou pendente.boolean
padrão:"false"
Defina como
true para fechar o ticket imediatamente após o envio da mensagem.Enviar um Arquivo via URL
Envie um arquivo de uma URL publicamente hospedada para um ticket existente.Request
integer
obrigatório
O ID do ticket de destino.
string
obrigatório
URL de acesso público do arquivo. Deve usar
http ou https. Redirecionamentos e hosts privados não são permitidos.string
Legenda opcional para acompanhar o arquivo.
string
Chave de idempotência única gerada pelo seu sistema.
boolean
padrão:"false"
Reabre o ticket antes de enviar, caso esteja fechado no momento.
boolean
padrão:"false"
Fecha o ticket após o envio.
Enviar um Arquivo em Base64
Envie um arquivo codificado em base64 diretamente no corpo da requisição — sem necessidade de hospedagem externa.Request
integer
obrigatório
O ID do ticket de destino.
string
obrigatório
O conteúdo do arquivo codificado como uma string base64.
string
obrigatório
Tipo MIME do arquivo — por exemplo,
image/png, application/pdf.string
obrigatório
Nome do arquivo sem extensão — por exemplo,
screenshot.string
Legenda opcional para acompanhar o arquivo.
string
Chave de idempotência única gerada pelo seu sistema.
boolean
padrão:"false"
Reabre o ticket antes de enviar, caso esteja fechado no momento.
boolean
padrão:"false"
Fecha o ticket após o envio.
Enviar um Arquivo via Multipart
Envie um arquivo diretamente do seu sistema usando uma requisiçãomultipart/form-data para o mesmo endpoint.
Resposta de Sucesso
Obtendo um ticketId a partir de Webhooks
A forma mais confiável de obter um ticketId é configurar um webhook no seu canal. Quando uma nova mensagem chega, o PanÐá Zap envia (POST) um payload para o seu endpoint que inclui o ID do ticket para todos os tipos de canal — incluindo e-mail.
Para ativar os webhooks:
- Vá para Administração → Canais.
- Selecione o canal e clique em Editar.
- Ative a chave Webhook.
- Defina sua URL do Webhook.
- Ative Mensagens Recebidas.
ticket.id de cada webhook recebido para usar com sendMessageByTicket quando precisar responder a essa conversa.
