MngCreateManualCashierWithdrawal¶
Creates a manual Cashier withdrawal transaction with provider = "manual" and
source = 1.
When process_now = 1, Cashier immediately posts OP_BALANCE_OUT through
Core::SetBalance with TR_REASON_CASHIER_WITHDRAWAL. The amount in the API is
positive; Cashier sends a negative balance amount internally.
Access¶
Only SESSION_CRM_MANAGER and SESSION_CRM_ADMIN are allowed.
| Role | Required permissions |
|---|---|
SESSION_CRM_ADMIN |
No additional finance permission flags required |
SESSION_CRM_MANAGER |
access_crm = 1, set_finance = 1; process_now = 1 additionally requires approve_finance = 1 |
SESSION_MANAGER, SESSION_ADMIN, SESSION_DEALER |
Forbidden, regardless of finance flags |
The manager record must exist and be enabled. CRM managers remain constrained by customer/account scope, including brand and desk. CRM admins bypass these manual-method permission/scope checks, but not business checks: customer deposit/withdrawal gates, account availability and transaction processing rules still apply. The backend uses the resolved staff manager id for audit/processing. Checks run inside the handler, including direct Moleculer calls; they are not only router metadata.
Request Parameters¶
| Name | Type | Required | Description |
|---|---|---|---|
login |
int | Yes | Trading account login |
amount |
double | Yes | Positive withdrawal amount |
currency |
string | Yes | Transaction currency. Must match account group currency |
customer_id |
int | No | Customer id. Defaults to account-linked customer |
method |
string | No | Manual method marker |
provider_payment_id |
string | No | External/manual reference |
idempotency_key |
string | No | Customer-scoped idempotency key |
comment |
string | No | Manager comment |
metadata_json |
string | No | Additional JSON metadata |
process_now |
int | No | 1 to debit account immediately |
Response¶
Returns transaction.
Errors¶
| Code | Error | Description |
|---|---|---|
400 |
CURRENCY_CONVERSION_REQUIRED |
Currency does not match account group currency |
Request Example¶
{
"command": "MngCreateManualCashierWithdrawal",
"extID": "1",
"data": {
"login": 2000009,
"amount": 50.0,
"currency": "EUR",
"comment": "Manual withdrawal",
"process_now": 0
}
}