- Reembolsos parciales distribuidos — devuelve un reembolso desde múltiples cuentas internas en una sola operación
- Desbloqueo — recupera un reembolso o una transferencia que está atascado en
PROCESSING
Reembolsos parciales distribuidos
Un Pix recibido puede dividirse internamente entre varias cuentas. Por ejemplo, el monto principal va a la cuenta del cliente y una tarifa va a una cuenta de tarifas. Un reembolso posterior por MED o fraude puede entonces debitar parte del monto de cada cuenta. El flujo estándar de reembolso debita una sola cuenta. Para dividir el débito, envía un array opcional
operations en el cuerpo de la solicitud. El array operations es la única señal — no hay un nuevo endpoint, variable de entorno ni feature flag.
Solicitud
- Sin
operations→ el flujo actual de cuenta única se ejecuta sin cambios. - Con
operations→ el plugin debita cadaaccountAliaspor suamounten Midaz, y BTG recibe un único pacs.004 por el valor total del reembolso.
Reglas de validación
El endpoint, el flujo de BTG (pacs.004 con el valor total), la idempotencia y la autenticación coinciden con el reembolso estándar. Solo cambia la composición del débito interno en Midaz.
Ejemplo — Cappta
El plugin dividió un cash-in de R 49.000,00 a la cuenta del cliente y R 1.000,82. Solo quedan R 0,82 de la cuenta del cliente y R 1.000,82 sin consolidación manual del libro mayor.
Desbloqueo de operaciones atascadas
Una llamada de reversión a BTG puede expirar antes de que BTG la confirme. El reembolso o la transferencia queda entonces atascado en
PROCESSING, y Midaz todavía retiene los fondos. Dos endpoints vuelven a consultar a BTG y llevan la operación a su estado terminal.
Ambos requieren el encabezado
X-Account-Id.
Cómo funciona el desbloqueo
El plugin vuelve a consultar el estado de la reversión o la transferencia en BTG y:
- Si BTG reporta
CONFIRMEDoERROR→ despacha la liquidación correspondiente y lleva la operación a su estado terminal. - Si BTG todavía reporta
INITIATED/PROCESSING→ devuelve HTTP 200 sin acción — reintenta más tarde.
entity, el returnIdentification o el originalEndToEndId de BTG difieren del registro local. Esto evita la liquidación contra la transacción equivocada.
refund actualizado, un message y el btgStatus.
Manejo de un 404 de BTG
BTG puede devolver
404 cuando ya no tiene la reversión o la transferencia. El resultado depende entonces del tipo de operación y del flag opcional allowNotFoundUnblock en el cuerpo de la solicitud.
La recuperación opcional ante un 404 aplica solo a operaciones
CASHOUT en PENDING/PROCESSING con un endToEndId no vacío. Los cash-ins y los estados terminales nunca entran en esta rama.Limitación intra-PSP
El flujo de desbloqueo de transferencias resuelve el estado consultando a BTG. No aplica a las transferencias intra-PSP (internas), que no tienen transacción de BTG. Consulta Transferencias intra-PSP.
Próximos pasos
- Transferencias intra-PSP — Transferencias y reembolsos P2P internos
- MED 2.0 — Recuperación de fondos — Recuperación de fraude entre cuentas
- Webhooks — Manejo de eventos de reembolso y transferencia
- Referencia de API — Documentación completa de la API

