🪝

Webhooks e Retornos – BarberBot

Documentação dos webhooks de pagamento e mensageria • atualizado em 13/01/2026

O BarberBot recebe retornos externos por webhook para automatizar baixa de pagamentos e interpretar respostas via WhatsApp/mensageria. Os arquivos encontrados no projeto são:

💳 Webhook Mercado Pago — pagamentos/webhook.php

URL e método

Parâmetros recebidos

ParâmetroObrigatórioDescrição
topicsimTipo de notificação (no BarberBot o foco é payment).
idsimID do pagamento no Mercado Pago.
typenãoAlias de topic (em alguns setups).

O que o script faz (lógica real)

  1. Carrega pagamentos/config.php (tokens, flags) e ../sistema/conexao.php (PDO e config do sistema).
  2. Consulta o pagamento no MP via API:
    • GET https://api.mercadopago.com/v1/payments/{id} usando Authorization: Bearer {access_token}
  3. Lê o status retornado (approved, pending, cancelled etc.).
  4. Se approved:
    • Identifica a conta interna pela referência (o script atualiza/reforça ref_pix em receber quando necessário).
    • Se a conta ainda não estiver marcada como paga, chama baixar_conta.php para dar baixa.
  5. Responde JSON simples para o MP e logs do servidor.

Resposta (JSON)

{"status":"pago"}
{"status":"pending"}

Dependências diretas

📲 Retorno WhatsApp / Mensageria — ajax/retorno.php e ajax/retornoMenuia.php

URL e método

Payload esperado (chaves encontradas no código)

ChaveTipoDescrição
tipostringTipo de retorno. Controla o fluxo de confirmação/cancelamento.
idAgendamentoint/stringID do agendamento afetado.
mensagemstringTexto enviado pelo cliente (resposta no WhatsApp).
remetentestringNúmero do remetente (cliente).
destinatariostringNúmero do destinatário (instância/sistema).

Exemplo de JSON

{
  "tipo": "retorno",
  "idAgendamento": 123,
  "mensagem": "1",
  "remetente": "11999999999",
  "destinatario": "5511999999999"
}

O que esses scripts fazem

Quando usar retorno.php vs retornoMenuia.php

🔒 Segurança (obrigatório)

🧪 Checklist de teste

  1. Configurar URL do MP para apontar para /pagamentos/webhook.php.
  2. Realizar pagamento teste e confirmar se o MP chama o webhook.
  3. Confirmar no banco a baixa (tabela receber com pago=Sim).
  4. Simular retorno de mensageria fazendo POST com JSON para /ajax/retorno.php.