Saltar al contenido principal
Version: Siguiente

Eventos de Dominio

Lana Bank publica eventos de dominio a traves del patron de outbox transaccional. Estos eventos pueden ser consumidos por sistemas externos para integracion, analitica y auditoria.

Todos los eventos se serializan como JSON e incluyen metadatos para trazabilidad y ordenamiento.


Estructura del Evento​

Cada evento esta envuelto en un sobre con la siguiente estructura:

{
"id": "uuid",
"event_type": "core.credit.facility-activated",
"payload": { ... },
"recorded_at": "2024-01-15T10:30:00Z",
"trace_id": "trace-uuid"
}

Access Events​

Eventos relacionados con la gestion de usuarios y roles.

EventDescriptionPayload Fields
UserCreatedSe creo un nuevo usuarioemail, id, role_id
RoleCreatedSe creo un nuevo rolid, name

Accounting Events​

Eventos relacionados con el plan de cuentas y las operaciones contables.

EventDescriptionPayload Fields
ChartNodeCreatedSe creó un nodo del plan de cuentasaccount_set_id, chart_id, code, id, name, normal_balance_type, parent
LedgerAccountCreatedNo description availablegl_account_code, gl_account_entity_id, gl_account_entity_type, gl_account_external_id, gl_account_id, gl_account_name, gl_account_normal_balance_type
LedgerAccountSetMemberCreatedNo description availablegl_account_set_id, gl_member_id, gl_member_type
LedgerAccountSetMemberRemovedNo description availablegl_account_set_id, gl_member_id, gl_member_type
LedgerTransactionCreatedNo description availablegl_journal_id, gl_transaction_created_at, gl_transaction_effective_date, gl_transaction_id, gl_transaction_modified_at, gl_transaction_template_id, is_closing_gl_transaction
LedgerEntryCreatedNo description availablegl_account_id, gl_entry_amount_native, gl_entry_currency, gl_entry_direction, gl_entry_id, gl_entry_layer, gl_entry_type, gl_journal_id, gl_transaction_id
LedgerTxTemplateCreatedNo description availablecode, description, entries, id, version
LedgerEffectiveBalanceNo description availablegl_account_id, gl_balance_currency, gl_balance_effective_date, gl_balance_encumbrance_cr, gl_balance_encumbrance_dr, gl_balance_pending_cr, gl_balance_pending_dr, gl_balance_settled_cr, gl_balance_settled_dr, gl_journal_id

Credit Events​

Eventos relacionados con el ciclo de vida y operaciones de facilidades de credito.

EventDescriptionPayload Fields
FacilityProposalCreatedSe creo una propuesta de facilidad de creditoamount, created_at, customer_id, id, partner_id, product_id, status, terms
FacilityProposalConcludedFacilityProposalConcludedamount, created_at, customer_id, id, partner_id, product_id, status, terms
PendingCreditFacilityCollateralizationChangedCambio el estado de colateralizacion para facilidad pendienteamount, collateralization, completed_at, created_at, credit_facility_proposal_id, customer_id, id, partner_id, product_id, status, terms
PendingCreditFacilityCompletedPendingCreditFacilityCompletedamount, collateralization, completed_at, created_at, credit_facility_proposal_id, customer_id, id, partner_id, product_id, status, terms
FacilityActivatedSe activo una facilidad de creditoaccount_ids, accrual_spec, activated_at, activated_on, activation_tx_id, amount, collateral_id, collateralization, completed_at, customer_id, id, liquidation_trigger, maturity_date, partner_id, pending_credit_facility_id, product_id, public_id, terms
FacilityCompletedUna facilidad de credito fue totalmente pagada y cerradaaccount_ids, accrual_spec, activated_at, activated_on, activation_tx_id, amount, collateral_id, collateralization, completed_at, customer_id, id, liquidation_trigger, maturity_date, partner_id, pending_credit_facility_id, product_id, public_id, terms
FacilityCollateralizationChangedCambio el estado de colateralizacion para facilidad activaaccount_ids, accrual_spec, activated_at, activated_on, activation_tx_id, amount, collateral_id, collateralization, completed_at, customer_id, id, liquidation_trigger, maturity_date, partner_id, pending_credit_facility_id, product_id, public_id, terms
DisbursalInitializedSe inició un desembolso y está pendiente de aprobaciónamount, approved, cancelled, credit_facility_id, customer_id, due_date, id, obligation_id, partner_id, public_id, settlement, status
DisbursalApprovalConcludedDisbursalApprovalConcludedamount, approved, cancelled, credit_facility_id, customer_id, due_date, id, obligation_id, partner_id, public_id, settlement, status
DisbursalSettledSe liquido un desembolsoamount, approved, cancelled, credit_facility_id, customer_id, due_date, id, obligation_id, partner_id, public_id, settlement, status
DisbursalCancelledSe canceló un desembolsoamount, approved, cancelled, credit_facility_id, customer_id, due_date, id, obligation_id, partner_id, public_id, settlement, status
AccrualPostedSe registro el devengamiento de interesescredit_facility_id, due_at, id, period, posting
FacilityMaturedNo description availableaccount_ids, accrual_spec, activated_at, activated_on, activation_tx_id, amount, collateral_id, collateralization, completed_at, customer_id, id, liquidation_trigger, maturity_date, partner_id, pending_credit_facility_id, product_id, public_id, terms
PartialLiquidationInitiatedSe inicio una liquidacion parcialfacility_accounts, facility_accrual_spec, facility_activated_at, facility_activated_on, facility_activation_tx_id, facility_amount, facility_collateral_id, facility_collateralization, facility_completed_at, facility_customer_id, facility_id, facility_liquidation_trigger, facility_maturity_date, facility_partner_id, facility_pending_credit_facility_id, facility_product_id, facility_public_id, facility_terms, id, initially_estimated_to_liquidate, initially_expected_to_receive, trigger_exchange_rate

CreditCollateral Events​

CoreCreditCollateralEvent module_description

EventDescriptionPayload Fields
CollateralUpdatedCollateralUpdatedamount, id, last_posting, secured_loan_id
LiquidationCollateralSentOutLiquidationCollateralSentOutamount, effective, ledger_tx_id, liquidation_id, secured_loan_id
LiquidationSaleRecordedSe registró una venta de garantía ejecutada y sus ingresos netos se reconocieron como una cuenta por cobrarcollateral_id, effective, ledger_tx_id, liquidation_id, net_proceeds, payment_id, secured_loan_id

CreditCollection Events​

CoreCreditCollectionEvent module_description

EventDescriptionPayload Fields
PaymentCreatedPaymentCreatedamount, beneficiary_id, created_at, effective, id
PaymentAllocationCreatedPaymentAllocationCreatedamount, beneficiary_id, created_at, effective, id, obligation_id, obligation_type, payment_id
ObligationCreatedSe creo una nueva obligacionbeneficiary_id, beneficiary_owner_id, completed_at, completing_payment_allocation_id, created_at, defaulted_at, due_at, effective, id, initial_amount, obligation_type, outstanding_amount, overdue_at
ObligationDueUna obligacion venciobeneficiary_id, beneficiary_owner_id, completed_at, completing_payment_allocation_id, created_at, defaulted_at, due_at, effective, id, initial_amount, obligation_type, outstanding_amount, overdue_at
ObligationOverdueUna obligacion entro en morabeneficiary_id, beneficiary_owner_id, completed_at, completing_payment_allocation_id, created_at, defaulted_at, due_at, effective, id, initial_amount, obligation_type, outstanding_amount, overdue_at
ObligationDefaultedUna obligacion entro en incumplimientobeneficiary_id, beneficiary_owner_id, completed_at, completing_payment_allocation_id, created_at, defaulted_at, due_at, effective, id, initial_amount, obligation_type, outstanding_amount, overdue_at
ObligationCompletedUna obligacion fue completamente pagadabeneficiary_id, beneficiary_owner_id, completed_at, completing_payment_allocation_id, created_at, defaulted_at, due_at, effective, id, initial_amount, obligation_type, outstanding_amount, overdue_at

Custody Events​

Eventos relacionados con custodia de Bitcoin y gestion de billeteras.

EventDescriptionPayload Fields
WalletBalanceUpdatedNo description availableaddress, balance, id, network

Customer Events​

Eventos relacionados con el ciclo de vida del cliente y KYC.

EventDescriptionPayload Fields
CustomerCreatedSe creo un nuevo clientecustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerFrozenSe congelo una cuenta de cliente, bloqueando operaciones financierascustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerUnfrozenSe descongelo una cuenta de cliente previamente congelada, restaurando operaciones normalescustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerClosedLa cuenta del cliente fue cerradacustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerPiiErasureScheduledSe programó el borrado de PII para la parte de un cliente cerradocustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerPiiErasureCancelledSe canceló un borrado de PII programado para la parte de un cliente antes de su ejecucióncustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerPiiErasureCompletedSe ejecutó el borrado de PII programado para la parte de un clientecustomer_type, id, partner_id, party_ref_id, party_ref_type, public_id, status_change
CustomerDocumentCreatedSe añadió un documento a un clientecustomer_id, id
CustomerDocumentArchivedSe archivó un documento de clientecustomer_id, id
CustomerDocumentDeletionRequestedSe solicitó la eliminación de un documento de clientecustomer_id, id
CustomerNoteCreatedNo description availablecustomer_id, id
ProspectCreatedSe creó un nuevo prospecto para la incorporacióncustomer_type, id, partner_id, party_ref_id, party_ref_type, stage
ProspectConvertedUn prospecto fue convertido en clientecustomer_type, id, partner_id, party_ref_id, party_ref_type, stage
ProspectClosedUn prospecto fue cerrado sin conversióncustomer_type, id, partner_id, party_ref_id, party_ref_type, stage
ProspectPiiErasureScheduledSe programó el borrado de PII para la parte de un prospecto cerradocustomer_type, id, partner_id, party_ref_id, party_ref_type, stage
ProspectPiiErasureCancelledSe canceló un borrado de PII programado para la parte de un prospecto antes de su ejecucióncustomer_type, id, partner_id, party_ref_id, party_ref_type, stage

Deposit Events​

Eventos relacionados con cuentas de deposito y transacciones.

EventDescriptionPayload Fields
DepositAccountProductCreatedNo description availableaccounting_integration, currency, customer_type, id, name, partner_id
DepositAccountCreatedSe creo una cuenta de depositoaccount_holder_id, activity, currency, id, product_id, public_id, status
DepositAccountFrozenNo description availableaccount_holder_id, activity, currency, id, product_id, public_id, status
DepositAccountUnfrozenNo description availableaccount_holder_id, activity, currency, id, product_id, public_id, status
DepositAccountClosedNo description availableaccount_holder_id, activity, currency, id, product_id, public_id, status
DepositAccountActivityUpdatedNo description availableaccount_holder_id, activity, currency, id, product_id, public_id, status
DepositBookedSe contabilizó un depósitoaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, public_id, reference, status
DepositRevertedSe revirtio un depositoaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, public_id, reference, status
WithdrawalInitializedSe inició un retiro y está pendiente de aprobaciónaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status
WithdrawalApprovalConcludedSe concluyó el proceso de aprobación de un retiroaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status
WithdrawalDeniedSe denegó un retiroaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status
WithdrawalConfirmedSe confirmo un retiroaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status
WithdrawalCancelledSe canceló un retiroaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status
WithdrawalRevertedSe revirtió un retiro confirmadoaccount_holder_id, amount, deposit_account_id, id, ledger_tx_id, payout_id, public_id, reference, status

Exchange Events​

Eventos relacionados con compras de bitcoin ejecutadas para clientes.

EventDescriptionPayload Fields
BitcoinPurchaseExecutedSe cambió el fiat de un cliente por bitcoin y se liquidaron ambas cuentas de depósitobitcoin_amount, customer_id, destination_deposit_account_id, fiat_amount, id, ledger_tx_id, public_id, source_deposit_account_id

Partner Events​

Eventos relacionados con el ciclo de vida de socios y usuarios de socios.

EventDescriptionPayload Fields
PartnerUserCreatedSe creó un usuario de socioemail, id, partner_id
PartnerCreatedSe creó un socioid, name, status
PartnerRenamedSe renombró un socioid, name, status
PartnerActivatedSe activó un socioid, name, status
PartnerClosedSe cerró un socioid, name, status

Price Events​

Eventos de tasas oficiales publicados al final del día y en cada tick horario; las actualizaciones de precios en tiempo de ejecución son efímeras y nunca se persisten.

EventDescriptionPayload Fields
ClosingRateCapturedTasa de cierre oficial de un par de monedas para un día hábil, publicada por la fase de EOD capture-closing-rates. Los precios en tiempo de ejecución son efímeros.closing_time, day, pair, provenance, rate_major, window
RateSnapshotCapturedLa última tasa saneada del runtime para un par de monedas, republicada como evento persistente en cada tick horario. No se consulta ningún proveedor en el tick: la tasa, la ventana de saneamiento y la procedencia provienen del registro que el pipeline de agregación en tiempo real ya produjo, de modo que los reportes que se actualizan cada hora convierten exactamente a la tasa que el banco estaba usando.hour, pair, provenance, rate_major, window

DwPipeline Events​

Telemetría de las ejecuciones del pipeline que mantiene actualizado el almacén de datos: las construcciones EOD de dbt y las actualizaciones intradía. El servicio de reportes no publica eventos.

EventDescriptionPayload Fields
PipelineRunInitializedSe creó una ejecución del pipeline para un día liquidado, en cola para refrescar el almacén de datosday, id, kind, status
PipelineRunStartedLa ejecución del pipeline inició dbt contra el almacén de datosday, id, kind, status
PipelineRunCompletedLa ejecución del pipeline terminó de refrescar el almacén de datos para el díaday, id, kind, status
PipelineRunFailedLa ejecución del pipeline falló; el motivo del fallo queda registrado en la entidadday, id, kind, status
PipelineRunSkippedNo description availableday, id, kind, status

Governance Events​

Eventos relacionados con flujos de aprobacion.

EventDescriptionPayload Fields
ApprovalProcessConcludedSe concluyo un proceso de aprobacionid, process_type, status, target_ref

Time Events​

Eventos relacionados con el procesamiento de fin de día.

EventDescriptionPayload Fields
EndOfDayEl reloj operativo superó la hora de cierre para la zona horaria configurada; la señal básica de cambio de día de la que dependen las reacciones diarias y el proceso de cierre de fin de díaclosed_at, day, schedule
HourTickEl reloj operativo cruzó a una nueva hora; la señal intradía horaria de la que dependen las reacciones periódicas (no EOD). Se publica como máximo una vez por hora, coalesciendo los límites perdidos en un solo tickhour

Lifecycle Events​

Events related to lifecycle.

EventDescriptionPayload Fields
InitializationCompletedNo description availablecompletedAt

Eod Events​

Eventos relacionados con el proceso de cierre de fin de día.

EventDescriptionPayload Fields
EodProcessInitializedSe creó un proceso de cierre de fin de día para un día hábilday, id, status, timezone
EodProcessInProgressUn proceso de cierre de fin de día avanzó: una fase inició, se completó o fallóday, id, status, timezone
EodProcessCompletedUn proceso de cierre de fin de día terminó con todas sus fases exitosas: todas las mutaciones del libro mayor del día están registradas y sus saldos capturados, por lo que el día es historia liquidadaday, id, status, timezone
EodProcessStoppedUn proceso de cierre de fin de día se detuvo, ya sea por el fallo de una fase bloqueante o porque no quedan fases por ejecutarday, id, status, timezone

DomainConfig Events​

Eventos relacionados con la configuración de dominio en tiempo de ejecución. Solo se reportan las configuraciones definidas como publicadas.

EventDescriptionPayload Fields
UpdatedSe escribió una configuración de dominio publicada, con su valor confirmado representado como texto y su tipo de configuraciónconfig_type, id, key, value

Referencia de Tipos de Eventos​

Todos los tipos de eventos siguen la convencion de nombres: core.<module>.<event-name>

ModuloPrefijo de Tipo de Evento
Accesscore.access.*
Accountingcore.accounting.*
Creditcore.credit.*
CreditCollateralcore.credit-collateral.*
CreditCollectioncore.credit-collection.*
Custodycore.custody.*
Customercore.customer.*
Depositcore.deposit.*
Exchangecore.exchange.*
Partnercore.partner.*
Pricecore.price.*
DwPipelinecore.dw-pipeline.*
Governancegovernance.*
Timecore.time.*
Lifecyclecore.lifecycle.*
Eodcore.eod.*
DomainConfigcore.domain-config.*

Consumiendo Eventos​

Los eventos se publican a traves del outbox transaccional y se pueden consumir mediante:

  1. Consulta directa a la base de datos - Consultar la tabla de outbox
  2. Streaming de eventos - Integracion con colas de mensajes (dependiente de la implementacion)
  3. Almacén de informes - A través del relé de salida hacia el almacén de datos Postgres

Para detalles de integracion, contacte al equipo de plataforma.