| Identificador | Descripción | Ejemplo | Cuándo se genera |
|---|---|---|---|
| Money Movement ID | Identificador único de la solicitud/operación de pago | mm_ady1n4g4ud | Cuando se crea el money movement |
| Transaction ID | Identificador único del asiento en el libro contable | trx_sjrirldkmk | Cuando los fondos se debitan o acreditan a tu Cobre Balance |
mm_ seguido de una cadena alfanuméricacurl --request POST \
--url https://api.cobre.co/v1/money_movements \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'idempotency: ' \
--data '{
"source_id": "acc_1232145215",
"destination_id": "cp_5YFeIDhNkz",
"amount": 1000,
"external_id": "clientUser1234",
"metadata": {
// Will change according to the money movement type
},
"checker_approval": false
}'{
"id": "mm_0987654321",
"batch_id": "bat_0987654321" || "chk_0987654321",
"external_id": "clientUser1234",
"mm_approval_id": "",
"creator": "usr_bGcdf26rR4",
"type": "fast_pay",
"geo": "col",
"status": {
"state": "initiated",
"code": "string",
"description": "string"
},
"source_id": "acc_KJnAkypWSc",
"source": {},
"destination_id": "cp_5YFeIDhNkz",
"destination": {},
"currency": "cop",
"amount": 100,
"metadata": {
// Will change according to the money movement type
},
"created_at": "2026-06-24T15:37:37Z",
"updated_at": "2026-06-24T15:37:38Z",
"checker_approval": false
}| Campo | Descripción | Requerido |
|---|---|---|
source_id | Tu Cobre Balance (cuenta de origen) | ✅ Sí |
destination_id | Cuenta del beneficiario/counterparty | ✅ Sí |
amount | Monto a desembolsar (en unidades menores, p. ej., centavos) | ✅ Sí |
external_id | Tu referencia única para seguimiento | No, pero recomendado |
┌─────────────────────────────────────┐
│ 1. Create PayOut Money Movement │
│ POST /v1/money_movements │
│ • Amount: 10,000 COP │
│ • External ID: INV-2025-001 │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 2. Money Movement Created │
│ • MM ID: mm_ady1n4g4ud │
│ • Status: processing │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 3. Debit Transaction Created │
│ • TRX ID: trx_sjrirldkmk │
│ • Type: debit │
│ • Amount: -10,000 COP │
│ • Account: Source Balance │
│ • Instant application │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 4. Funds Sent Successfully │
│ • MM Status: completed │
│ • Destination received funds │
└─────────────────────────────────────┘mm_ady1n4g4udINV-2025-001processingtrx_sjrirldkmkdebit-10,000 COPmm_ady1n4g4udcompleted| Money Movement ID | External ID | Tipo | Monto | Transactions | Impacto final en saldo |
|---|---|---|---|---|---|
mm_ady1n4g4ud | INV-2025-001 | PayOut | 10,000 COP | 1 débito (trx_sjrirldkmk) | -10,000 COP |
┌─────────────────────────────────────┐
│ 1. Create PayOut Money Movement │
│ POST /v1/money_movements │
│ • Amount: 10,000 COP │
│ • External ID: INV-2025-002 │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 2. Money Movement Created │
│ • MM ID: mm_xyz789def │
│ • Status: processing │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 3. Debit Transaction Created │
│ • TRX ID: trx_abc123first │
│ • Type: debit │
│ • Amount: -10,000 COP │
│ • Account: Source Balance │
│ • Instant application │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 4. Destination Rejects Payment │
│ • MM Status: rejected │
│ • Reason: Invalid account, etc. │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 5. Credit Transaction Created │
│ • TRX ID: trx_abc123second │
│ • Type: credit (reversal) │
│ • Amount: +10,000 COP │
│ • Account: Source Balance │
│ • Funds returned to origin │
└─────────────────────────────────────┘mm_xyz789defINV-2025-002processingtrx_abc123firstdebit-10,000 COPrejectedtrx_abc123secondcredit+10,000 COPmm_xyz789defrejected| Money Movement ID | External ID | Tipo | Monto | Transactions | Impacto final en saldo |
|---|---|---|---|---|---|
mm_xyz789def | INV-2025-002 | PayOut | 10,000 COP | 2 transactions: 1. Débito: trx_abc123first (-10,000)2. Crédito: trx_abc123second (+10,000) | 0 COP (revertido) |
money_movement_id y external_id en tus registros| Campo | Descripción | Requerido |
|---|---|---|
counterparty_id | Información del pagador | ✅ Sí |
destination_id | Tu Cobre Balance (a donde llegan los fondos) | ✅ Sí |
amount | Monto a cobrar | ✅ Sí (o monto abierto para CheckOut) |
external_id | Tu referencia única para seguimiento | No, pero recomendado |
payment_methods | Métodos de pago permitidos | ✅ Sí |
┌─────────────────────────────────────┐
│ 1. Create Direct Link │
│ POST /v1/money_movements │
│ • Amount: 10,000 COP │
│ • External ID: ORDER-2025-050 │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 2. Direct Link Created │
│ • MM ID: mm_payin123abc │
│ • Payment link URL generated │
│ • Status: processing │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 3. Payer Opens Link │
│ • Chooses payment method │
│ • Completes payment │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 4. Payment Confirmed │
│ • MM Status: completed │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 5. Credit Transaction Created │
│ • TRX ID: trx_credit999xyz │
│ • Type: credit │
│ • Amount: +10,000 COP │
│ • Account: Destination Balance │
└─────────────────────────────────────┘mm_payin123abcORDER-2025-050pendingcompletedtrx_credit999xyzcredit+10,000 COPmm_payin123abccompleted| Money Movement ID | External ID | Tipo | Monto | Transactions | Impacto final en saldo |
|---|---|---|---|---|---|
mm_payin123abc | ORDER-2025-050 | PayIn (Direct Link) | 10,000 COP | 1 crédito (trx_credit999xyz) | +10,000 COP |
┌─────────────────────────────────────┐
│ 1. Create CheckOut │
│ POST /v1/checkouts │
│ • Amount: 10,000 COP (or open) │
│ • External ID: INV-2025-150 │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 2. CheckOut Created │
│ • CheckOut ID: chk_809821845 │
│ • Payment page URL generated │
│ • Status: pending │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 3. Payer Opens CheckOut │
│ • Chooses payment method │
│ • Enters amount (if open) │
│ • Completes payment │
│ MM ID: mm_checkout456def │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 4. Payment Confirmed │
│ • MM Status: completed │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 5. Credit Transaction Created │
│ • TRX ID: trx_checkout888ghi │
│ • Type: credit │
│ • Amount: +10,000 COP │
│ • Account: Destination Balance │
└─────────────────────────────────────┘completed| Money Movement ID | External ID | Tipo | Monto | Transactions | Impacto final en saldo |
|---|---|---|---|---|---|
mm_checkout456def | INV-2025-150 | PayIn (CheckOut) | 10,000 COP | 1 crédito (trx_checkout888ghi) | +10,000 COP |
┌─────────────────────────────────────┐
│ 1. Create Direct Link/CheckOut │
│ • Amount: 10,000 COP │
│ • External ID: ORDER-2025-999 │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 2. Money Movement Created │
│ • MM ID: mm_failed777ghi │
│ • Status: processing │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 3. Payer Attempts Payment │
│ • Payment method fails │
│ • Insufficient funds, etc. │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ 4. Payment Rejected │
│ • MM Status: rejected │
│ • NO transaction created │
└─────────────────────────────────────┘mm_failed777ghiORDER-2025-999pendingrejectedrejected| Money Movement ID | External ID | Tipo | Monto | Transactions | Impacto final en saldo |
|---|---|---|---|---|---|
mm_failed777ghi | ORDER-2025-999 | PayIn | 10,000 COP | 0 transactions | 0 COP (no se recibieron fondos) |
completedprocessing para la acción del pagadorrejected tendrán 0 transactions| Campo | Descripción | Ejemplo |
|---|---|---|
id | Identificador único de la transaction | trx_sjrirldkmk |
metadata.money_movement_id | Money movement vinculado | mm_ady1n4g4ud |
type | Tipo de operación | col_debit, col_credit, r2p_credit |
credit_debit_type | Débito o crédito | debit, credit |
amount | Monto de la transaction | 10000 (en unidades menores) |
currency | Código de moneda | COP |
account_id | Tu Cobre Balance afectado | acc_123abc |
metadata.mm_external_id | Tu referencia | INV-2025-001 |
created_at | Timestamp de la transaction | 2024-06-24T15:37:38Z |
GET /v1/reports{
"id": "repo_kJs8GO03vC",
"resource": "string",
"start_date": "2024-09-28T00:00:00Z",
"end_date": "2024-10-05T00:00:00Z",
"offset": "-05:00",
"requested_at": "2024-10-28T12:39:11Z",
"created_at": "2024-10-28T12:39:11Z",
"metadata": {
"account_id": "acc_123456",
"statement_date": "2025-05"
},
"file_name":"20240928_20241028_transactions_repo_kjs8go03vc.csv",
"file_format": "csv",
"file_layout": "transactions_csv_v1",
"sensitive_data": false
}Money Movement: mm_ady1n4g4ud
├─ Transaction 1: trx_sjrirldkmk (debit: -10,000 COP)
Money Movement: mm_xyz789def
├─ Transaction 1: trx_abc123first (debit: -10,000 COP)
├─ Transaction 2: trx_abc123second (credit: +10,000 COP)external_id con tus sistemas internos:Cobre External ID: INV-2025-001
→ Coincide con factura interna: INV-2025-001
→ Money Movement: mm_ady1n4g4ud
→ Impacto neto: -10,000 COP
Saldo anterior: 100,000 COP
Créditos (PayIns): +50,000 COP
Débitos (PayOuts): -30,000 COP
Saldo actual: 100,000 + 50,000 - 30,000 = 120,000 COP
Money Movements: 5 PayOuts
Transactions esperadas: 5 débitos
Impacto neto: -50,000 COP (suma de todos los PayOuts)
Money Movement: mm_rejected001
Transaction 1: -10,000 COP (debit)
Transaction 2: +10,000 COP (credit)
Impacto neto: 0 COP
Estado: rejected
Money Movement: mm_payin001
Transaction 1: +25,000 COP (credit)
Impacto neto: +25,000 COP
Estado: completed
Money Movement: mm_pending001
Transactions: 0
Impacto neto: 0 COP
Estado: pending
Acción: Esperar a que el pagador complete el pago
external_id en nullexternal_id en tus solicitudes al APIexternal_id no únicoexternal_id sea único por money movementcompletedcompleted
POST /v1/money_movements
POST /v1/money_movements
POST /v1/checkouts
GET /v1/money_movements/{money_movement_id}
GET /v1/transactions/{transaction_id}
GET /v1/reports
money_movement_id como identificador principalexternal_id para la conciliación