# Estructura

### Diagrama de Contexto

El **Depósitos y Retiros Microservice** gestiona y procesa todas las transacciones de depósito y retiro de usuarios, asegurando un manejo seguro y preciso de las operaciones financieras, el historial de transacciones y el cumplimiento con las regulaciones financieras. Este microservicio interactúa con:

* **Casino Operator**: Usuarios administrativos que gestionan y monitorean las transacciones en la plataforma.
* **Casino User**: Usuarios finales que realizan depósitos y retiros en la plataforma.
* **Payment Gateway Systems**: Sistemas externos que procesan las transacciones financieras.
* **Crypto System**: Sistemas de manejo de criptomonedas que gestionan las transacciones y conversiones en criptomonedas.

### Diagrama de Contenedores

El Diagrama de Contenedores ilustra la arquitectura interna del microservicio de **Depósitos y Retiros**, incluyendo los siguientes contenedores clave:

* **API Application**: Maneja las solicitudes de transacciones de los usuarios, como depósitos y retiros, e interactúa con las pasarelas de pago y sistemas de criptomonedas.
* **Database**: Utiliza MongoDB para almacenar los registros de transacciones, actualizaciones de saldos de usuarios, y auditorías de transacciones, soportando tanto operaciones con moneda fiduciaria como criptomonedas.

### Diagrama de Componentes

El Diagrama de Componentes detalla los elementos dentro del **Depósitos y Retiros Microservice** que manejan las operaciones específicas:

* **Deposits Controller**: Gestiona las solicitudes de depósito de los usuarios, validando la información y asegurando que los fondos se acrediten correctamente.
* **Withdrawals Controller**: Maneja las solicitudes de retiro de fondos, validando las solicitudes y procesando las transacciones.
* **Crypto Exchange Controller**: Responsable de manejar las conversiones y transacciones en criptomonedas.
* **Transaction Controller**: Coordina las transacciones para asegurar que se ejecuten correctamente, incluyendo validaciones y ajustes de saldos.
* **Payment Integration Controller**: Gestiona la integración con las pasarelas de pago externas, garantizando la interoperabilidad y la seguridad en las transacciones.
* **Crypto Controller**: Coordina con los sistemas de criptomonedas para procesar y auditar transacciones en criptomonedas.
* **Transaction Audit Controller**: Realiza auditorías de las transacciones para asegurar la integridad y el cumplimiento normativo.

### Links:

* Diagrama C4: <https://lucid.app/documents#/documents?folder_id=378199029&joj=378199029>

<figure><img src="/files/TnnqmATr7RKhdi2PpNzY" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-affiliates.inlaze.com/gaming-docs/architecture/sistema-de-depositos-y-retiros/estructura.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
