Webhooks
Os webhooks permitem que você receba notificações em tempo real sobre eventos que ocorrem na plataforma MisesPay. Quando um evento é disparado, enviamos uma requisição HTTP POST para a URL configurada no seu portal.
Configuração
O cadastro e gerenciamento dos webhooks é feito diretamente no Portal MisesPay. Acesse a seção de configurações para registrar suas URLs de webhook e escolher quais eventos deseja receber.
Segurança
Todas as requisições de webhook incluem uma assinatura HMAC SHA-256 no header X-Webhook-Signature para que você possa validar a autenticidade da requisição.
Formato dos Dados
- Método: POST
- Content-Type: application/json
- Formato de Data: ISO 8601
- Moeda: BRL (Real Brasileiro)
- Valores: String com 2 casas decimais (ex: "100.00")
- Valores em Centavos: Integer (ex: 10000 = R$ 100,00)
Eventos de Vendas
sale.created
Disparado quando uma venda é criada (PIX gerado, cartão processando).
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"status": "pending",
"payment_method": "pix",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"phone": "+5511999999999",
"document": "12345678900",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"payment": {
"method": "pix",
"provider": "pagarme"
},
"order_bumps": [
{
"id": "uuid-do-bump",
"name": "Order Bump Premium",
"amount": "50.00"
}
],
"additional_data": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "black-friday",
"utm_term": "produto",
"utm_content": "anuncio-1",
"query_params": {},
"ip_address": "192.168.1.1",
"user_agent": "Mozilla/5.0...",
"fbc": "fb.1.123456789.AbCdEfGh",
"fbp": "_fbp.1.123456789.987654321",
"ttclid": "tiktok-click-id",
"kclickid": "kwai-click-id",
"ga_client_id": "GA1.1.123456789.987654321"
},
"expires_at": "2025-01-08T18:30:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z"
}sale.confirmed
Disparado quando o pagamento é confirmado (PIX pago, cartão aprovado).
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"net_amount": "95.00",
"fee_amount": "5.00",
"currency": "BRL",
"status": "paid",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"phone": "+5511999999999",
"document": "12345678900",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"payment": {
"method": "pix",
"provider": "pagarme",
"transaction_id": "txn_abc123",
"e2e_id": "E12345678202501081800abcdefgh"
},
"order_bumps": [
{
"id": "uuid-do-bump",
"name": "Order Bump Premium",
"amount": "50.00"
}
],
"additional_data": {
"utm_source": "google",
"utm_medium": "cpc"
},
"paid_at": "2025-01-08T18:15:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z"
}sale.expired
Disparado quando a venda expira sem pagamento.
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"order_bumps": [
{
"id": "uuid-do-bump",
"name": "Order Bump Premium",
"amount": "50.00"
}
],
"additional_data": {
"utm_source": "google"
},
"expired_at": "2025-01-08T19:00:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z"
}sale.failed
Disparado quando a venda falha (cartão recusado, erro no processamento).
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"status": "failed",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"payment": {
"method": "credit_card",
"provider": "pagarme"
},
"failure": {
"reason": "Cartão sem limite disponível",
"code": "1016"
},
"order_bumps": [],
"additional_data": {},
"created_at": "2025-01-08T18:00:00.000Z"
}sale.refunded
Disparado quando uma venda é reembolsada.
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"payment": {
"method": "credit_card",
"provider": "pagarme",
"transaction_id": "txn_abc123"
},
"order_bumps": [],
"additional_data": {},
"refunded_at": "2025-01-10T10:00:00.000Z",
"paid_at": "2025-01-08T18:15:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z"
}sale.chargeback
Disparado quando há um chargeback (contestação) na venda.
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "João Silva",
"document": "12345678900"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"payment": {
"method": "credit_card",
"provider": "pagarme",
"transaction_id": "txn_abc123"
},
"order_bumps": [],
"additional_data": {},
"chargeback_at": "2025-02-08T14:00:00.000Z",
"paid_at": "2025-01-08T18:15:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z"
}Eventos de Carrinho
cart.abandoned
Disparado 5 minutos após criação do QR code sem pagamento.
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"phone": "+5511999999999",
"ip": "192.168.1.1"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"order_bumps": [],
"additional_data": {
"utm_source": "facebook"
},
"abandoned_at": "2025-01-08T18:05:00.000Z",
"created_at": "2025-01-08T18:00:00.000Z",
"expires_at": "2025-01-08T18:30:00.000Z"
}cart.recovery_sent
Disparado quando email de recuperação de carrinho é enviado.
Payload:
{
"sale_id": "uuid-da-venda",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"additional_data": {},
"recovery_sent_at": "2025-01-08T19:00:00.000Z",
"recovery_token": "abc123def456_1704740400",
"created_at": "2025-01-08T18:00:00.000Z"
}cart.recovered
Disparado quando cliente paga após receber email de recuperação.
Payload:
{
"sale_id": "uuid-da-venda-recuperada",
"reference": "XYZ789ABC",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"ip": "192.168.1.1"
},
"product": {
"id": "uuid-do-produto",
"name": "Nome do Produto"
},
"offer": {
"id": "uuid-da-oferta",
"name": "Nome do Produto",
"amount": "100.00",
"product_id": "uuid-do-produto"
},
"additional_data": {},
"recovery_sent_at": "2025-01-08T19:00:00.000Z",
"recovered_at": "2025-01-08T20:30:00.000Z",
"time_to_recover": 90,
"created_at": "2025-01-08T19:00:00.000Z"
}Eventos de Saques
withdrawal.requested
Disparado quando um saque é solicitado pelo merchant.
Payload:
{
"withdrawal_id": "uuid-do-saque",
"amount": "500.00",
"amount_cents": 50000,
"status": "pending",
"payment_provider": null,
"requested_at": "2025-01-08T18:00:00.000Z"
}withdrawal.approved
Disparado quando saque é aprovado e enviado para processamento.
Payload:
{
"withdrawal_id": "uuid-do-saque",
"amount": "500.00",
"net_amount": "495.00",
"fee_amount": "5.00",
"status": "processing",
"bank_status": "processing",
"payment_provider": "noxpay",
"approved_at": "2025-01-08T18:30:00.000Z",
"requested_at": "2025-01-08T18:00:00.000Z"
}withdrawal.completed
Disparado quando saque é concluído (dinheiro transferido).
Payload:
{
"withdrawal_id": "uuid-do-saque",
"amount": "500.00",
"net_amount": "495.00",
"fee_amount": "5.00",
"status": "paid",
"bank_status": "completed",
"bank_transaction_id": "txn_withdrawal_123",
"e2e_id": "E12345678202501081830abcdefgh",
"payment_provider": "noxpay",
"completed_at": "2025-01-08T18:35:00.000Z",
"approved_at": "2025-01-08T18:30:00.000Z",
"requested_at": "2025-01-08T18:00:00.000Z"
}withdrawal.failed
Disparado quando saque falha no processamento.
Payload:
{
"withdrawal_id": "uuid-do-saque",
"amount": "500.00",
"status": "failed",
"bank_status": "failed",
"payment_provider": "noxpay",
"failure_reason": "Chave PIX inválida",
"failed_at": "2025-01-08T18:32:00.000Z",
"requested_at": "2025-01-08T18:00:00.000Z"
}Boas Práticas
Resposta do Webhook
Seu endpoint deve responder com status HTTP 200 ou 204 para confirmar o recebimento. Qualquer outro status será considerado uma falha e a plataforma tentará reenviar o webhook.
