Skip to main content
Lender publishes a business event whenever a product, an application, a loan account, or a Brazilian regulatory record changes state. Subscribe to those events and your service reacts to each change as it happens, with no polling loop. Every event is outbox-backed and tenant-scoped. This page covers the consumer side: what arrives on the wire, which events exist, and how to make a handler safe.

Turn publication on


Event publication is a deployment choice. Origination works without it. Lender refuses to start when publication is on and any of these is wrong, so a misconfigured deployment fails at startup instead of dropping events quietly.

The wire contract


The CloudEvents source is the fixed literal lender, and the source also namespaces every topic. A subscriber therefore reads: For a disbursement that resolves to:
Messages travel in CloudEvents binary mode, version 1.0. The context attributes ride as message headers: ce-specversion, ce-id, ce-source, ce-type, ce-time, ce-schemaversion, ce-resourcetype, and ce-eventtype on every message, plus ce-subject, ce-datacontenttype, and ce-tenantid when Lender has a value for them. ce-schemaversion is 1.0.0 for every event in the catalog. The topic carries no version suffix at this schema version, so bind to the plain topic name.
Subscribe by topic. The topic is the address, and it composes from the resource type and the event type — not from an internal catalog name. Read the topic column in the tables below rather than deriving one from an event description.

The events


This page covers the 21 events of the documented credit journey. They group by the part of the journey they report. The streaming manifest declares your deployment’s whole catalog, which can carry more definitions than this page lists.

Products

Origination

Servicing

Brazil pack

Consignado privado

The consignado journey also consumes facts from the payroll-deduction gateway, on that product’s own topics. Read Consignado privado.

Durability and delivery


Every event in the catalog carries the same delivery policy. Nothing publishes straight to the broker. Lender writes the event to a transactional outbox in the same database transaction as the state change, and a dispatcher relays it afterwards. The event therefore survives a crash, and it survives a broker outage while the dispatcher retries. The retry budget is bounded. The dispatcher gives one event OUTBOX_MAX_DISPATCH_ATTEMPTS attempts, and the default is 10. It waits OUTBOX_RETRY_WINDOW_SEC seconds between attempts, and the default is 300. Past that budget the dispatcher stops retrying the event. Raise the budget when you expect outages longer than the default window. Events ride the same outbox as the ledger relay, so the local state change and the event commit together in a single database transaction. The posting intent joins them when the change produces one. The ledger posting lands afterwards. Read Accounting and accrual runs.
Delivery is at-least-once. An event can arrive more than once, and a redelivery carries the same facts. Make each handler idempotent on the record identifier in the payload, which also travels in ce-subject.

What a payload carries


The body is JSON and carries the facts of the change, not a diff. A loan_application.disbursed body:
Money and rates travel as decimal strings, never as JSON numbers, exactly as they do over REST. Parse them with a decimal type. Timestamps are RFC 3339 in UTC. Each event carries the facts its own record holds, so read the shape of the event you subscribe to. A Brazilian event adds what its regulation needs: a PDD transition carries the stage and the accrual eligibility, and a prepayment quote carries the rebate and the IOF reconciliation.

Check the contract at startup


GET /api/v1/streaming/manifest returns the catalog manifest: every event definition with its resource type, event type, schema version, and delivery policy. It needs a bearer token with streaming_manifest read. It reports the deployment’s whole declared catalog, not one tenant’s view. Read it when your consumer starts. Check each event you subscribe to against the manifest: the resource type, the event type, and the schema version. That catches a name or version mismatch at startup instead of at runtime.

Next steps


Lender REST API

The base path, authentication, idempotency, and the operations by job.

Lender architecture

The parts of the service, the outbox path, and the time-driven work.

Lender in the platform

Where Lender sits next to Midaz, Access Manager, and the streaming backbone.

Consignado privado

The payroll-deduction journey and the facts it consumes.