Saltar al contenido principal
Version: Siguiente

Operaciones de Depósito y Retiro

Este documento describe las operaciones de depósito y retiro, incluyendo flujos de trabajo y procedimientos de aprobación.

Operaciones de Depósito

Registro de Depósitos

Los depósitos se registran cuando se reciben fondos externos en la cuenta del cliente.

┌─────────────────────────────────────────────────────────────────┐
│ FLUJO DE DEPÓSITO │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Recepción de │───▶│ Registro │───▶│ Fondos │ │
│ │ fondos │ │ del depósito│ │ disponibles │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Crear un Depósito

Desde el Panel de Administración

  1. Navegar a Clientes > seleccionar cliente
  2. Ir a la cuenta de depósito
  3. Hacer clic en Registrar Depósito
  4. Completar:
    • Monto en USD
    • Referencia externa
  5. Confirmar operación

Via API GraphQL

mutation RecordDeposit($input: DepositRecordInput!) {
depositRecord(input: $input) {
deposit {
id
amount
reference
status
createdAt
}
}
}

Variables:

{
"input": {
"depositAccountId": "uuid-de-la-cuenta",
"amount": 100000,
"reference": "REF-001"
}
}

Estados del Depósito

EstadoDescripción
PENDINGDepósito registrado, pendiente de confirmación
CONFIRMEDDepósito confirmado y acreditado
CANCELLEDDepósito cancelado

Operaciones de Retiro

Flujo de Retiro

Los retiros requieren un proceso de aprobación antes de ser ejecutados.

┌─────────────────────────────────────────────────────────────────┐
│ FLUJO DE RETIRO │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Solicitud │───▶│ Aprobación │───▶│ Ejecución │ │
│ │ de retiro │ │ requerida │ │ del retiro │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Rechazado │ │
│ │ (opcional) │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Iniciar un Retiro

Desde el Panel de Administración

  1. Navegar a Clientes > seleccionar cliente
  2. Ir a la cuenta de depósito
  3. Hacer clic en Iniciar Retiro
  4. Completar:
    • Monto en USD
    • Referencia externa
  5. El retiro entra en proceso de aprobación

Via API GraphQL

mutation InitiateWithdrawal($input: WithdrawalInitiateInput!) {
withdrawalInitiate(input: $input) {
withdrawal {
id
amount
reference
status
createdAt
}
}
}

Estados del Retiro

EstadoDescripción
PENDING_APPROVALRetiro pendiente de aprobación
APPROVEDRetiro aprobado
CONFIRMEDRetiro ejecutado y confirmado
DENIEDRetiro rechazado
CANCELLEDRetiro cancelado

Proceso de Aprobación de Retiros

Integración con Gobernanza

Los retiros están sujetos al sistema de gobernanza con el tipo de proceso APPROVE_WITHDRAWAL_PROCESS.

┌─────────────────────────────────────────────────────────────────┐
│ APROBACIÓN DE RETIRO │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Withdrawal │───▶│ Governance │───▶│ Approval │ │
│ │ Initiate │ │ System │ │ Process │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Committee │ │
│ │ Decision │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Aprobar un Retiro

  1. Navegar a Aprobaciones Pendientes
  2. Seleccionar el retiro a aprobar
  3. Revisar detalles:
    • Cliente
    • Monto
    • Saldo disponible
  4. Hacer clic en Aprobar o Rechazar

Via API GraphQL

mutation ApproveWithdrawal($input: WithdrawalApproveInput!) {
withdrawalApprove(input: $input) {
withdrawal {
id
status
}
}
}

Integración Contable

Asientos de Depósito

Cuando se registra un depósito, se crean los siguientes asientos:

CuentaDébitoCrédito
Efectivo (Activo)X
Depósitos de Clientes (Pasivo)X

Asientos de Retiro

Cuando se confirma un retiro:

CuentaDébitoCrédito
Depósitos de Clientes (Pasivo)X
Efectivo (Activo)X

Consultas de Saldo

Saldo de Cuenta

query GetAccountBalance($accountId: ID!) {
depositAccount(id: $accountId) {
id
balance {
available
pending
total
}
}
}

Historial de Transacciones

query GetTransactionHistory($accountId: ID!, $first: Int) {
depositAccount(id: $accountId) {
deposits(first: $first) {
edges {
node {
id
amount
reference
status
createdAt
}
}
}
withdrawals(first: $first) {
edges {
node {
id
amount
reference
status
createdAt
}
}
}
}
}

Permisos Requeridos

OperaciónPermiso
Registrar depósitoDEPOSIT_CREATE
Ver depósitosDEPOSIT_READ
Iniciar retiroWITHDRAWAL_CREATE
Aprobar retiroWITHDRAWAL_APPROVE
Confirmar retiroWITHDRAWAL_CONFIRM

Recorrido en Panel de Administración: Depósitos y Retiros

Este flujo muestra la creación y gestión operativa de depósitos y retiros.

A) Crear un depósito

Paso 1. Haz clic en Crear global.

Abrir menú crear

Paso 2. Selecciona Crear Depósito.

Seleccionar crear depósito

Paso 3. Ingresa monto del depósito.

Ingresar monto depósito

Paso 4. Envía el formulario.

Enviar depósito

Paso 5. Confirma mensaje de éxito.

Éxito depósito

Paso 6. Verifica depósito en lista principal.

Depósito en lista

Paso 7. Verifica depósito en historial del cliente.

Depósito en historial

B) Crear un retiro

Paso 8. Haz clic en Crear para iniciar retiro.

Abrir retiro

Paso 9. Selecciona Crear Retiro.

Seleccionar crear retiro

Paso 10. Ingresa monto del retiro.

Ingresar monto retiro

Paso 11. Envía solicitud.

Enviar retiro

Paso 12. Verifica retiro en lista principal.

Retiro en lista

Paso 13. Verifica retiro en historial del cliente.

Retiro en historial

C) Gestionar resultado del retiro

Cancelar retiro pendiente

Paso 14. Haz clic en Cancelar.

Botón cancelar retiro

Paso 15. Confirma cancelación.

Confirmar cancelación

Paso 16. Verifica estado cancelado.

Estado retiro cancelado

Aprobar retiro pendiente

Paso 17. Haz clic en Aprobar.

Botón aprobar retiro

Paso 18. Confirma aprobación.

Confirmar aprobación

Paso 19. Verifica estado aprobado/confirmado.

Estado retiro aprobado