initiatedinitiated.processingprocessing cuando Cobre comienza a ejecutarlo.pending_approval (condicional)pending_approval.Si el money movement fue marcado con checker_approval = true, tu integración debe manejar este estado explícitamente: ya sea aprobándolo vía los endpoints de Approvals o esperando que permanezca pendiente hasta que tus operadores internos lo aprueben
completedcanceledfailedrejectedreturned (solo México)R008 Pago Devuelto por el Beneficiario.initiated → processinginitiated → pending_approval (si se requiere aprobación)pending_approval → processing (después de la aprobación)processing → completedprocessing → failed / rejectedprocessing → 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).
pending_approval, apruébalo o espera la aprobaciónprocessing, continúa monitoreandocompleted → ruta de éxitofailed → evalúa el código de error y estrategia de reintentorejected → corrige la entrada o trata como caso de negocio fallidoreturned → reconcilia la devolución y actualiza tu ledgercanceled → trata como no-op o cancelación intencional del usuario| Tipo de Movimiento de Dinero | Flujo | Origen | Tipo de Origen Permitido | Destino | Tipo de Destino Permitido |
|---|---|---|---|---|---|
| SPEI | Push | account_id | clabe | counterparty_id or account_id | clabe or spei_card |
| FAST PAY | Push | account_id | cobre_balance | counterparty_id or account_id | checking(cc), saving (ch), cobre_balance, electronic deposit (dp) |
| ACH | Push | account_id | checking(cc), saving (ch) or cobre_balance | counterparty_id or account_id | checking(cc), saving (ch) or electronic deposit (dp) |
| BREB | 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 |
| 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 |
| Estado | Código | Descripción |
|---|---|---|
| initiated | NA | NA |
| processing | NA | NA |
| completed | NA | NA |
| pending_approval | NA | NA |
| canceled | NA | NA |
| failed | F001 | Falla en el procesamiento del pago, por favor intenta de nuevo |
| failed | F002 | NSF - Fondos insuficientes en la cuenta designada |
| failed | F003 | Enlace de pago R2P expirado |
| failed | F004 | Se ha alcanzado el límite de monto de transacciones diarias |
| failed | F005 | El monto excede el límite máximo permitido de transacción |
| failed | F098 | No se pudo procesar el money movement en este momento |
| failed | F099 | No se pudo procesar el money movement en este momento |
| rejected | R000 | Transacción rechazada |
| rejected | R001 | Cuenta inactiva o bloqueada |
| rejected | R002 | La cuenta e identificación proporcionadas no coinciden |
| rejected | R004 | ID no válido |
| rejected | R005 | La cuenta no existe |
| rejected | R006 | Número de cuenta inválido |
| returned | R008 | Pago Devuelto por el Beneficiario |
| rejected | R009 | Excede el monto máximo permitido |
| rejected | R010 | Cuenta no autorizada para débito |
| rejected | R011 | Tipo de cuenta inválido. |
| rejected | R012 | El usuario ha abandonado la transacción |
| rejected | R015 | Cuenta no autorizada para ser acreditada |
| rejected | R016 | Pago rechazado por timeout |
| rejected | R017 | Pago rechazado por clave expirada |
| rejected | R018 | Pago rechazado por clave inválida |
| rejected | R019 | Pago rechazado por monto incorrecto |
| rejected | R020 | Pago rechazado por falla de autenticación del usuario |
| rejected | R021 | Fondos insuficientes en la cuenta del pagador |
| rejected | R023 | Pago cancelado por el usuario |
| rejected | R024 | Excede el número máximo permitido de transacciones |
| rejected | R025 | Información requerida faltante |
| rejected | R026 | Pago rechazado por servicios bancarios no disponibles |
| rejected | R027 | La cuenta excede el límite máximo permitido de transacción |
| rejected | R034 | Cuenta cerrada |
| rejected | R081 | El registro de la contraparte ha expirado |
| rejected | R082 | El registro de la contraparte ha sido cancelado |
| rejected | R084 | El registro de la contraparte ha sido rechazado |