MngCreateManualCashierDeposit¶
Creates a manual Cashier deposit transaction with provider = "manual" and
source = 1.
When process_now = 1, Cashier immediately posts OP_BALANCE_IN through
Core::SetBalance with TR_REASON_CASHIER_DEPOSIT.
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 deposit 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 |
owner_manager_id |
int | No | Owner of the transaction: the manager it counts towards in statistics. 0 or omitted falls back to the customer assigned_manager_id |
process_now |
int | No | 1 to credit account immediately |
Response¶
Returns transaction.
Errors¶
| Code | Error | Description |
|---|---|---|
400 |
CURRENCY_CONVERSION_REQUIRED |
Currency does not match account group currency |
400 |
INVALID_MANAGER |
owner_manager_id does not name an existing, enabled manager with CRM access in the customer's brand. Message: Manager does not exist, is disabled, has no CRM access or belongs to another brand |
Transaction Owner¶
owner_manager_id names the Owner of the transaction, the manager it counts
towards in the money columns of
MngGetManagersCustomerStatsByFilter.
It is written once at creation and never changes;
MngUpdateCashierTransaction does not accept it.
A non-zero value must name a manager that exists, is enabled, has
access_crm = 1, is not the service recovery account, and belongs to the same
brand as the customer. Otherwise the command answers 400 INVALID_MANAGER.
When the field is omitted or 0, the Owner becomes the manager the customer is
assigned to, assigned_manager_id. A customer assigned to nobody yields
owner_manager_id = 0.
Candidates for the field are enabled managers with access_crm = 1 in the
customer's brand, which can be listed with
MngGetManagersByFilter. That command is
not available to CRM sessions, so a CRM interface has to obtain the list through
a BackOffice session.
The returned transaction already carries the resolved owner_manager_id,
alongside attributed_manager_id, which records the manager the customer was
assigned to when the transaction was created. See
Transaction Ownership.
Request Example¶
{
"command": "MngCreateManualCashierDeposit",
"extID": "1",
"data": {
"login": 2000009,
"amount": 100.0,
"currency": "EUR",
"comment": "Manual bank deposit",
"owner_manager_id": 12,
"process_now": 1
}
}