> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo funciona Lerian CCS

> Cómo construye Lerian CCS el lote diario ACCS001, lo envía a través de Lerian STA, registra solicitudes de detalle y transferencias, y concilia la posición aceptada.

Lerian CCS ejecuta un ciclo regulatorio por **fecha de movimiento** y por **configuración**. Cada archivo que sale o llega a Lerian CCS viaja a través de [Lerian STA](/es/rails/sta/what-is-lerian-sta), y cada cambio de estado llega a la cadena de auditoría.

## De dónde vienen los datos del cliente

***

Lerian CCS no guarda una copia de tu base de clientes. **Lerian Reporter** genera el render del archivo ACCS001 diario a partir de tus datos de clientes contra una plantilla registrada. Lerian CCS lee los bytes generados y crea un elemento de línea del lote por cada operación del archivo.

El Reporter es un upstream obligatorio. Lerian CCS se niega a iniciar sin la dirección del Reporter, y un Reporter inalcanzable saca a Lerian CCS del estado listo. Un identificador de plantilla ACCS001 vacío rechaza la aprobación con `MYS-0008`.

## Informes (ACCS001)

***

Un lote pertenece a una fecha de movimiento. Una regla responde qué fecha de movimiento puede transmitir la institución ahora, y si una fecha proporcionada es aceptable. Una fecha fuera de la regla falla con `CCS-0012`.

El lote recorre entonces una máquina de estados:

| Estado                                                            | Qué significa                                                |
| ----------------------------------------------------------------- | ------------------------------------------------------------ |
| `GENERATING` → `GENERATED`                                        | Lerian CCS genera el lote y lo valida.                       |
| `PENDING_REVIEW`                                                  | El lote espera la decisión de un operador.                   |
| `AWAITING_RENDER`                                                 | Un operador aprobó el lote, y el render está en curso.       |
| `SUBMITTED`                                                       | Los bytes generados llegaron y fueron enviados a Lerian STA. |
| `FORMAT_ACCEPTED`                                                 | La transmisión se completó.                                  |
| `ACCEPTED`                                                        | BACEN aceptó la remesa.                                      |
| `PARTIALLY_REJECTED`                                              | BACEN tomó el archivo y rechazó algunos registros.           |
| `FORMAT_REJECTED`                                                 | BACEN rechazó el archivo.                                    |
| `REJECTED`, `GENERATION_FAILED`, `RENDER_FAILED`, `SUBMIT_FAILED` | Fallos terminales.                                           |

Aprobar y rechazar son las únicas decisiones de un operador sobre un lote en revisión. Aprobar despacha el render y deja el lote en espera, así que ningún camino síncrono llega hasta el traspaso. Un render que se rinde termina en `RENDER_FAILED`, y la recuperación es un lote nuevo.

BACEN responde en el canal de archivos de entrada. Un ACCS002 lleva el veredicto a nivel de archivo. Un ACCS003 lleva un veredicto por registro, y Lerian CCS hace coincidir cada veredicto con su elemento de línea mediante la tupla regulatoria. Un veredicto que no coincide con ningún elemento de línea falla en modo cerrado en lugar de descartarse en silencio. Un registro aceptado promueve su relación a la posición aceptada. Un registro rechazado deja una fila de error que tus operadores pueden leer.

Después de un rechazo, un operador puede crear un lote de reenvío a partir del origen terminal.

Un monitor en segundo plano pregunta, por configuración y fecha de movimiento, si BACEN confirmó una remesa fechada en esa fecha. Responde `PRESENT`, `MISSING` o `UNDETERMINED`. La obligación se mantiene incluso sin movimiento, así que `MISSING` es una omisión regulatoria. `UNDETERMINED` indica que el control no pudo responder.

## Solicitudes de detalle (CCS0001 y CCS0003)

***

BACEN envía una solicitud de detalle como un archivo. Lerian STA lo descarga y entrega la referencia a Lerian CCS a través del broker de mensajes. `CCS0001` consulta por persona y `CCS0003` consulta por cuenta.

Lerian CCS es idempotente respecto del identificador de correlación. Analiza el archivo, deriva el hash del documento y el texto cifrado, y calcula el plazo regulatorio a partir del calendario bancario. Escribe la solicitud y su fila de auditoría en una sola transacción.

Tus operadores listan las solicitudes, ordenadas por plazo, con todos los documentos enmascarados. Un operador puede cancelar una solicitud que sigue en `RECEIVED` o `PROCESSING`. Una cancelación después de que se cierra la ventana devuelve `CCS-0066`.

BACEN también envía informes de penalización como ACCS009 por el mismo canal. Ese documento es un informe de texto columnar sin formato XML. Lerian CCS lo analiza y almacena la ocurrencia.

## Transferencias (ACCS010 a ACCS012)

***

Una transferencia mueve tramos de relación hacia otra institución, identificada por su raíz de CNPJ. Un operador crea la transferencia como un borrador junto con los tramos que cubre. Tus operadores listan las transferencias de la más reciente a la más antigua, hasta 200 por página, y leen cualquier transferencia con sus tramos.

## Cumplimiento y órdenes judiciales (ACCS004)

***

BACEN publica la posición que mantiene para la institución como un ACCS004. Lerian CCS analiza ese informe y ejecuta una conciliación contra la posición aceptada que mantiene. Solo una ejecución por configuración puede estar en curso. Una ejecución termina como `COMPLETED` con sus conteos de coincidencias y divergencias, o como `FAILED` con un diagnóstico. Tus operadores listan las divergencias de una ejecución, con cada documento enmascarado hasta sus últimos cuatro caracteres.

La comparación se basa en un hash con clave del documento. Lerian CCS nunca almacena un documento en texto plano. Cifra un documento solo cuando una fila de divergencia debe conservarlo.

Una orden judicial registra un `BLOCK` o `UNBLOCK` judicial contra un documento para una configuración, bajo la LC 105/2001. Un bloqueo mantiene esa identidad fuera de la remesa. Un operador puede revocar una orden judicial activa, y la revocación es blanda.

## Registro de auditoría y eventos

***

Cada cambio de estado escribe una entrada en un registro de auditoría de solo anexado, dentro de la misma transacción que el cambio en sí. Cada entrada lleva el SHA-256 de la entrada anterior combinado con la forma canónica del registro, así que las entradas forman una cadena por institución. Un operador puede pedirle al servicio que verifique una cadena de principio a fin.

Lerian CCS también publica un evento de negocio cuando el lote ACCS001 se envía a Lerian STA. Escribe el evento a través de un outbox transaccional, así que el evento y el cambio de estado que reporta hacen commit juntos. La publicación de eventos por el tema de streaming permanece desactivada hasta que un operador la activa.
