Skip to navigation

Adjust Cash

View as Markdown

Adjust the cash balance of a demo account.

Available to: Organization administrators

Environments: Demo

Rate Limit: No endpoint-specific limit

Manage the simulated fund balances of your organization’s demo accounts. Use this endpoint to top up a trader’s balance mid-challenge, set starting balances for new evaluation accounts, or reset a balance after it’s been depleted.

If your call returns an HTTP 401 “Access is denied” error, your API key is missing the required Funds:FullAccess scope. Contact Evaluation Support to have this scope added to your API key as a one-time setup during a scheduled maintenance window. After the scope change, if your API key uses a dedicated password, the password reverts to your API Admin User’s password.

Difference Between adjustCash and changeDemoBalance

The changeDemoBalance endpoint is available to all traders and has rate limits to protect against abuse. Because adjustCash is restricted to organization administrators with Funds permissions, it supports higher throughput and doesn’t have a rate limit. adjustCash also gives you more control: you can classify the adjustment type, specify the currency, and include an audit comment.

Field Details

The accountId must reference an active demo account within your organization. You can look up account IDs using the Query Builder in the Admin Dashboards or via the /account/list endpoint.

The currencyId 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 for your environment.

Relevant cashChangeType Values

All CashChangeType enum values are accepted, but these are the most relevant for typical demo balance management:

  • ManualAdjustment: General-purpose balance changes
  • Courtesy: Goodwill credits
  • Debit: Deductions from an account
  • FundTransaction: Funding-related changes
  • ChallengePayout: Challenge or evaluation payouts

Common Failure Scenarios

  • Account is closed or inactive
  • accountId does not exist or does not belong to your organization
  • cashChange is outside the allowed range (must be between -100,000 and 100,000, exclusive)
  • comment exceeds 64 characters
  • API key is missing Funds:FullAccess scope (returns HTTP 401)
  • User is not an organization administrator

Reversing an Adjustment

There is no dedicated undo operation. To reverse a cash adjustment, make another adjustCash call with the opposite cashChange amount. Use the comment field to document the reason and link the reversal to the original entry.

The response includes a full CashBalanceSnapshot reflecting the account’s updated state. On success, the errorText field is absent and all balance fields are populated.

Authentication

AuthorizationBearer

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

Request

This endpoint expects an object.
accountIdlongRequired
cashChangedoubleRequired<=100000
cashChangeTypeenumRequired
AccountClosureFee, AddUserFee, AutomaticReconciliation, BrokerageFee, CancelledPairedTrade, CashSettlement, ChallengePayout, ClearingFee, Commission, Courtesy, CurrencyConversion, CurrencyConversionFee, Debit, DepositFee, DeskFee, DormantFee, EntitlementSubscription, Escheatment, ExchangeFee, FundTransaction, FundTransactionFee, FundingRate, GoodwillCredit, IPFee, InactivityFee, LiquidationFee, LiquidationFee2, ManualAdjustment, ManualCashSettlement, MarketDataSubscription, NewSession, NfaFee, NsfCheckFee, OptionsTrade, OrderRoutingFee, PROMO, RithmicFee, SeatLeasePayment, StopPaymentFee, SwapTrade, ThirdPartyFee, TradePaired, TradovateSubscription
currencyIdlongRequired
commentstringOptional<=64 characters
senderIdlongOptional

Response

CashBalanceSnapshot
errorTextstringOptional<=8192 characters

Non-empty if the request failed

totalCashValuedoubleOptional
totalPnLdoubleOptional
initialMargindoubleOptional
maintenanceMargindoubleOptional
netLiqdoubleOptional
openPnLdoubleOptional
realizedPnLdoubleOptional
weekRealizedPnLdoubleOptional
withdrawalRejectReasonenumOptional
NoData, PendingContactInfoChange
Allowed values:
currencyCashAvailWithdrawalUSDdoubleOptional
netLiqSODdoubleOptional
totalCashValueSODdoubleOptional
cashUSDdoubleOptional
cashSODUSDdoubleOptional
fullInitialMargindoubleOptional
fullInitialMarginSODdoubleOptional
autoLiqLeveldoubleOptional
fundsInTransitUSDdoubleOptional
fundsInTransitAppliedToCashUSDdoubleOptional