Skip to navigation

Submit Shadow Fund Transaction

View as Markdown

Submit a deposit or withdrawal against a shadow account.

Available to: Organization administrators with shadow fund transactions enabled

Environments: Live

Rate Limit: No endpoint-specific limit

Move funds in or out of a shadow account — a customer trading account whose cash is backed by your organization’s entity account. Set outgoing to false for a deposit or true for a withdrawal.

Unlike standard funding requests, shadow fund transactions are approved and applied immediately: the transaction is created with status Approved and the account’s cash balance updates right away.

Your organization admin user needs the shadowFundTransactionsEnabled property to call this endpoint. If your calls return an access denied error, contact your NinjaTrader representative to have it enabled.

Field Details

The shadowAccountId identifies the shadow account, which must be linked to an open, unrestricted trading account.

The fundCurrencyId must correspond to one of the supported currencies: USD, EUR, AUD, GBP, or CAD. Currency IDs are environment-specific — use the /currency/list endpoint to retrieve valid IDs.

The transactionIdentifier is optional but recommended as an idempotency key. It’s stored as the transaction description, and submitting a shadow transaction whose identifier already exists on the account is rejected as a duplicate.

Set fullBalance to true on a withdrawal to request the account’s entire balance.

Balance Protection

Deposits are checked against your entity account: if the combined cash balance of all shadow accounts plus the deposit would exceed the entity account’s balance (including any configured buffer), the request is rejected. Withdrawals are checked against the shadow account’s available funds.

Common Failure Scenarios

  • Caller is not an organization administrator, or doesn’t have shadowFundTransactionsEnabled
  • Linked trading account is closed, restricted, or missing
  • Deposit would push total shadow balances above the entity account balance
  • Withdrawal amount exceeds the shadow account’s available funds
  • transactionIdentifier was already used on the account

Error Messages

errorTextTrigger
"Fund transaction with provided identifier already exists."Duplicate transactionIdentifier (errorCode: DuplicateShadowTransaction)
"Account not open for funding"Linked trading account is closed, restricted, or missing
"The selected currency is not supported. Please select either USD, EUR, AUD, or GBP."fundCurrencyId is not a supported currency
"Total shadow accounts cash balance exceeds entity account cash balance."Deposit would exceed the entity account’s backing balance
"You do not have sufficient margin excess to place this request. Please decrease the amount."Withdrawal exceeds available funds (errorCode: InsufficientFunds)

Related Endpoints

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
shadowAccountIdlongRequired
outgoingbooleanRequired
fundAmountdoubleRequired
fundCurrencyIdlongRequired
fullBalancebooleanOptional
transactionIdentifierstringOptional<=8192 characters

Response

FundTransactionResponse
errorTextstringOptional<=8192 characters

Non-empty if the request failed

errorHeaderstringOptional<=8192 characters

Non-empty if the request failed

fundTransactionobjectOptional
errorCodeenumOptional
AccountLockFailed, AchDepositAboveMaximum, AchDepositBelowMinimum, AchDepositExpected, AchDepositFrequencyExceeded, AchDepositHoldPeriod, AchDisclosureNotAccepted, AchNoApprovedApplications, AchPendingDepositExists, AchWithdrawalFrequencyExceeded, ApprovalStatusLocked, BankAccountNSF, ConcurrentRequestRejected, DuplicateAchReturn, DuplicateShadowTransaction, FullBalanceRequestPending, FullBalanceWithAchHolds, FullBalanceWithOpenPositions, FullBalanceWithPendingAch, InsufficientFunds, TransactionAlreadyApproved, TransactionAlreadyDeclined, TransactionNotApplicable, TransactionNotFound, Unknown, WireDepositHoldPeriod