Integrações BR

Como mockar webhook do Mercado Pago

Simule notificações de pagamento Pix, boleto e cartão sem precisar de conta no Mercado Pago

O problema: testar pagamentos sem pagar

Integrar com o Mercado Pago envolve webhooks — notificações HTTP que o MP dispara quando um pagamento muda de status. O problema é que, em desenvolvimento, você não quer depender da infraestrutura do MP para testar seu código. Cada teste exige uma transação real ou um ambiente de sandbox com configurações específicas.

Com o httpdrop você cria um endpoint que simula exatamente o payload que o Mercado Pago enviaria — e também recebe as notificações do seu sistema para inspecioná-las em tempo real.

Arquitetura da solução

Seu backend
→ POST /webhook
httpdrop
simula o MP + inspeciona respostas
Seu handler
código de negócio

Passo 1 — Crie o endpoint e aplique o template

  1. 1
    Crie um novo endpoint no httpdrop. Na aba Templates, selecione "Mercado Pago". O sistema cria automaticamente as rotas POST /v1/payments, GET /v1/payments/{id}, POST /webhook/payment e uma tabela CRUD de transações com 5 registros de seed.
  2. 2
    Copie a URL do endpoint: https://httpdrop.com/mock/SEU_ID

Passo 2 — Simule notificações de pagamento

O payload real de webhook do Mercado Pago tem esta estrutura:

{
  "action": "payment.updated",
  "api_version": "v1",
  "data": { "id": "123456789" },
  "date_created": "2026-05-20T10:30:00Z",
  "id": 987654321,
  "live_mode": false,
  "type": "payment",
  "user_id": "123456"
}

Crie uma Mock Rule no seu endpoint para a rota POST /webhook/mercadopago retornando {"received": true} com status 200. Depois configure seu sistema para enviar webhooks para este endpoint — toda notificação aparecerá no inspector em tempo real.

Passo 3 — Teste os diferentes status de pagamento

Use Sequence Rules para simular o ciclo completo de um pagamento:

1ª chamada → pending — Pagamento criado, aguardando confirmação do Pix.
2ª chamada → approved — Pix confirmado, status_detail: "accredited".
3ª chamada → rejected — Saldo insuficiente, status_detail: "cc_rejected_insufficient_amount".

Configure as sequences na aba Rules → New Rule → Type: Sequence. Cada GET para /v1/payments/{id} retornará um status diferente, permitindo testar todo o fluxo do seu sistema.

Passo 4 — Inspecione as notificações em tempo real

Com o inspector do httpdrop aberto (aba Requests), faça seu sistema enviar um webhook para o endpoint. Você verá:

  • Headers de autenticação (X-Signature do MP)
  • Body completo com o evento de pagamento
  • Latência de resposta do seu handler
  • Status HTTP retornado (o MP espera 200)

Validação de assinatura (X-Signature)

O Mercado Pago assina os webhooks com HMAC-SHA256. Para testar seu código de validação sem precisar do MP real, crie uma Mock Rule que inclua o header x-signature com um valor fixo — e configure sua aplicação para usar a mesma chave secreta de teste.

💡
Dica CI/CD: No seu pipeline, defina a variável MP_WEBHOOK_URL apontando para o endpoint httpdrop. Seus testes de integração vão simular todo o ciclo de pagamento automaticamente — sem depender de sandbox do MP.

Comandos curl para testar

# Simula aprovação de pagamento Pix
curl -X POST https://httpdrop.com/mock/SEU_ID/v1/payments \
  -H "Content-Type: application/json" \
  -d '{"transaction_amount": 150.00, "payment_method_id": "pix"}'

# Consulta status do pagamento
curl https://httpdrop.com/mock/SEU_ID/v1/payments/123

# Simula webhook recebido do MP (seu backend deve processar isso)
curl -X POST SEU_BACKEND/webhook/mercadopago \
  -H "Content-Type: application/json" \
  -H "x-signature: ts=1716220800,v1=abc123" \
  -d '{"action":"payment.updated","data":{"id":"123"},"type":"payment"}'
Pronto para implementar? Consulte a documentação técnica completa com referência de API, exemplos de código e parâmetros detalhados.
Ver documentação →