Enviar mensagens interativas por conectores do WhatsApp pela API
Escolha o contrato de Baileys ou UazAPI e envie respostas, listas, chamadas para ação, Pix e outras interações sem misturar tecnologias.
Antes de começar
- API ativa e ticket fictício de um conector compatível
- Tipo da sessão confirmado na listagem de canais
- Dados de pagamento de homologação aprovados, controlados e sem cliente real
Separar Baileys de UazAPI
As famílias sendInteractive/baileys e sendInteractive/uazapi possuem corpos diferentes. O fato de uma interação funcionar em um conector não confirma suporte no outro. Identifique a tecnologia da sessão e use somente a rota correspondente.

- 1
Liste sessões e consulte o ticket de teste.
- 2
Confirme que ticketId e sessão pertencem à mesma conexão.
- 3
Escolha a família baileys ou uazapi sem adaptar nomes de campos.
- 4
Envie a interação mínima e confira o resultado no ticket.

Usar respostas rápidas e seleção única no Baileys
A base completa das operações é /v2/api/external/{ApiID}/sendInteractive/baileys/.
- POST .../sendInteractive/baileys/quickReply publica ticketId:number, body.text:string, footer.text:string e buttons[].
- Cada item de buttons[] publica display_text:string e id:string.
- POST .../sendInteractive/baileys/singleSelect publica ticketId:number, body.text:string, footer.text:string e list.
- list publica title:string e sections[]; cada seção publica title:string e rows[].
- Cada item de rows[] publica id, title e description como strings.
Usar Pix e chamadas para ação no Baileys
- pixButton publica ticketId:number e pixType, pixKey, pixName e bodyText como strings; não publica valor.
- ctaCopy publica ticketId:number, body.text:string, footer.text:string, displayText:string e copyCode:string.
- ctaUrl publica ticketId:number, body.text:string, footer.text:string, displayText:string e url:string.
- ctaCall publica ticketId:number, body.text:string, footer.text:string, displayText:string e phoneNumber:string.
- 1
Teste primeiro um CTA sem efeito financeiro, em ticket controlado.
- 2
Valide rótulo, código, URL ou telefone antes de enviar.
- 3
Para Pix, use uma chave de homologação aprovada e controlada e não registre pixKey completa.
- 4
Confirme a renderização e a ação do botão no dispositivo de teste.
Escolher a interação UazAPI
A base completa das operações é /v2/api/external/{ApiID}/sendInteractive/uazapi/.
- button publica ticketId:number, text:string, choices:string[], footerText:string e imageButton:string.
- list publica ticketId:number, text:string, choices:string[], listButton:string e footerText:string.
- poll publica ticketId:number, text:string, choices:string[] e selectableCount:number.
- carousel publica ticketId:number, text:string e carousel[]; cada cartão publica text:string, image:string e buttons[]; cada botão publica somente text:string e type:string, sem destino ou enum documentado.
- pixButton publica ticketId:number e pixType, pixKey e pixName como strings; não publica valor.
- locationButton publica somente ticketId:number e text:string; coordenadas e estrutura da resposta não são documentadas.
- requestPayment publica ticketId:number, amount:number e title, text, footer, itemName, invoiceNumber, pixType, pixKey e pixName como strings.
Homologar e resolver falhas

- Rota incompatível: confirme se a sessão é Baileys ou UazAPI.
- Ticket rejeitado: consulte novamente ticketId, sessão e credencial.
- Botão ignorado: revise o nome exato do campo e a estrutura aninhada.
- Recurso não renderiza: confirme suporte e limites da versão do conector.
- Pix ou pagamento falha: interrompa o fluxo; não tente outro tipo arbitrário nem repita a solicitação.
- Timeout: reconcilie o histórico do ticket antes de reenviar.
Se ainda houver dúvida, continue pelos artigos relacionados abaixo.
