Contrato de transporte
Define
STREAMING_ENABLED=true y las variables de streaming. Con el streaming desactivado, el plugin descarta los eventos. Si defines STREAMING_CLOUDEVENTS_SOURCE, su valor debe ser exactamente plugin-br-bank-transfer. En producción, el plugin sirve el manifiesto solo cuando la autenticación está activada.
Algunos eventos son de mejor esfuerzo: cuando su escritura en el outbox falla, el plugin mantiene el cambio que anuncian y no publica el evento. Si un evento esperado no llega, lee la transferencia con Get Transfer.
Catálogo de eventos
Iniciación y ciclo de vida de la transferencia
Conciliación
Transferencias entrantes
Devoluciones de TED OUT y de P2P
Deduplicación
Deduplica por(ce-source, ce-id) y mantén los consumidores idempotentes. Tres eventos también necesitan una clave de negocio:
transfer_incoming.chargeback: el worker de TED IN y un operador pueden anunciar cada uno el mismo chargeback, con dos ids. Deduplica portenantId,transferIdystatus.transfer.reconciliation_resolved: una resolución de operador puede llegar dos veces.convergedOntoExistingResolutionmarca la copia que encontró la resolución ya escrita. Deduplica portenantId,transferId,statusyreconciliationStatus, no por ese marcador.transfer_outgoing.devolution_notified: una devolución puede anunciarse dos veces, una al llegar y otra cuando se asienta su reembolso, con dos ids. Deduplica portenantId,transferId,controlNumberytransferStatus.
Contratos de payload
Los montos son strings decimales, por ejemplo"1500.00". Los timestamps son strings RFC 3339 en UTC. Los campos marcados con ? son opcionales. tenantId queda vacío en el modo single-tenant.

