Skip to content

cashier.withdrawal.approved

Direction: server → modules. External Moleculer event name: cashier.withdrawal.approved.

Source and occurrence

C++ payload: CashierApprovedRecord containing the transaction snapshot and resolved brand. Internal workflow output EventBus name: cashier.workflow.approved. Event code: EV_RECORD_UPDATE (1).

The event is emitted after MngProcessManualCashierTransaction has successfully applied the manual withdrawal, updated the runtime transaction to CASHIER_STATUS_COMPLETED (10), queued its persistence operation, and a matching active cashier.withdrawal.approved workflow rule has executed the cashier.publish_approved action. Reprocessing an already completed transaction does not emit the event again.

This is asynchronous fire-and-forget publication. It does not confirm delivery or processing by a module.

Workflow conditions

Rules may use brand, cashier fields (id, customer_id, login, amount, converted_amount, currency, account_currency, provider, method, source, approved_by) and the advertised account/customer context fields returned by MngGetWorkflowConditionsByTrigger.

JSON payload

The schema is the same as for cashier.deposit.approved, with these fixed semantics:

Field Value / meaning
type 1, withdrawal
status 10, completed
source 1, manual source
occurred_at Same Unix timestamp as approved_time

All other fields preserve the transaction values described in the deposit contract.

See shared outbound rules for metadata, queue limits and delivery guarantees.