Webhooks
Webhooks allow you to receive real-time notifications about events that occur on the MisesPay platform. When an event is triggered, we send an HTTP POST request to the URL configured in your dashboard.
Configuration
Webhook creation and management is done directly in the MisesPay Dashboard. Go to the settings section to register your webhook URLs and choose which events you want to receive.
Security
All webhook requests include an HMAC SHA-256 signature in the X-Webhook-Signature header so you can validate the request authenticity.
Data Format
- Method: POST
- Content-Type: application/json
- Date Format: ISO 8601
- Currency: BRL (Brazilian Real)
- Amounts: String with 2 decimal places (e.g. "100.00")
- Amounts in cents: Integer (e.g. 10000 = R$ 100.00)
Sale Events
sale.created
Triggered when a sale is created (PIX generated, card processing).
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"status": "pending",
"payment_method": "pix",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"phone": "+5511999999999",
"document": "12345678900",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"payment": {
"method": "pix",
"provider": "pagarme"
},
"order_bumps": [
{
"id": "bump-uuid",
"name": "Order Bump Premium",
"amount": "50.00"
}
],
"additional_data": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "black-friday",
"utm_term": "product",
"utm_content": "ad-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
Triggered when the payment is confirmed (PIX paid, card approved).
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"net_amount": "95.00",
"fee_amount": "5.00",
"currency": "BRL",
"status": "paid",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"phone": "+5511999999999",
"document": "12345678900",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"payment": {
"method": "pix",
"provider": "pagarme",
"transaction_id": "txn_abc123",
"e2e_id": "E12345678202501081800abcdefgh"
},
"order_bumps": [
{
"id": "bump-uuid",
"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
Triggered when a sale expires without payment.
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"order_bumps": [
{
"id": "bump-uuid",
"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
Triggered when a sale fails (card declined, processing error).
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"status": "failed",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"payment": {
"method": "credit_card",
"provider": "pagarme"
},
"failure": {
"reason": "Insufficient card limit",
"code": "1016"
},
"order_bumps": [],
"additional_data": {},
"created_at": "2025-01-08T18:00:00.000Z"
}sale.refunded
Triggered when a sale is refunded.
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"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
Triggered when a sale gets a chargeback (dispute).
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"payer": {
"name": "John Silva",
"document": "12345678900"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"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"
}Cart Events
cart.abandoned
Triggered 5 minutes after QR code creation without payment.
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"phone": "+5511999999999",
"ip": "192.168.1.1"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"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
Triggered when a cart recovery email is sent.
Payload:
{
"sale_id": "sale-uuid",
"reference": "ABC123XYZ",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"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
Triggered when the customer pays after receiving the recovery email.
Payload:
{
"sale_id": "recovered-sale-uuid",
"reference": "XYZ789ABC",
"amount": "100.00",
"currency": "BRL",
"customer": {
"name": "John Silva",
"email": "john@example.com",
"ip": "192.168.1.1"
},
"product": {
"id": "product-uuid",
"name": "Product Name"
},
"offer": {
"id": "offer-uuid",
"name": "Product Name",
"amount": "100.00",
"product_id": "product-uuid"
},
"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"
}Withdrawal Events
withdrawal.requested
Triggered when a withdrawal is requested by the merchant.
Payload:
{
"withdrawal_id": "withdrawal-uuid",
"amount": "500.00",
"amount_cents": 50000,
"status": "pending",
"payment_provider": null,
"requested_at": "2025-01-08T18:00:00.000Z"
}withdrawal.approved
Triggered when a withdrawal is approved and sent for processing.
Payload:
{
"withdrawal_id": "withdrawal-uuid",
"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
Triggered when a withdrawal is completed (money transferred).
Payload:
{
"withdrawal_id": "withdrawal-uuid",
"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
Triggered when a withdrawal fails during processing.
Payload:
{
"withdrawal_id": "withdrawal-uuid",
"amount": "500.00",
"status": "failed",
"bank_status": "failed",
"payment_provider": "noxpay",
"failure_reason": "Invalid PIX key",
"failed_at": "2025-01-08T18:32:00.000Z",
"requested_at": "2025-01-08T18:00:00.000Z"
}Best Practices
Webhook Response
Your endpoint must respond with HTTP status 200 or 204 to confirm receipt. Any other status will be considered a failure and the platform will retry sending the webhook.
