Saltar al contenido principal
Version: Siguiente

Sistema de Depósitos y Retiros

El Sistema de Depósitos y Retiros gestiona las cuentas de depósito de clientes y facilita las operaciones de depósito/retiro dentro de la plataforma.

Propósito

El sistema maneja el ciclo de vida completo de los fondos del cliente:

  • Creación de cuentas de depósito
  • Registro de depósitos
  • Procesamiento de retiros
  • Flujos de trabajo de aprobación

Todas las operaciones financieras están integradas con Cala Ledger para contabilidad de partida doble.

Arquitectura del Sistema

┌─────────────────────────────────────────────────────────────────┐
│ CoreDeposit │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │DepositAccountRepo│ │ DepositRepo │ │ WithdrawalRepo │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ DepositLedger │ │
│ │ (Operaciones contables) │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ApproveWithdrawal │ │
│ │ (Proceso de aprobación) │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Entidades Principales

Cuenta de Depósito (DepositAccount)

CampoTipoDescripción
idUUIDIdentificador único
publicIdStringID público legible
accountHolderIdUUIDID del cliente titular
statusEnumEstado de la cuenta
accountTypeEnumTipo de cuenta

Depósito (Deposit)

CampoTipoDescripción
idUUIDIdentificador único
depositAccountIdUUIDCuenta destino
amountUsdCentsMonto en centavos USD
referenceStringReferencia externa
statusEnumEstado del depósito

Retiro (Withdrawal)

CampoTipoDescripción
idUUIDIdentificador único
depositAccountIdUUIDCuenta origen
amountUsdCentsMonto en centavos USD
referenceStringReferencia externa
statusEnumEstado del retiro

Tipos de Cuenta

TipoDescripciónUso
IndividualCuenta personalClientes individuales
GovernmentEntityCuenta gubernamentalEntidades de gobierno
PrivateCompanyCuenta empresarialEmpresas privadas
BankCuenta bancariaInstituciones financieras
FinancialInstitutionCuenta institucionalOtras instituciones
ForeignAgencyOrSubsidiaryCuenta foráneaAgencias extranjeras
NonDomiciledCompanyCuenta no residenteEmpresas no domiciliadas

Estados de Cuenta

EstadoDescripción
ACTIVECuenta operativa — depósitos y retiros permitidos
INACTIVECuenta desactivada
FROZENCuenta congelada — no se permiten nuevos depósitos ni retiros
CLOSEDCuenta cerrada permanentemente (requiere saldo cero)

Operaciones del Ciclo de Vida de la Cuenta

Congelar Cuenta

Congelar una cuenta de depósito impide todos los nuevos depósitos y retiros, manteniendo la cuenta y sus saldos visibles. Se utiliza para retenciones de cumplimiento o investigaciones de disputas.

  • La cuenta transiciona de ACTIVE a FROZEN
  • Los saldos liquidados y pendientes permanecen visibles
  • Se emite un evento DepositAccountFrozen
  • Una cuenta INACTIVE o CLOSED no puede ser congelada

Descongelar Cuenta

Descongelar restaura una cuenta congelada a operación normal, habilitando nuevamente depósitos y retiros.

  • La cuenta transiciona de FROZEN a ACTIVE
  • Se emite un evento DepositAccountUnfrozen
  • La operación es idempotente — descongelar una cuenta ya activa no tiene efecto

Cerrar Cuenta

Cerrar desactiva permanentemente una cuenta de depósito. Esta acción no puede revertirse.

  • Requiere saldo cero — tanto el saldo liquidado como el pendiente deben ser cero
  • Una cuenta FROZEN no puede cerrarse directamente; primero descongelar
  • La cuenta contable correspondiente se bloquea al cierre
  • Se emite un evento DepositAccountClosed

Documentación Relacionada

Recorrido en Panel de Administración: Alta de Cuenta de Depósito

Las cuentas de depósito son prerequisito para operar transacciones. En onboarding, el operador puede necesitar crearlas desde el perfil del cliente cuando no existen.

Paso 1. Detecta ausencia de cuenta en el banner del detalle del cliente.

Banner sin cuenta de depósito

Paso 2. Abre el diálogo para crear la cuenta.

Diálogo crear cuenta de depósito

Paso 3. Confirma creación exitosa.

Cuenta de depósito creada

Verificaciones operativas posteriores:

  • estado de cuenta en ACTIVE,
  • relación cliente-cuenta correcta,
  • cuenta disponible para iniciar depósitos y retiros.