Application-stream contract
ce-source:lender- Facts:
lerian.streaming.lender - Commands:
lerian.streaming.lender.commands - Route dead letters:
lerian.streaming.lender.dlq ce-type:studio.lerian.lender.<resource>.<event>- Dispatch key:
<resource>.<event>fromce-resourcetypeandce-eventtype
GET /api/v1/streaming/manifest.
Emitted events
The catalog declares 35 definitions. Lender has production callers for 31 of them: 29 facts and 2 commands. The table separates catalog keys from the CloudEvent routing type.Emitted payload contracts
The contracts below mirror the CloudEventdata JSON tags in the published Lender contract. ? means the field can be absent. The Go wire structs declare no nullable pointer fields. unknown is raw JSON and may carry any JSON value, including null. Decimal values are JSON strings, timestamps are UTC RFC 3339 strings, and YYYYMM is a six-digit competência.
accounting_profile.configured
accounting_profile.configured
accounting_profile.configuredTopic: lerian.streaming.lenderSchema: 1.0.0Subject: profile_idassignment_set.approved / assignment_set.accepted
assignment_set.approved / assignment_set.accepted
assignment_set.approved, assignment_set.acceptedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: assignment_set_idA cession composition is durably approved. The event identifies the immutable approval that determines the offer file.collection.payment.*
collection.payment.*
collection.payment.applied, collection.payment.unapplied, collection.payment.reapplied, collection.payment.refundedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: application_idloan_application.submitted
loan_application.submitted
loan_application.submittedTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_application_idloan_application.approved
loan_application.approved
loan_application.approvedTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_application_idloan_application.rejected
loan_application.rejected
loan_application.rejectedTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_application_idloan_application.withdrawn
loan_application.withdrawn
loan_application.withdrawnTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_application_idloan_application.disbursed
loan_application.disbursed
loan_application.disbursedTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_application_idloan_charge.applied
loan_charge.applied
loan_charge.appliedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_account_idloan_product.created
loan_product.created
loan_product.createdTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_product_idloan_product.activated
loan_product.activated
loan_product.activatedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_product_idloan_product_version.created
loan_product_version.created
loan_product_version.createdTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_product_version_idloan_schedule.prepayment_applied
loan_schedule.prepayment_applied
loan_schedule.prepayment_appliedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: schedule_version_idloan_schedule.rescheduled
loan_schedule.rescheduled
loan_schedule.rescheduledTopic: lerian.streaming.lenderSchema: 1.0.0Subject: schedule_version_idrepayment.recorded
repayment.recorded
repayment.recordedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: transaction_idrepayment_reversal.recorded
repayment_reversal.recorded
repayment_reversal.recordedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: transaction_idloan_account.pdd_stage_transitioned
loan_account.pdd_stage_transitioned
loan_account.pdd_stage_transitionedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_account_idprepayment_quote.created
prepayment_quote.created
prepayment_quote.createdTopic: lerian.streaming.lenderSchema: 1.0.0Subject: quote_idprepayment_settlement.recorded
prepayment_settlement.recorded
prepayment_settlement.recordedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: settlement_idloan_account.debt_balance_changed
loan_account.debt_balance_changed
loan_account.debt_balance_changedTopic: lerian.streaming.lenderSchema: 2.0.0Subject: loan_account_idloan_account.payment_overdue
loan_account.payment_overdue
loan_account.payment_overdueTopic: lerian.streaming.lenderSchema: 1.0.0Subject: loan_account_idconsignado.exclusao.requested
consignado.exclusao.requested
consignado.exclusao.requestedTopic: lerian.streaming.lender.commandsSchema: 1.0.0Subject: request_refconsignado.redirecionamento.requested
consignado.redirecionamento.requested
consignado.redirecionamento.requestedTopic: lerian.streaming.lender.commandsSchema: 1.0.0Subject: request_refpayroll_deduction.refund_required
payroll_deduction.refund_required
payroll_deduction.refund_requiredTopic: lerian.streaming.lenderSchema: 1.0.0Subject: receipt_idpayroll_overdeduction.refund_required
payroll_overdeduction.refund_required
payroll_overdeduction.refund_requiredTopic: lerian.streaming.lenderSchema: 1.0.0Subject: refund_case_idcollection.instruction.issued
collection.instruction.issued
collection.instruction.issuedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: instrument_idguarantee_recovery.cash_allocated
guarantee_recovery.cash_allocated
guarantee_recovery.cash_allocatedTopic: lerian.streaming.lenderSchema: 1.0.0Subject: receipt_idCataloged but not emitted
These four definitions are present in the manifest but have no non-test Lender emission caller. Do not treat theirlender-sourced forms as operational integrations.
Events consumed
Lender wires 15 gateway fact keys fromlerian.streaming.consignado-gw and one Matcher fact from lerian.streaming.matcher. Each consumer is configuration-gated and registered in bootstrap.
consignado.proposal.accepted. That key is not a Lender booking input.
Internal event planes
Lender also writes internal outbox event types for ledger intents, collection work, and signed hub handoffs. They are process-local coordination contracts, not lib-streaming CloudEvents catalog entries. This public inventory omits them on purpose.Delivery and compatibility rules
- Deduplicate by
(ce-source, ce-id)and make handlers idempotent. - Read
ce-schemaversionbefore decoding. The version is a CloudEvents header, never a topic suffix. - Money and rates are decimal strings. Timestamps are UTC RFC 3339.
- The wired fact consumers filter exact keys. They skip and commit unmatched facts on the shared application topics. Malformed handled records follow the consumer DLQ policy.
- A missing required business identifier prevents emission or command execution. Lender never synthesizes it.

