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
- Navegar a Clientes > seleccionar cliente
- Ir a la cuenta de depósito
- Hacer clic en Registrar Depósito
- Completar:
- Monto en USD
- Referencia externa
- 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
| Estado | Descripción |
|---|---|
| PENDING | Depósito registrado, pendiente de confirmación |
| CONFIRMED | Depósito confirmado y acreditado |
| CANCELLED | Depó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
- Navegar a Clientes > seleccionar cliente
- Ir a la cuenta de depósito
- Hacer clic en Iniciar Retiro
- Completar:
- Monto en USD
- Referencia externa
- 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
| Estado | Descripción |
|---|---|
| PENDING_APPROVAL | Retiro pendiente de aprobación |
| APPROVED | Retiro aprobado |
| CONFIRMED | Retiro ejecutado y confirmado |
| DENIED | Retiro rechazado |
| CANCELLED | Retiro 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
- Navegar a Aprobaciones Pendientes
- Seleccionar el retiro a aprobar
- Revisar detalles:
- Cliente
- Monto
- Saldo disponible
- 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:
| Cuenta | Débito | Crédito |
|---|---|---|
| Efectivo (Activo) | X | |
| Depósitos de Clientes (Pasivo) | X |
Asientos de Retiro
Cuando se confirma un retiro:
| Cuenta | Débito | Cré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ón | Permiso |
|---|---|
| Registrar depósito | DEPOSIT_CREATE |
| Ver depósitos | DEPOSIT_READ |
| Iniciar retiro | WITHDRAWAL_CREATE |
| Aprobar retiro | WITHDRAWAL_APPROVE |
| Confirmar retiro | WITHDRAWAL_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.

Paso 2. Selecciona Crear Depósito.

Paso 3. Ingresa monto del depósito.

Paso 4. Envía el formulario.

Paso 5. Confirma mensaje de éxito.

Paso 6. Verifica depósito en lista principal.

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

B) Crear un retiro
Paso 8. Haz clic en Crear para iniciar retiro.

Paso 9. Selecciona Crear Retiro.

Paso 10. Ingresa monto del retiro.

Paso 11. Envía solicitud.

Paso 12. Verifica retiro en lista principal.

Paso 13. Verifica retiro en historial del cliente.

C) Gestionar resultado del retiro
Cancelar retiro pendiente
Paso 14. Haz clic en Cancelar.

Paso 15. Confirma cancelación.

Paso 16. Verifica estado cancelado.

Aprobar retiro pendiente
Paso 17. Haz clic en Aprobar.

Paso 18. Confirma aprobación.

Paso 19. Verifica estado aprobado/confirmado.
