Prerrequisitos
Antes de empezar, confirma que tienes:
- Tu ISPB (Identificador do Sistema de Pagamentos Brasileiro): el identificador de 8 dígitos derivado del CNPJ de tu institución
- Acceso a tus instancias de Midaz y CRM (desplegadas y en ejecución)
- Acceso a los servicios del proveedor BTG (BTG entrega las credenciales)
PIX_ISPB también se usa para detectar las transferencias intra-PSP (P2P): cuando el ISPB de destino de una transferencia coincide con este valor, el plugin la liquida internamente en lugar de enrutarla a BTG, y de todos modos la reporta a BACEN. Consulta Transferencias intra-PSP.1. Licencia
El plugin es una solución enterprise y requiere una licencia válida para operar. Lerian entrega la clave de licencia durante el onboarding.
2. Access Manager (opcional)
Access Manager atiende la autenticación del plugin. Cuando está habilitado, valida todas las solicitudes entrantes antes de que lleguen a la API del plugin.
PLUGIN_AUTH_ENABLED=true, el plugin valida el header Authorization de cada solicitud para confirmar que:
- El token pertenece a un usuario o una aplicación autorizados
- El token concede acceso al endpoint y al método de la API solicitados
Solo necesitas entregar credenciales de cliente (
CLIENT_ID / CLIENT_SECRET) para los servicios de Midaz, CRM y comisiones si esos servicios también tienen habilitada la autenticación con Access Manager.3. Midaz
Midaz es el ledger central de todas las transacciones Pix que procesa el plugin. El plugin registra cada operación de cash-in, cash-out y devolución en Midaz como una transacción de partida doble.
Conexión
Requisitos del activo
Configura un activo en tu organización y ledger con estas propiedades:
Vincula todas las cuentas a tu ledger con el activo
BRL. El plugin rechaza las operaciones sobre cuentas que no cumplen esta configuración.
Configuración de cuentas
Antes de usar el plugin, crea una cuenta en Midaz para cada cliente bajo tu ISPB. Usa el endpoint Create an Account para configurar las cuentas. Cada cuenta debe:
- Pertenecer a la organización y al ledger que configuraste
- Usar el activo
BRL
Header X-Account-Id
Muchas operaciones Pix requieren el header
X-Account-Id para identificar qué cuenta ejecuta la acción. Este ID corresponde al ID de la cuenta del ledger de Midaz.
Cuando llamas a un endpoint del plugin, el valor de X-Account-Id le indica al plugin:
- Qué cuenta usar para las operaciones del ledger
- Qué datos de cliente obtener del CRM
- Qué saldo validar y actualizar
Cómo el plugin usa el ID de cuenta
El plugin usa el ID de cuenta de forma distinta según el tipo de operación:Cumplimiento de la cuenta
El plugin no aplica restricciones de cuenta en el nivel de negocio, como cuentas bloqueadas o suspendidas. Tu aplicación debe validar el estado de la cuenta antes de llamar al plugin. Para impedir liquidaciones Pix en una cuenta específica, bloquéala directamente en Midaz. El plugin recibe un rechazo cuando intenta registrar la transacción. Documentación relacionada:
4. CRM
El CRM guarda la información del cliente (titular) y sus cuentas bancarias asociadas. Cada cuenta de Midaz debe tener un titular y una cuenta alias correspondientes en el CRM para ejecutar operaciones Pix. El plugin consulta los datos del CRM para:
- Registrar y validar las claves Pix
- Construir los mensajes de pago para BACEN
- Autorizar las transacciones entrantes
- Procesar los workflows de devolución y de disputa
Conexión
Titulares
Los datos del titular representan al cliente dueño de la cuenta. Crea cada titular en el CRM antes de ejecutar cualquier operación Pix para ese cliente.
Campos obligatorios
Campos opcionales
Documentación relacionada: Create a Holder
Cuentas alias
Las cuentas alias vinculan una cuenta de Midaz con sus datos bancarios. Cada cuenta alias debe incluir la información bancaria que el ecosistema Pix requiere para procesar transacciones.
Campos obligatorios
Tipos de cuenta admitidos
Documentación relacionada: Create an Alias Account
5. Proveedor BTG
BTG es el participante directo que conecta tu institución con la infraestructura Pix de BACEN. BTG entrega las credenciales directamente cuando tu institución se suscribe a la integración indirecta con BACEN.
Conexión
mTLS (seguridad de los webhooks)
El TLS mutuo (mTLS) valida el certificado de BTG en las solicitudes de webhook. Confirma que los webhooks entrantes se originan en BTG.
6. Servicio de comisiones (opcional)
Habilita el cálculo de comisiones para cobrar y distribuir comisiones de forma automática sobre los pagos entrantes. Es opcional. Si no lo configuras, el plugin procesa las transacciones sin cálculo de comisiones.
Conexión
Cómo funciona
Cuando defines
CASHIN_FEE_CALCULATION_TYPE=segment, el plugin:
- Obtiene el segmento asociado a la cuenta receptora
- Calcula las comisiones aplicables antes de procesar la transacción en Midaz
- Distribuye el pago entrante según las reglas de paquete vinculadas a ese segmento
Pasos de configuración
- Crea segmentos en Midaz: define los segmentos de cuenta que determinan las reglas de comisión
- Configura paquetes en Fees Engine: vincula cada segmento con sus reglas de cálculo de comisiones
- Asigna segmentos a las cuentas: crea o actualiza cuentas de Midaz con el ID de segmento correspondiente
- Conciliación de DICT (VSync)
VSync concilia tus datos locales de DICT con BACEN al procesar todos los eventos del día relacionados con claves. Así tu estado local se mantiene consistente con los registros de referencia de BACEN.
El rango CIDR restringe qué redes pueden disparar la conciliación. El plugin rechaza de forma automática las solicitudes que vienen de fuera de ese rango.
Configuración del cache de Redis
VSync usa Redis para guardar en cache las entradas de BTG/DICT y los titulares del CRM durante la conciliación. En los despliegues con Helm, el
REDIS_HOST predeterminado apunta al sidecar de Valkey incluido, así que una instalación estándar no requiere configuración adicional.
En los despliegues con Helm, el
REDIS_HOST predeterminado apunta al sidecar de Valkey incluido (<release-name>-valkey:6379). No hace falta configuración adicional de Redis a menos que te conectes a una instancia externa.Conexión (siempre se usa)
Pool de conexiones y reintentos (siempre se usa)
Autenticación (opcional, solo se usa si se define)
TLS (opcional, solo se usa si REDIS_TLS=true)
Autenticación IAM de GCP (opcional, solo se usa si REDIS_USE_GCP_IAM=true)
TTL del cache de VSync (siempre se usa)
8. Seguridad de los webhooks internos
El plugin usa un canal de comunicación interno entre los servicios Worker y Aplicación. Las firmas HMAC-SHA256 protegen este canal para evitar manipulaciones y ataques de repetición.
9. Capas de workers
El plugin opera con tres capas de workers, y cada una atiende una parte distinta del ciclo de vida de Pix. Todos los workers se ejecutan como servicios separados junto a la aplicación principal.
Worker de entrada
El worker de entrada recibe las notificaciones de webhook de BTG y las reenvía a tu aplicación para su procesamiento.
Worker de salida
El worker de salida envía notificaciones de evento desde el plugin hacia tu aplicación por webhooks. Así tu sistema se mantiene informado sobre los eventos Pix (transferencias, devoluciones, reclamaciones, disputas).
Prioridad de resolución de URL
El plugin resuelve las URL de webhook en este orden, y usa la primera que coincide:- URL de entidad: una URL específica del tipo de evento (por ejemplo,
WEBHOOK_DICT_CLAIM_URL) - URL de flujo: una URL para la categoría más amplia (por ejemplo,
WEBHOOK_DICT_URL) - URL predeterminada: la URL de respaldo (
WEBHOOK_DEFAULT_URL)
Worker de conciliación
El worker de conciliación necesita las mismas credenciales que la capa Aplicación para estos servicios:
- CRM: URL y credenciales
- BTG: URL y credenciales
- Midaz: ID de organización
Si dejas ambos campos vacíos, el worker se ejecuta sin restricciones de horario (24/7).
El worker siempre interpreta la ventana de conciliación en la zona horaria
America/Sao_Paulo (BRT), sea cual sea el reloj del contenedor o la variable TZ. El worker incluye los datos de zonas horarias de IANA. La ventana se mantiene alineada con el bloqueo de escritura de DICT de BACEN, incluso en imágenes mínimas o distroless. No necesitas definir TZ.Los endpoints de cashout y de devolución de Pix Indirecto admiten idempotencia con el header de solicitud
X-Idempotency, con TTL configurable mediante X-TTL. Para estrategias de reintento y detalles de implementación, consulta Reintentos e idempotencia.10. Observabilidad (OpenTelemetry)
El plugin viene con instrumentación completa de OpenTelemetry (trazas, métricas y logs) en las capas Aplicación y Worker. El plugin traza cada flujo Pix de extremo a extremo: transferencias (cash-in y cash-out), devoluciones, webhooks entrantes y salientes, conciliación de DICT y liquidación intra-PSP. Puedes seguir un solo pago a través del plugin y de las llamadas a Midaz, al CRM y a BTG. La telemetría está deshabilitada de forma predeterminada. Habilítala y apunta el exportador OTLP a tu collector:
Cuando
ENABLE_TELEMETRY=true, OTEL_EXPORTER_OTLP_ENDPOINT es obligatorio. Define las mismas variables de OTel en la Aplicación y en cada Worker para que las trazas se correlacionen entre servicios.Exportador: gRPC y TLS
El plugin exporta trazas, métricas y logs por OTLP/gRPC. El esquema del endpoint controla la seguridad del transporte:
Ejemplo: endpoint del collector
Apunta el plugin a cualquier collector compatible con OTLP (el OpenTelemetry Collector, Grafana LGTM/Alloy, etc.) que escuche en el puerto gRPC:
11. Health y readiness
La Aplicación y los Workers exponen una sonda de readiness en
/readyz (junto con las verificaciones estándar de liveness). Apunta la sonda de readiness de tu orquestador a este endpoint para que el tráfico se enrute solo cuando el servicio y sus dependencias están listos.
Propósito de la transferencia (MED 2.0)
El endpoint de cashout acepta un header opcional
X-Purpose que identifica el propósito de la transacción, usado en las transferencias de devolución de MED 2.0. Cuando se omite, el valor predeterminado es TRANSFER.
TRANSFER e INSTANT_PAYMENT_REFUND. Consulta MED 2.0 — Recuperación de fondos para los detalles.
Próximos pasos
Con el plugin configurado, puedes empezar a operar Pix.
- Webhooks: tipos de evento, payloads, reintentos y mejores prácticas
- MED 2.0 — Recuperación de fondos: recuperación de fraude entre cuentas y el header X-Purpose
- Operaciones de devolución: devoluciones parciales distribuidas y desbloqueo
- Transferencias intra-PSP: liquidación P2P interna y reporte TRCK002
- Dominios principales: DICT: entender la gestión de claves Pix
- Dominios principales: transacciones: flujos y ciclo de vida de las transacciones
- Dominios principales: QR Codes: generación de códigos QR estáticos y dinámicos
- Referencia de API: documentación completa de la API para DICT, reclamaciones, transacciones, QR Codes y operaciones MED

