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

# Integrating with Lerian SLC

> Integrating with Lerian SLC: CloudEvents outbox families for card settlement lifecycle and clearing, HMAC-signed webhooks, and optional Midaz and Reporter.

Lerian SLC is event-first at its edges. It consumes Nuclea's inbound messages. It emits its business facts through a **transactional outbox** onto the platform's streaming backbone and to **HMAC-signed webhooks**. Every event carries a **CloudEvents** envelope. Lerian SLC publishes an event only after its state change commits.

## What it consumes

***

From Nuclea inbound, over the **RSFN**:

* **GEN0015**
* **SLC0001** — clearing preview and final
* **SLC0002**
* **PAG0101** — operational status

Lerian SLC correlates each return seam by the key the counterparty echoes: a **RET** line by its 20-position control number, an **ASLC023** or D+1 line by its **NUliquid**, and a **PRO** at file level by the transmitted slice's control number.

## What it emits

***

Every emission goes through the transactional outbox. Lerian SLC publishes an event if and only if its state change commits. Each event carries a CloudEvents envelope. The platform delivers it on the streaming backbone and to HMAC-signed webhooks.

* **Operation lifecycle events** — one per operation state transition.
* **`operation.status_relayed`** — the rail relayed an operation status to the IF Domicílio.
* **`operation.forward_rejected`** — an outbound submission was parked and needs operator action. The payload, not the event name, says which leg and why. `stage` is `forward` — the leg to the IF Domicílio, paired with `parkReason` `permanent_rejection` — or `dispatch`, the leg to Núclea, paired with `attempt_budget_exhausted`. The payload's operation ids are what the un-park endpoint takes.
* **`cancellation.confirmed_by_domicile`** — the IF Domicílio confirmed a cancellation and the event carries the NUliquid.
* **`d1.value_mismatch`** — a D0-versus-D+1 value divergence.
* **`certificate.expiring`** — a certificate approaching expiry.
* The **`clearing.*`** family — `cycle_opened`, `cycle_closed`, `cycle_recalculated`, `preview_available`, `final_available`, `credit_settled`, `credit_returned`, `deposit_required`, `deposit_deadline_approaching`, and `divergence_reported`.

The domicile-flow webhooks carry the **NUliquid**. Consumers use it to correlate each operation's merchant credit and its domicile-return evidence.

## Midaz touchpoint

***

Lerian SLC is standalone. It does not post to a ledger itself. **Midaz** is an **optional** consumer. Midaz can subscribe to Lerian SLC's events or call its API to mirror settlement into the ledger. Lerian SLC does not depend on Midaz.

## Reporter touchpoint

***

**Reporter** is an **optional** consumer of Lerian SLC's events. Reporter can also serve as an **optional pluggable provider of ASLC materialization** through templates. Lerian SLC keeps regulatory ownership of the ASLC layout. Reporter only renders it when you plug it in.

## Money-path boundary

***

Lerian SLC owns the card-settlement messaging with Nuclea. It does not perform the monetary settlement itself. The netted position settles at the SLC and Nuclea. The reserve leg settles at BACEN. The card-domain deferred-net settlement family reaches Lerian SLC relayed from [Lerian SILOC](/en/rails/native/siloc/what-is-lerian-siloc), the participant-side SILOC connectivity.

## API conventions

***

* **Idempotent intake.** Canonical API submissions are idempotent by `external_id`. Lerian SLC rejects a duplicate `external_id`, so a retried submission never double-settles.
* **Online auth.** mTLS and a per-request JWS signature secure each individual online operation over REST.
* **Certificates are references, not secrets.** A registered certificate carries its public certificate and a custody reference. Lerian SLC never stores or returns the private key.
