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.