Conciliar PayOuts significa hacer coincidir el Movimiento de Dinero que creaste (la intención de pago y su estado final) con las Transacciones que realmente movieron fondos en tu Cobre Balance, en los rieles de payout de Colombia, México y Estados Unidos.Esta guía explica cómo se relacionan los Movimientos de Dinero y las Transacciones entre sí, qué esperar en el balance para cada estado terminal, y cómo conciliar a demanda o en bloque usando Reportes.
Movimientos de Dinero vs. Transacciones#
Cada PayOut involucra dos identificadores relacionados pero distintos:| Identificador | Prefijo | Se genera cuando | Representa |
|---|
| ID del Movimiento de Dinero | mm_ | Se crea el PayOut | La intención/solicitud de pago y su estado del ciclo de vida |
| ID de la Transacción | trx_ | Se debitan o acreditan fondos en tu Cobre Balance | El registro contable real que afecta el balance |
Un solo Movimiento de Dinero puede generar cero, una o más Transacciones, dependiendo de cómo se desarrolle su ciclo de vida. Cada Transacción que resulta de un Movimiento de Dinero lleva un campo metadata.money_movement_id que la vincula de vuelta — usa este campo para agrupar Transacciones por el PayOut que las generó.Siempre proporciona external_id al crear un PayOut (Crear un Movimiento de Dinero). Se retorna en el Movimiento de Dinero y es la forma más simple de hacer coincidir un PayOut de Cobre con tu factura, orden o registro de pago interno. Ejemplo — cómo se desarrolla un PayOut y sus Transacción(es), paso a paso:
Ciclo de Vida del PayOut e Impacto en el Balance#
El status.state de un PayOut te indica si se completó, y su status.code / status.description explican por qué cuando no fue así. Consulta Estados de Movimientos de Dinero para el catálogo completo de códigos de motivo, y la guía de Movimiento de Dinero para el modelo completo del ciclo de vida.| Estado terminal | Transacciones típicas | Impacto neto en el balance |
|---|
completed | 1 débito | Negativo (fondos enviados) |
canceled | 0 (cancelado antes de aplicar un débito — p. ej., una aprobación fue denegada) | Ninguno |
failed | 0 — un PayOut fallido nunca genera un débito | Ninguno |
rejected | 0, o 1 débito + 1 crédito compensatorio si ya se había aplicado un débito | Ninguno (si se revierte) |
failed y rejected no son intercambiables para efectos de conciliación. failed cubre problemas operativos o de plataforma detectados antes de aplicar cualquier débito (p. ej., NSF, límites excedidos, errores de procesamiento) — nunca hay una Transacción que buscar. rejected cubre rechazos a nivel de riel o de banco, que pueden ocurrir después de que el débito ya se aplicó — ese es el caso que produce el crédito compensatorio descrito abajo.
Un PayOut puede ocasionalmente transicionar de completed a rejected si el banco destino devuelve los fondos después de que Cobre ya confirmó la finalización. Cuando esto ocurre, Cobre aplica una transacción de crédito compensatoria en tu Cobre Balance. No trates completed como un estado de balance permanentemente final para efectos de conciliación — siempre verifica si existe una Transacción de reversión posterior bajo el mismo money_movement_id.
Para PayOuts SPEI en México específicamente, una transferencia devuelta genera una Transacción de crédito spei_return que compensa el spei_debit original — concilia las reversiones de PayOuts en México haciendo coincidir estos dos tipos de transacción bajo el mismo money_movement_id.
Conciliar PayOuts a Demanda#
| Filtro | Úsalo para |
|---|
state | Aislar PayOuts completed, rejected, failed o canceled |
external_id | Encontrar el Movimiento de Dinero de una referencia interna específica (coincidencia parcial) |
source_id / destination_id | Conciliar todos los PayOuts desde un Cobre Balance o hacia una contraparte |
created_at_gte / created_at_lte | Acotar la consulta a un rango de fechas |
amount, amount_gte, amount_lte, currency | Acotar por valor |
Cruza el resultado con Obtener las Transacciones de una Cuenta (GET /accounts/{acct_id}/transactions), filtrando credit_debit_type=debit y haciendo coincidir metadata.money_movement_id, para confirmar el lado que afecta el balance de cada PayOut.
Conciliar PayOuts en Bloque#
Para conciliación por rango de fechas o de alto volumen, usa Reportes en lugar de paginar a través de los resultados de la consulta:1.
Crea un reporte para el lado del Movimiento de Dinero (money_movement_csv_v1 para CSV, o money_movement_v1 para JSON) y otro para el lado de la Transacción (transactions_csv_v1 para CSV, o account_transactions_v1 para JSON), sobre el mismo rango de fechas.
2.
Agrupa ambos reportes por metadata.money_movement_id.
3.
Un money_movement_id con exactamente una fila de débito concilia como un PayOut completado; uno con un débito y un crédito compensatorio concilia como un rechazo o falla reversado.
Conciliar PayOuts en Tiempo Real#
Las consultas a demanda y los Reportes son ambos de tipo pull (basados en solicitud). Para conciliación en tiempo real, suscríbete a los eventos de estado del Movimiento de Dinero mediante Notificaciones y Suscripciones en su lugar — Cobre envía un webhook en cuanto cambia el estado de un PayOut (money_movements.status.completed, money_movements.status.rejected, money_movements.status.failed, money_movements.status.canceled), para que puedas actualizar tu contabilidad en el momento en que ocurre, en lugar de consultarlo repetidamente.La entrega de webhooks es de mejor esfuerzo, no garantizada para siempre — consulta Notificaciones y Suscripciones para conocer la ventana de reintentos. Trata los webhooks como tu señal en tiempo real y las consultas a demanda o los Reportes como el respaldo periódico que captura cualquier cosa que un webhook haya perdido.
Conciliación del Balance de Apertura y Cierre#
Más allá de los PayOuts individuales, los clientes a menudo necesitan conciliar el balance de apertura, el balance de cierre y los totales diarios de un Cobre Balance — independientemente de qué PayOut generó cada Transacción. Consulta Conciliaci ón del Balance de Apertura y Cierre para el recorrido completo, incluyendo ejemplos de solicitud/respuesta.
Acciones Permitidas en la Conciliación de PayOuts#
🔍 Consulta — Movimientos de Dinero
🔍 Consulta — Transacciones
🔍 Consulta — Historial de Balance Diario
Descripción: Consulta PayOuts a demanda por estado, ID externo, contraparte, rango de fechas o monto.
Qué esperar después de la acción: Una lista paginada de objetos Movimiento de Dinero con su status actual. Cómo Empezar#
1
Siempre proporciona external_id en cada PayOut
Es la forma más rápida de hacer coincidir un Movimiento de Dinero de Cobre con tu registro interno, y es consultable mediante el filtro external_id.
2
Suscríbete a los eventos de estado del Movimiento de Dinero en lugar de consultar repetidamente
3
Conoce los códigos de motivo de tu riel
4
Decide de antemano entre consultas a demanda y Reportes
Usa consultas a demanda para PayOuts individuales o lotes pequeños, y Reportes para conciliación por rango de fechas o de alto volumen.
Qué Esperar Después de Usar esta API#
1
Cada PayOut se resuelve en un par Movimiento de Dinero + Transacción emparejado
Los PayOuts completados muestran un débito; los rechazos o fallas reversados muestran un débito y un crédito compensatorio bajo el mismo money_movement_id.
2
Los balances de apertura y cierre se validan contra el Historial de Balance Diario
initial_balance y end_balance del Historial de Balance Diario coinciden con lo que calculas manualmente a partir de las Transacciones ordenadas.
3
Las discrepancias se aíslan a un money_movement_id específico
Cualquier discrepancia de balance se acota a un solo PayOut que puedes investigar directamente a través de sus registros de Movimiento de Dinero y Transacción.