> ## 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.

# Integración con Lerian STA

> Integración con Lerian STA: registros de auditoría y de negocio mediante outbox transaccional, comprobantes entrantes y enrutamiento por producto de origen.

Lerian STA es event-first en sus bordes. Una transición terminal puede crear de forma atómica registros separados de auditoría y de negocio mediante **outboxes transaccionales**, con un sink de log duradero adicional tras el commit. Un registro de outbox llega a los consumidores solo cuando se confirma el cambio de estado de la transferencia. Los consumidores son los servicios de **producto de origen** que son dueños de los archivos que entrega Lerian STA.

## Canales de eventos

***

Lerian STA publica en dos canales:

* Un **canal de auditoría** que lleva los hechos de éxito y fallo de las transferencias entrantes, para observabilidad y conciliación.
* Un **canal de negocio firmado**, enrutado como `sta.{direction}.{sanitized-source-product}` con un fallback `unrouted`, para los consumidores de productos externos. Sus tipos de evento terminales son `sta.transfer.accepted`, `sta.transfer.rejected`, `sta.transfer.inconsistent`, `sta.transfer.canceled`, `sta.transfer.download_finished` y `sta.transfer.download_not_authorized`.

Los eventos de negocio llevan un **código de error** enumerado solo para los resultados que no son de éxito. Los eventos `Accepted` y `DownloadFinished` exitosos lo omiten. Los eventos de éxito entrante llevan el **comprobante**.

## El comprobante

***

Al completarse una descarga entrante, Lerian STA emite su evento terminal **download-finished**, enrutado por el producto de origen del archivo. El evento lleva un **comprobante** (`object_key`, `sha256`, `size_bytes` y `file_name`), pero no los bytes en sí. Para los hechos terminales entrantes, `document_code` lleva el código observado de BACEN. Cuando el mnemónico persistido y el código se corroboran entre sí, `document_type` lleva el mnemónico. De lo contrario, conserva el código por compatibilidad.

El producto de dominio consumidor se suscribe a su propia clave. Obtiene el artefacto duradero por su clave de objeto y **vuelve a verificar** el SHA-256. Luego concilia el resultado en el **ledger del cliente**. Lerian STA es el límite de transporte e integridad. El producto consumidor es dueño del asiento en el ledger.

## Límite del ledger

***

Lerian STA no escribe en el ledger del cliente. Entrega el archivo y el comprobante. El producto consumidor hace la conciliación en el ledger, por ejemplo **Lerian SISBAJUD** para los archivos de órdenes judiciales de activos. Esto mantiene a Lerian STA como una capa pura de transporte e integridad, independiente del significado de negocio de cualquier archivo.

## Convenciones de integración

***

* **Eventos acoplados al commit.** Todo registro de outbox de auditoría o de negocio está disponible solo después de que se confirma el cambio de estado de su transferencia.
* **Comprobante, no payload.** Los consumidores reciben una referencia al artefacto duradero, la obtienen y vuelven a verificar su SHA-256 antes de actuar sobre ella.
* **Suscripción por clave.** Los clientes eligen sus suscripciones al broker. STA enruta los eventos de negocio firmados por dirección y producto de origen saneado, con un fallback `unrouted`. No exige que solo un suscriptor pueda recibir un archivo.
