Submit Fund Conversion

View as Markdown
### Convert cash from one currency to another within an account. **Available to:** All authenticated users **Environments:** Live **[Rate Limit](/overview/core-concepts/rate-limits):** No endpoint-specific limit Convert part of an account's cash balance from one currency to another. Use this when a customer holds a balance in one currency and needs funds in another — for example, to cover a withdrawal in a different currency. **Field Details** Conversions are supported between USD and EUR only. The `sourceCurrencyId` and `targetCurrencyId` must be different, and both must be convertible currencies. Provide exactly one of `sourceAmount` or `targetAmount` — the other side is calculated from the current exchange rate. Providing both, or neither, fails validation. A conversion fee of one percent of the source amount is debited from the source currency balance, so the source balance must cover the converted amount plus the fee. The response returns a `conversions` array with the executed conversion details. **Common Failure Scenarios** - Account is closed or restricted - Source and target currencies are the same - Both `sourceAmount` and `targetAmount` provided, or both omitted - Either currency is not convertible (only USD and EUR are supported) - Source balance can't cover the conversion amount plus the conversion fee **Error Messages** | `errorText` | Trigger | |-------------|---------| | `"Account not open for conversion."` | Account is closed or restricted | | `"Source and target currencies are the same."` | `sourceCurrencyId` equals `targetCurrencyId` | | `"Either source amount or target amount should be provided."` | Both amounts provided, or both omitted | | `"Currency is not supported for conversion."` | Source or target currency is not USD or EUR | | `"Insufficient funds for conversion."` | Source balance can't cover the amount plus the conversion fee | **Related Endpoints** - Use [`submitFundTransaction`](/api/rest-api-endpoints/funds/submit-fund-transaction) to submit deposit and withdrawal requests.

Authentication

AuthorizationBearer

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

Request

This endpoint expects an object.
accountIdlongRequired
sourceCurrencyIdlongRequired
targetCurrencyIdlongRequired
sourceAmountdoubleOptional
targetAmountdoubleOptional

Response

FundConversionResponse
errorTextstring<=8192 characters

Non-empty if the request failed

errorHeaderstring<=8192 characters

Non-empty if the request failed

conversionslist of objects
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