Skip to main content
Lerian SPI is Lerian’s native messaging integration for Pix, reaching BACEN’s instant-payment system (SPI) and the DICT directory over the RSFN. It is a single deployable with three cooperating surfaces — the SPI settlement core, the DICT client, and BR Code — so its variable set is broad. All variables are set at deploy time and require a service restart. For the knobs that behave the same across every Lerian Go service — deployment posture, datastores, multi-tenancy, telemetry, streaming — see BYOC configuration essentials. In the tables below, Required marks a variable that must be set (globally, or under the condition named). means no default.
Most BACEN-facing variables are namespaced by surface: BACEN_SPI_* for the SPI settlement transport, BACEN_DICT_* for the DICT client, BACEN_BRCODE_* for BR Code JOSE signing, and BACEN_ICOM_* for the inbound long-poll channel.

Runtime and server

Authentication

Lerian SPI authorizes protected routes — including the systemplane admin API — through Access Manager.

BACEN callback (inbound from SPI)

SPI settlement transport (BACEN_SPI_*)

Connection to BACEN’s SPI settlement endpoint over the RSFN, with an optional secondary endpoint and the archive (ARQ) endpoint.

mutual TLS to BACEN

The BACEN_TLS_* files back the mutual-TLS channel to BACEN and are shared by the SPI and DICT clients.

Message signing and certificates

SPI messages are digitally signed. Pick a custody backend with BACEN_SPI_SIGNER_KIND.

Certificate validation (OCSP/CRL)

Payload resolver

Controls how large SPI payloads are stored and referenced.

Inbound channel (BACEN_ICOM_*)

Long-poll channel for messages BACEN pushes back to the participant.

DICT client (BACEN_DICT_*)

Client for BACEN’s Pix key directory (DICT), including the anti-fraud (NP) endpoint.

BR Code JOSE signing (BACEN_BRCODE_JOSE_*)

Signs dynamic BR Code payloads (JWS).

PII encryption and hashing

Every variable below is sensitive key or pepper material for encrypting and blind-indexing personal data at rest. Never commit or log a value; inject it at deploy time through your secret manager. Rotating a pepper or key requires a planned re-index/re-encryption.

PostgreSQL

Redis

Outbox and streaming

Lerian SPI publishes events through a transactional outbox and a lib-streaming producer, and consumes settlement events for BR Code. The streaming variables (STREAMING_ENABLED, STREAMING_BROKERS, STREAMING_CLOUDEVENTS_SOURCE, STREAMING_COMPRESSION, STREAMING_REQUIRED_ACKS, STREAMING_EVENT_POLICIES) follow the shared backbone — see Streaming and outbox. STREAMING_BROKERS is required whenever STREAMING_ENABLED=true.

Schedulers

Background jobs, each independently gated. All default off.

Rate limiting, idempotency, and connectivity

Systemplane and runtime configuration

See Systemplane for the API, namespaces, and required permissions.

Observability

Documentation

Health and readiness

Lerian SPI exposes GET /health (liveness), GET /readyz (readiness), and GET /version on the main HTTP port; /metrics runs on its own listener when enabled. See Health and readiness for the probe contract.