Webhook V2 (Recommended)
Real-time event notifications for your application
Webhook V2 is our latest and most advanced webhook implementation, designed with modern integration needs in mind. It provides a more robust, organized, and feature-rich experience compared to V1.
Why choose Webhook V2?
Enhanced Data Structure
Improved Organization
More Event Types
cashin.paid - Transaction successfully paidcashin.refunded - Transaction refundedcashout.success - Withdrawal completed successfullycashout.failed - Withdrawal failedcashout.returned - Withdrawal returned to origininfraction.updated - Infraction status updatedWe strongly recommend using Webhook V2 for all new integrations.
1Webhook Structure
All V2 webhooks follow a consistent structure with two main components: the event type and the payload.
json
{
"event": "event.name",
"payload": {
// Event-specific data
}
}2Cash-In Events (Transactions)
Cash-in webhooks are triggered when transactions (deposits/payments) are processed.
Event Types:
cashin.paid - Transaction successfully paid and creditedcashin.refunded - Transaction was refunded to the payerPayload Example:
json
{
"event": "cashin.paid",
"payload": {
"transaction_id": "17615714245971918718644287",
"external_id": "your-business-transaction-id",
"amount": 1100,
"end_to_end_id": "E18236120202510271324s05499b347c",
"payer": {
"name": "Rafael Arantes da Silva",
"document": "43363629800",
"ispb": "19318318",
"institution": "NU PAGAMENTOS"
},
"receiver": {
"name": "Your Business Name",
"document": "12345678000190",
"ispb": "18236120",
"institution": "BANCO EXEMPLO"
}
}
}Field Descriptions:
3Cash-Out Events (Withdrawals)
Cash-out webhooks are triggered when withdrawal operations are processed.
Event Types:
cashout.success - Withdrawal completed successfullycashout.failed - Withdrawal failed (includes error message)cashout.returned - Withdrawal was returned to the original accountSuccess/Returned Payload Example:
json
{
"event": "cashout.success",
"payload": {
"withdrawal_id": "17615714245971918718644287",
"external_id": "your-business-withdrawal-id",
"amount": 5000,
"end_to_end_id": "E18236120202510271324s05499b347c",
"receiver": {
"name": "João Silva",
"document": "12345678900",
"ispb": "60701190",
"institution": "ITAU UNIBANCO"
},
"payer": {
"name": "Your Business Name",
"document": "12345678000190",
"ispb": "18236120",
"institution": "BANCO EXEMPLO"
}
}
}Failed Payload Example:
json
{
"event": "cashout.failed",
"payload": {
"withdrawal_id": "17615714245971918718644287",
"external_id": "your-business-withdrawal-id",
"amount": 5000,
"end_to_end_id": "E18236120202510271324s05499b347c",
"error_message": "Invalid PIX key or account closed"
}
}Field Descriptions:
4Infraction Events
Infraction webhooks are sent when there are compliance or dispute-related updates on transactions.
Event Type:
infraction.updated - Infraction status or details changedPayload Example:
json
{
"event": "infraction.updated",
"payload": {
"transaction_id": "17615714245971918718644287",
"external_id": "your-business-transaction-id",
"amount": 1100,
"end_to_end_id": "E18236120202510271324s05499b347c",
"payer": {
"name": "Rafael Arantes da Silva",
"document": "43363629800",
"ispb": "19318318",
"institution": "NU PAGAMENTOS"
},
"receiver": {
"name": "Your Business Name",
"document": "12345678000190",
"ispb": "18236120",
"institution": "BANCO EXEMPLO"
},
"infraction": {
"id": "dd0b2c77-8dd6-4eb5-b254-a46417eac46d",
"status": "AWAITING_CUSTOMER_RESPONSE",
"reason_details": "Payer reported unauthorized transaction",
"analysis_result": null,
"analysis_details": "Under investigation by compliance team",
"created_at": "2025-10-27T14:30:00.000Z",
"closed_at": null,
"cancelled_at": null,
"response_at": null,
"defended_at": null
}
}
}Infraction Status Values:
Analysis Result Values:
5Important Notes
General Guidelines:
external_id is your business identifier set during creationend_to_end_id is unique across the entire PIX ecosystemWebhook Security:
Best Practices:
transaction_id or withdrawal_id for reconciliationexternal_id to match with your internal systemNeed more help?
Check our complete API reference or contact our support team for assistance.