- Actualizaciones casi en tiempo real
- Integraciones desacopladas
- Conciliación confiable y trazabilidad operativa
Requisitos previos
Antes de configurar los webhooks, asegúrate de tener:
- El Plugin de Pix Indirecto configurado y en funcionamiento (consulta Cómo funciona la participación indirecta)
- Un endpoint HTTPS listo para recibir solicitudes de webhook
- Conocimiento básico del ciclo de vida de los eventos de Pix y de los flujos de transacciones
Por qué los webhooks son importantes en Pix
Pix es un sistema asíncrono y multiparte. Una solicitud de API puede tener éxito antes de que la transacción alcance su estado final. El sistema confirma ese estado más tarde, después de la liquidación y del reconocimiento de la contraparte. Los webhooks permiten que tu sistema:
- Dé seguimiento al estado autoritativo de la transacción
- Reaccione a reembolsos, reversiones y eventos MED
- Mantenga la consistencia del libro mayor y operativa
- Reduzca el polling y la carga operativa
Tipos de eventos
Recibes eventos agrupados por flujo y entidad, alineados con los dominios de BACEN (Banco Central do Brasil).
Cada evento refleja una transición de estado en el ecosistema de Pix. Trata cada evento como la fuente de verdad.
Las dos entidades de MED 2.0 se comportan de forma diferente. El plugin emite
FUNDS_RECOVERY después de actualizar su registro local. FUNDS_RECOVERY_EVENT es un pass-through de los eventos del ciclo de vida de BTG sin actualización en base de datos. Consulta MED 2.0 — Funds Recovery para ver el flujo completo.DICT (Diretório de Identificadores de Contas Transacionais) es el directorio de BACEN que gestiona las claves Pix y operaciones relacionadas como reclamos, infracciones y reembolsos.
Configuración de webhooks
Para habilitar los webhooks, configura las URLs de destino y selecciona qué tipos de eventos recibe tu sistema.
Variables de entorno
Puedes configurar los endpoints de webhook a nivel de entidad, flujo o global.
Cada flujo también tiene una URL a nivel de flujo para todas sus entidades. El plugin la usa cuando no existe una URL a nivel de entidad:
WEBHOOK_DICT_URL, WEBHOOK_TRANSFER_URL y WEBHOOK_REFUND_URL.
Prioridad de resolución de URL
Cuando configuras múltiples URLs, el plugin las resuelve en este orden:
-
URL a nivel de entidad
Ejemplo:
WEBHOOK_DICT_CLAIM_URL -
URL a nivel de flujo
Ejemplo:
WEBHOOK_DICT_URL -
URL por defecto
WEBHOOK_DEFAULT_URL
Formato de la solicitud
Encabezados
Cada solicitud de webhook incluye encabezados estandarizados para trazabilidad y seguridad.
Estructura del cuerpo
El esquema del payload varía según el tipo de evento, pero siempre representa un cambio de estado.
Respuestas y comportamiento de reintentos
Respuesta esperada
Tu endpoint debe devolver un estado HTTP 2xx para confirmar la entrega exitosa.
Estrategia de reintentos
El plugin reintenta las entregas fallidas automáticamente con backoff exponencial:
Valores por defecto
- Máximo de reintentos: 3
- Tiempo de espera por solicitud: 30 segundos
Configuración personalizada de reintentos
Puedes personalizar los reintentos y los tiempos de espera por evento:Protección con circuit breaker
Un circuit breaker protege la entrega de webhooks y previene fallos en cascada. Cuando el Plugin de Pix detecta fallos repetidos de entrega (normalmente respuestas
5xx consecutivas o tiempos de espera agotados), pausa temporalmente las llamadas de webhook al endpoint afectado.
Después de un período de enfriamiento configurable, el sistema realiza intentos de reintento controlados para verificar si el endpoint se ha recuperado.
Cuando el endpoint vuelve a devolver respuestas exitosas, el plugin reanuda la entrega normal automáticamente.
Este mecanismo te da:
- Protección contra endpoints sobrecargados o inestables
- Recuperación elegante sin intervención manual
- Mayor estabilidad general del sistema en entornos de producción
El circuit breaker funciona junto con los reintentos y el backoff exponencial. Agrega una capa de seguridad adicional para la entrega de webhooks.
Errores de transporte y eventos huérfanos
Cuando el plugin recibe un webhook de reembolso, busca la transferencia original a lo largo de la cadena cash-in → cash-out. Si ninguna fuente local coincide, el plugin persiste el reembolso como un registro huérfano para la auditabilidad de BACEN. No descarta el reembolso, de modo que el registro permanece visible para conciliación y seguimiento. Si una búsqueda de fuente falla en la capa de transporte, el plugin omite esa fuente y continúa. Cuando ninguna fuente coincide — por una ausencia limpia o un error de transporte descartado — el plugin registra el reembolso como huérfano. El plugin solo aborta cuando el puente de búsqueda de transferencias no está configurado.
originalEndToEndId es la clave canónica para todas las búsquedas de reembolso. El plugin resuelve los reembolsos desde ambas direcciones, cash-in → refund y cash-out → refund, con este campo. Indexa siempre los reembolsos por originalEndToEndId (el ID de extremo a extremo de la transferencia original), no por una única ruta de búsqueda específica de dirección.
Reportes de transacciones internas (intra-PSP)
El plugin liquida las transferencias intra-PSP (P2P) internamente. Nunca llegan a BTG para su liquidación, pero el plugin aún las reporta a BACEN a través de la abstracción TRCK002. BTG confirma el estado del reporte mediante un webhook CAMT025 que lleva la entidad
PixInternalTransactionsReport.
El plugin actualiza el estado del reporte cuando el webhook de reporte CAMT025 confirma o falla. Los webhooks salientes se emiten antes, cuando la transferencia intra-PSP se liquida:
cashin.completed para el lado de cash-in y cashout.completed o cashout.failed para el lado de cash-out. Para ver el flujo interno completo, consulta Transferencias intra-PSP.
Buenas prácticas
Ejemplos de eventos
A continuación se muestran ejemplos representativos de los payloads de webhook que recibes del Plugin de Pix Indirecto. Expande cada entrada para ver su payload.
Reclamo DICT
Reclamo DICT
Eventos del ciclo de vida de titularidad o portabilidad. Úsalos para hacer seguimiento de las disputas de clave Pix entre instituciones.
Reporte de infracción DICT (MED)
Reporte de infracción DICT (MED)
Eventos de señalización de disputas y fraude alineados con las reglas de MED de BACEN.
Reembolso DICT (MED)
Reembolso DICT (MED)
Solicitudes y decisiones de reembolso relacionadas con casos de MED.
Funds recovery DICT (MED 2.0)
Funds recovery DICT (MED 2.0)
Cambios de estado de la entidad Funds Recovery. El plugin actualiza su registro local antes de reenviar la entidad completa.Los eventos del ciclo de vida llegan como
entityType: FUNDS_RECOVERY_EVENT (pass-through, sin actualización en base de datos), con valores de event como FUNDS_RECOVERY_ANALYSED y FUNDS_RECOVERY_COMPLETED.Cash-in y cash-out de transferencia
Cash-in y cash-out de transferencia
Eventos de transferencias Pix entrantes y salientes.Cash-in (transferencia entrante):Cash-out (transferencia saliente):
Cash-in y cash-out de reembolso
Cash-in y cash-out de reembolso
Eventos de liquidación de reembolso para transacciones Pix.Cash-in de reembolso (recibir un reembolso):Cash-out de reembolso (enviar un reembolso):
Conclusión clave
Los webhooks no son opcionales en las operaciones de Pix Indirecto. Son el canal autoritativo para el estado de las transacciones, los reembolsos y la gestión de disputas. Una implementación correcta de webhooks te da:
- Conciliación precisa
- Cumplimiento normativo
- Resiliencia operativa
- Experiencia del cliente predecible
Próximos pasos
Ahora que entiendes cómo funcionan los webhooks en Pix Indirecto, explora estos temas relacionados:
- Dominios principales de Pix: transferencias - Análisis detallado de las operaciones de transferencia
- Dominios principales de Pix: DICT - Comprensión de las operaciones de DICT y la gestión de claves
- Dominios principales de Pix: MED - Gestión de disputas y reembolsos de MED
- MED 2.0 — Funds Recovery - Recuperación de fondos por fraude entre cuentas y sus webhooks
- Transferencias intra-PSP - Liquidación P2P interna y reportes TRCK002
- Referencia de API — Documentación completa de la API para operaciones de DICT, Reclamos, Transacciones, Códigos QR y MED

