Submit Fund Transaction

View as Markdown
### Submit a deposit or withdrawal request for an account. **Available to:** All authenticated users **Environments:** Live **[Rate Limit](/overview/core-concepts/rate-limits):** No endpoint-specific limit Submit a funding request against a live account. Set `outgoing` to `false` for a deposit or `true` for a withdrawal. The request creates a fund transaction that moves through the standard funding review workflow, and the response returns the created `fundTransaction` record. Account holders can submit requests for their own accounts. Organization administrators can submit on behalf of customer accounts in their organization. **Field Details** 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. Leave the fee fields (`feePaymentType`, `feeAmount`, `feeCurrencyId`, `feeDescription`) empty. Any applicable transaction fee is looked up automatically from the account's fee schedule. Custom fees are reserved for internal administrators, and requests that include them are rejected. Set `fullBalance` to `true` on a withdrawal to request the account's entire balance. **`fundPaymentType` Values** | Value | Meaning | |-------|---------| | `WTR` | Wire deposit | | `WTS` | Wire withdrawal — requires `bankAccountId` | | `ACHR` | ACH deposit — requires an approved ACH application on the account | | `ACHS` | ACH withdrawal — requires an approved ACH application on the account | | `CKR` | Check deposit — USD only | | `CKS` | Check withdrawal — no longer supported; requests are rejected | | `DCR`, `DCS` | (Internal) Debit card transactions. Set automatically by the system through the debit card funding flow. These values are not intended for partner workflows. | | `BOOKR`, `BOOKS` | (Internal) Book transfers. Set automatically by the system. These values are not intended for partner workflows. | | `SHR`, `SHS` | (Internal) Shadow fund transactions. Set automatically by [`submitShadowFundTransaction`](/api/rest-api-endpoints/funds/submit-shadow-fund-transaction) and [`submitManagedFundTransaction`](/api/rest-api-endpoints/funds/submit-managed-fund-transaction). Requests using these values are rejected on this endpoint. | | `CKF`, `WTF`, `TF`, `TT`, `FX`, `XFR`, `MDF`, `FPR` | (Internal) Legacy transaction type codes that can appear on historical fund transaction records. No current funding workflow submits them — use the documented types above for new requests. | **Funds in Transit** If your organization has Funds in Transit enabled with a tradable cap configured, qualifying ACH deposits (`ACHR`) may be processed as in-transit transactions: the deposit amount, up to the organization's remaining cap, becomes tradable immediately while the transfer settles. In-transit funds are tradable but not withdrawable. Deposits that don't qualify follow standard processing. **Common Failure Scenarios** - Account is closed or restricted - Caller is neither the account holder nor an organization administrator - Withdrawal amount exceeds the account's available margin excess - `ACHR` or `ACHS` submitted without an approved ACH application - Custom fee fields included by a non-administrator - Payment type is reserved for system use (`DCR`, `DCS`, `BOOKR`, `BOOKS`, `SHR`, `SHS`) or targets a shadow account - A pending `submitFundTransaction` request already exists for the account **Error Messages** | `errorText` | Trigger | |-------------|---------| | `"You are not authorized to perform this operation"` | Caller is neither the account holder nor an organization administrator | | `"Account not open for funding"` | Account is closed or restricted | | `"The selected currency is not supported. Please select either USD, EUR, AUD, or GBP."` | `fundCurrencyId` is not a supported currency | | `"You do not have sufficient margin excess to place this request. Please decrease the amount."` | Withdrawal exceeds available funds (`errorCode: InsufficientFunds`) | | `"Insufficient funds for transaction fees"` | Funds-in-transit deposit can't cover the transaction fee (`errorCode: InsufficientFunds`) | | `"Custom fee is not allowed in fund requests."` | Fee fields included by a non-administrator | | `"There are no approved ACH applications. Please submit a new ACH application under Transfers & Payments, Add ACH Account."` | `ACHR`/`ACHS` without an approved ACH application (`errorCode: AchNoApprovedApplications`) | | `"Check deposits must be in US dollars."` | `CKR` with a non-USD currency | | `"Check withdrawals are no longer supported. Please select another withdrawal option."` | `fundPaymentType` is `CKS` | | `"Not supported"` | Shadow account, shadow payment type, or a system-reserved payment type submitted by a non-administrator | | `"Pending submitFundTransaction request already exists for this account."` | A concurrent request is still processing (`errorCode: ConcurrentRequestRejected`) | **Related Endpoints** - Use [`inTransitFundTransaction`](/api/rest-api-endpoints/funds/in-transit-fund-transaction) to record a wire deposit that has been initiated but hasn't settled yet. - Use [`submitFundConversion`](/api/rest-api-endpoints/funds/submit-fund-conversion) to convert cash between currencies within an account. - Use [`adjustCash`](/api/rest-api-endpoints/funds/adjust-cash) to manage simulated balances on demo accounts.

Authentication

AuthorizationBearer

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

Request

This endpoint expects an object.
accountIdlongRequired
outgoingbooleanRequired
fundPaymentTypeenumRequired
ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
fundAmountdoubleRequired
fundCurrencyIdlongRequired
fundDescriptionstringOptional<=8192 characters
feePaymentTypeenumOptional
ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
feeAmountdoubleOptional
feeCurrencyIdlongOptional
feeDescriptionstringOptional<=8192 characters
bankAccountIdlongOptional
fullBalancebooleanOptional

Response

FundTransactionResponse
errorTextstring<=8192 characters

Non-empty if the request failed

errorHeaderstring<=8192 characters

Non-empty if the request failed

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