The vocabulary
Where the commercial terms come from
Your credit engine prices a consignado loan. The rate, the annual rate, the CET, the IOF and the installment plan are contracted facts Lender records — never values Lender computes. Lender binds those terms to a loan product version. Money and rate fields cross the wire as decimal strings (never floats), consistent with the ledger’s money model.
Optional collateral (garantias)
A consignado contract can carry FGTS and rescission-benefit collateral alongside the payroll deduction. A contract either declares collateral and carries at least one of the three amounts, or declares none and carries none.
The two FGTS fields are money amounts (decimal strings, scale 2). The verbas fraction is a decimal string (scale 8). Lender validates each field.
Collateral is off-balance: FGTS balances stay in CAIXA custody and never post to the ledger. Lender tracks the pledge as a domain record on the contract, not as a Midaz posting.
The rail lifecycle
The Dataprev rail combines authenticated HTTP commands with asynchronous business facts. On
develop, averbação is admitted through the Consignado HTTP API; the gateway does not consume an averbação command from the Lender stream.
- Lender commands use
lerian.streaming.lender.commands. - Consignado facts use
lerian.streaming.consignado-gw. - Event identity comes from source-qualified CloudEvent headers, not from a per-event topic.
Use the Consignado API reference for rail commands and queries. The producer and consumer contracts live in Lender events and Consignado events.
Contracting gate
CONSIGNADO_ENABLED defaults to true. The contratação route, its CCB signer, and the inbound averbação-confirmed consumer are retired; this setting now gates only the legacy inbound averbação-rejected handling. Servicing for existing contracts remains available. When you disable it, also keep CONSUMER_CONSIGNADO_AVERBACAO_REJECTED_ENABLED off; startup rejects that contradictory configuration. The replacement booking and payment flows configure independently.
Optional: reconciliation with Matcher
This integration is configuration-gated and requires Matcher to use
STREAMING_CLOUDEVENTS_SOURCE=matcher. Lender then consumes match_run.completed from lerian.streaming.matcher and routes ce-source: matcher, ce-type: studio.lerian.matcher.match_run.completed, ce-resourcetype: match_run, and ce-eventtype: completed. If Matcher uses another source, inspect its streaming manifest and align both sides before enabling the integration. The handler translates the verdict into a PDD stage transition and the corresponding ledger posting intent.
Next steps
Brazil regulatory pack
CET, IOF, capitalization consent, PDD staging, and the rest of the BR profile.
Lender events
The wire contract, the topics Lender publishes, and how a handler stays safe.

