Un Money Movement es el objeto unificado de Cobre para representar el ciclo de vida del movimiento de valor hacia o desde tus saldos—ya sea que ese movimiento sea una cobranza (payin) o un desembolso (payout), e independientemente del rail subyacente o la geografía.Desde el punto de vista de la integración, la API de Money Movement te proporciona:
Una interfaz única para crear y rastrear operaciones de dinero
Un modelo consistente de ciclo de vida y estado
Un patrón estándar para manejar:
procesamiento asíncrono
aprobaciones (Maker–Checker)
fallas y rechazos
devoluciones (solo México)
Esta guía es la introducción conceptual; las subsecciones (SPEI, Bre-B, Checkout, Direct Link, Scheduler, Bulk, etc.) describen campos y comportamientos específicos del rail.
Un Money Movement puede estar respaldado por múltiples rails, pero siempre interactúas con la misma estructura de recurso y ciclo de vida. El rail típicamente se expresa en sus metadatos y/o en la guía específica que sigas (ej., payouts SPEI, payouts Bre-B, payins Checkout, etc.).
Los Money Movements se procesan de forma asíncrona: comienzan en un estado inicial y evolucionan mientras Cobre y los sistemas downstream confirman la ejecución. El sistema actualiza el estado "en segundo plano" hasta alcanzar un estado terminal.
La API soporta un header de idempotencia opcional para prevenir duplicados accidentales. Si reintentas la misma solicitud con la misma clave de idempotencia dentro de la ventana relevante, Cobre devuelve el Money Movement original en lugar de crear otro.
La Máquina de Estados Universal de Money Movement#
Todo Money Movement sigue la misma máquina de estados de alto nivel.Puedes pensarlo como tres fases:
1.
Creación
2.
Procesamiento
3.
Finalización
A continuación está el ciclo de vida transversal, válido para payins y payouts tanto en México como en Colombia.
Cuando creas un Money Movement, comienza en initiated. Esto significa que la solicitud fue aceptada y el movimiento existe, pero la ejecución no ha progresado aún.
El Money Movement fue cancelado antes de completarse (común cuando las aprobaciones expiran o se cancelan, o cuando elementos programados/bulk se cancelan upstream).
Rechazado significa que el rail, banco, o validación de nivel de usuario causó que la transacción fuera rechazada, a menudo con códigos de razón específicos del rail.
Una devolución significa que el movimiento fue exitoso inicialmente pero luego fue devuelto por el contexto de la contraparte/beneficiario (por ejemplo, el beneficiario devolvió el pago). Ejemplo de razón: R008 Pago Devuelto por el Beneficiario.
Transiciones de Estado (Cómo razonar sobre el ciclo de vida)#
Aquí está el diagrama de estado conceptual (simplificado):
initiated → processing
initiated → pending_approval (si se requiere aprobación)
pending_approval → processing (después de la aprobación)
processing → completed
processing → failed / rejected
processing → returned (ruta de devolución post-completación)
pending_approval → canceled (si se cancela/expira)
initiated → canceled (si se cancela antes de la ejecución)
Importante: Todos los estados terminales son finales. Una vez que un Money Movement alcanza un estado terminal, no volverá a transicionar (excepto que algunos rails pueden reportar una devolución después de una completación previa, que se representa por returned).
checking(cc), saving (ch) or electronic deposit (dp)
BRE-B
Push
account_id
cobre_balance
counterparty_id
Breb-B (breb_key)
GLOBAL
Push
account_id
cobre_balance
counterparty_id
global_deposit_le or global_deposit_np
Fedwire
Push
account_id
cobre_balance
counterparty_id
business
R2P Direct Dynamic Key
Pull
counterparty_id
r2p or r2p_breb
account_id
cobre_balance
R2P Direct Link
Pull
counterparty_id
r2p
account_id
cobre_balance
DIRECT DEBIT
Pull
counterparty_id
checking(cc), saving (ch) or cobre_balance
account_id
cobre_balance
La flexibilidad de la API para manejar la combinación de objetos de origen y destino garantiza el inicio sin problemas de movimientos de dinero, satisfaciendo una amplia gama de necesidades transaccionales.
Enrutamiento Automático de Rieles
Fast Pay a ACH - Cuando una cuenta de destino colombiana no está disponible para Fast Pay, Cobre automáticamente envía la instrucción por ACH. Consulta los Bancos Colombianos disponibles para Fast Pay o ACHBre-B a Fast Pay - Todos los payouts Bre-B que superen el límite de Bre-B serán automáticamente enrutados por Fast Pay (es decir, el rail más rápido de Cobre)Pagos Divididos Bre-B - Los payouts Bre-B pueden enrutarse por el riel Bre-B en múltiples transacciones usando la funcionalidad de Pagos Divididos.
Cuenta de Centro de Costos (CECO) propiedad del cliente de Cobre
Cuenta de Centro de Costos (CECO) propiedad de los usuarios del cliente de Cobre
Fast Pay
Algunos bancos pueden incluir Pexto Colombia SAS en las descripciones, pero lo más frecuente es que no se proporcione ningún nombre. Varía según el banco
N/A
ACH
Algunos bancos pueden incluir Pexto Colombia SAS en las descripciones, pero lo más frecuente es que no se proporcione ningún nombre. Varía según el banco
N/A
Bre-B
Pexto Colombia SAS
Nombre de la entidad legal de Cobre configurado por defecto
Fedwire
Razón social del cliente utilizada para crear el FBO