> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://partner.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://partner.ninjatrader.com/_mcp/server.

# In Transit Fund Transaction

POST https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction
Content-Type: application/json

### Record an incoming wire deposit as an in-transit fund transaction.

**Available to:** Organization administrators

**Environments:** Live

**[Rate Limit](/overview/core-concepts/rate-limits):** No endpoint-specific limit

Record a wire deposit that has been initiated but hasn't settled yet. This creates a fund transaction with status `InTransit` and can make the incoming funds tradable right away, so your customer doesn't have to wait for the wire to clear before trading.

When the transaction is recorded, the deposit amount is credited to the account's tradable cash balance up to your organization's remaining funds-in-transit cap. In-transit funds are tradable but not withdrawable. If your organization has no cap configured, the transaction is recorded without a tradable credit.

**Field Details**

Only wire deposits are supported — `fundPaymentType` must be `WTR`, and `fundAmount` must be greater than zero.

The `transactionIdentifier` is required and must be unique per account. It acts as an idempotency key: submitting the same identifier again returns the existing transaction with a `"Duplicate transaction identifier"` error instead of creating a second record.

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 fee fields (`feePaymentType`, `feeAmount`, `feeCurrencyId`, `feeDescription`) are optional and are recorded on the transaction if provided.

**Common Failure Scenarios**

- Account is closed or restricted
- `fundPaymentType` is any value other than `WTR`
- `transactionIdentifier` matches an existing transaction on the account
- Caller is not an organization administrator

**Error Messages**

| `errorText` | Trigger |
|-------------|---------|
| `"Account not open for funding"` | Account is closed or restricted |
| `"Not supported"` | `fundPaymentType` is not `WTR` |
| `"The selected currency is not supported. Please select either USD, EUR, AUD, or GBP."` | `fundCurrencyId` is not a supported currency |
| `"Duplicate transaction identifier"` | `transactionIdentifier` already exists on the account; the response includes the existing transaction |

**Related Endpoints**

- Use [`submitFundTransaction`](/api/rest-api-endpoints/funds/submit-fund-transaction) to submit standard deposit and withdrawal requests.

Reference: https://partner.ninjatrader.com/connect/api/rest-api-endpoints/funds/in-transit-fund-transaction

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: connect
  version: 1.0.0
paths:
  /fundTransaction/intransitfundtransaction:
    post:
      operationId: in-transit-fund-transaction
      summary: In Transit Fund Transaction
      description: >-
        ### Record an incoming wire deposit as an in-transit fund transaction.


        **Available to:** Organization administrators


        **Environments:** Live


        **[Rate Limit](/overview/core-concepts/rate-limits):** No
        endpoint-specific limit


        Record a wire deposit that has been initiated but hasn't settled yet.
        This creates a fund transaction with status `InTransit` and can make the
        incoming funds tradable right away, so your customer doesn't have to
        wait for the wire to clear before trading.


        When the transaction is recorded, the deposit amount is credited to the
        account's tradable cash balance up to your organization's remaining
        funds-in-transit cap. In-transit funds are tradable but not
        withdrawable. If your organization has no cap configured, the
        transaction is recorded without a tradable credit.


        **Field Details**


        Only wire deposits are supported — `fundPaymentType` must be `WTR`, and
        `fundAmount` must be greater than zero.


        The `transactionIdentifier` is required and must be unique per account.
        It acts as an idempotency key: submitting the same identifier again
        returns the existing transaction with a `"Duplicate transaction
        identifier"` error instead of creating a second record.


        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 fee fields (`feePaymentType`, `feeAmount`, `feeCurrencyId`,
        `feeDescription`) are optional and are recorded on the transaction if
        provided.


        **Common Failure Scenarios**


        - Account is closed or restricted

        - `fundPaymentType` is any value other than `WTR`

        - `transactionIdentifier` matches an existing transaction on the account

        - Caller is not an organization administrator


        **Error Messages**


        | `errorText` | Trigger |

        |-------------|---------|

        | `"Account not open for funding"` | Account is closed or restricted |

        | `"Not supported"` | `fundPaymentType` is not `WTR` |

        | `"The selected currency is not supported. Please select either USD,
        EUR, AUD, or GBP."` | `fundCurrencyId` is not a supported currency |

        | `"Duplicate transaction identifier"` | `transactionIdentifier` already
        exists on the account; the response includes the existing transaction |


        **Related Endpoints**


        - Use
        [`submitFundTransaction`](/api/rest-api-endpoints/funds/submit-fund-transaction)
        to submit standard deposit and withdrawal requests.
      tags:
        - Funds
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
      responses:
        '200':
          description: FundTransactionResponse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundTransactionResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InTransitFundTransaction'
servers:
  - url: https://live.tradovateapi.com/v1
    description: https://live.tradovateapi.com/v1
components:
  schemas:
    InTransitFundTransactionFundPaymentType:
      type: string
      enum:
        - ACHR
        - ACHS
        - BOOKR
        - BOOKS
        - CKF
        - CKR
        - CKS
        - DCR
        - DCS
        - FPR
        - FX
        - MDF
        - SHR
        - SHS
        - TF
        - TT
        - WTF
        - WTR
        - WTS
        - XFR
      description: >-
        ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR,
        SHS, TF, TT, WTF, WTR, WTS, XFR
      title: InTransitFundTransactionFundPaymentType
    InTransitFundTransactionFeePaymentType:
      type: string
      enum:
        - ACHR
        - ACHS
        - BOOKR
        - BOOKS
        - CKF
        - CKR
        - CKS
        - DCR
        - DCS
        - FPR
        - FX
        - MDF
        - SHR
        - SHS
        - TF
        - TT
        - WTF
        - WTR
        - WTS
        - XFR
      description: >-
        ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR,
        SHS, TF, TT, WTF, WTR, WTS, XFR
      title: InTransitFundTransactionFeePaymentType
    InTransitFundTransaction:
      type: object
      properties:
        accountId:
          type: integer
          format: int64
        fundPaymentType:
          $ref: '#/components/schemas/InTransitFundTransactionFundPaymentType'
          description: >-
            ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF,
            SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
        fundAmount:
          type: number
          format: double
        fundCurrencyId:
          type: integer
          format: int64
        fundDescription:
          type: string
        feePaymentType:
          $ref: '#/components/schemas/InTransitFundTransactionFeePaymentType'
          description: >-
            ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF,
            SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
        feeAmount:
          type: number
          format: double
        feeCurrencyId:
          type: integer
          format: int64
        feeDescription:
          type: string
        transactionIdentifier:
          type: string
      required:
        - accountId
        - fundPaymentType
        - fundAmount
        - fundCurrencyId
        - transactionIdentifier
      title: InTransitFundTransaction
    FundTransactionFundPaymentType:
      type: string
      enum:
        - ACHR
        - ACHS
        - BOOKR
        - BOOKS
        - CKF
        - CKR
        - CKS
        - DCR
        - DCS
        - FPR
        - FX
        - MDF
        - SHR
        - SHS
        - TF
        - TT
        - WTF
        - WTR
        - WTS
        - XFR
      description: >-
        ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR,
        SHS, TF, TT, WTF, WTR, WTS, XFR
      title: FundTransactionFundPaymentType
    FundTransactionFeePaymentType:
      type: string
      enum:
        - ACHR
        - ACHS
        - BOOKR
        - BOOKS
        - CKF
        - CKR
        - CKS
        - DCR
        - DCS
        - FPR
        - FX
        - MDF
        - SHR
        - SHS
        - TF
        - TT
        - WTF
        - WTR
        - WTS
        - XFR
      description: >-
        ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF, SHR,
        SHS, TF, TT, WTF, WTR, WTS, XFR
      title: FundTransactionFeePaymentType
    FundTransactionStatus:
      type: string
      enum:
        - Approved
        - Declined
        - InReview
        - InSecondaryReview
        - InTransit
        - Locked
        - Pending
        - ReplicaNTC
        - ReviewCompleted
        - Suspended
      description: >-
        Approved, Declined, InReview, InSecondaryReview, InTransit, Locked,
        Pending, ReplicaNTC, ReviewCompleted, Suspended
      title: FundTransactionStatus
    TradeDate:
      type: object
      properties:
        year:
          type: integer
        month:
          type: integer
        day:
          type: integer
      required:
        - year
        - month
        - day
      title: TradeDate
    FundTransactionSuspendReason:
      type: string
      enum:
        - CurrencyConversionRequired
        - IncompleteRequest
        - IncorrectRoutingNumber
        - IncorrectSwiftCode
        - LargeWireConfirmation
        - Other
        - TooLateToProcess
        - TradingHold
      description: >-
        CurrencyConversionRequired, IncompleteRequest, IncorrectRoutingNumber,
        IncorrectSwiftCode, LargeWireConfirmation, Other, TooLateToProcess,
        TradingHold
      title: FundTransactionSuspendReason
    FundTransactionAchrSecondCheckResult:
      type: string
      enum:
        - DataUnavailable
        - NSF
        - NoPaymentItemsAssigned
        - OK
      description: DataUnavailable, NSF, NoPaymentItemsAssigned, OK
      title: FundTransactionAchrSecondCheckResult
    FundTransaction:
      type: object
      properties:
        id:
          type: integer
          format: int64
        accountId:
          type: integer
          format: int64
        timestamp:
          type: string
          format: date-time
        submitterId:
          type: integer
          format: int64
        outgoing:
          type: boolean
        fundPaymentType:
          $ref: '#/components/schemas/FundTransactionFundPaymentType'
          description: >-
            ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF,
            SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
        fundAmount:
          type: number
          format: double
        fundCurrencyId:
          type: integer
          format: int64
        fundDescription:
          type: string
        feePaymentType:
          $ref: '#/components/schemas/FundTransactionFeePaymentType'
          description: >-
            ACHR, ACHS, BOOKR, BOOKS, CKF, CKR, CKS, DCR, DCS, FPR, FX, MDF,
            SHR, SHS, TF, TT, WTF, WTR, WTS, XFR
        feeAmount:
          type: number
          format: double
        feeCurrencyId:
          type: integer
          format: int64
        feeDescription:
          type: string
        bankAccountId:
          type: integer
          format: int64
        approved:
          type: boolean
        status:
          $ref: '#/components/schemas/FundTransactionStatus'
          description: >-
            Approved, Declined, InReview, InSecondaryReview, InTransit, Locked,
            Pending, ReplicaNTC, ReviewCompleted, Suspended
        autoApprovalDate:
          $ref: '#/components/schemas/TradeDate'
        suspendReason:
          $ref: '#/components/schemas/FundTransactionSuspendReason'
          description: >-
            CurrencyConversionRequired, IncompleteRequest,
            IncorrectRoutingNumber, IncorrectSwiftCode, LargeWireConfirmation,
            Other, TooLateToProcess, TradingHold
        suspendReasonNotes:
          type: string
        fullBalance:
          type: boolean
        approvalDate:
          type: string
          format: date-time
        submissionSignalId:
          type: integer
          format: int64
        achId:
          type: integer
          format: int64
        achrSecondCheckResult:
          $ref: '#/components/schemas/FundTransactionAchrSecondCheckResult'
          description: DataUnavailable, NSF, NoPaymentItemsAssigned, OK
        achrSecondCheckTimestamp:
          type: string
          format: date-time
        achrSecondCheckComments:
          type: string
        returnCode:
          type: string
        statementDate:
          $ref: '#/components/schemas/TradeDate'
        managedFundingMethodId:
          type: integer
          format: int64
        paymentInitiationApplicationId:
          type: integer
          format: int64
        transactionIdentifier:
          type: string
      required:
        - accountId
        - timestamp
        - submitterId
        - outgoing
        - fundPaymentType
        - fundAmount
        - fundCurrencyId
      title: FundTransaction
    FundTransactionResponseErrorCode:
      type: string
      enum:
        - 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
      description: >-
        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
      title: FundTransactionResponseErrorCode
    FundTransactionResponse:
      type: object
      properties:
        errorText:
          type: string
          description: Non-empty if the request failed
        errorHeader:
          type: string
          description: Non-empty if the request failed
        fundTransaction:
          $ref: '#/components/schemas/FundTransaction'
        errorCode:
          $ref: '#/components/schemas/FundTransactionResponseErrorCode'
          description: >-
            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
      title: FundTransactionResponse
  securitySchemes:
    bearer_access_token:
      type: http
      scheme: bearer

```

## Examples



**Request**

```json
{
  "accountId": 12345,
  "fundPaymentType": "WTR",
  "fundAmount": 25000,
  "fundCurrencyId": 840,
  "transactionIdentifier": "WIRE20240615-987654321"
}
```

**Response**

```json
{
  "errorText": "",
  "errorHeader": "",
  "fundTransaction": {
    "accountId": 12345,
    "timestamp": "2024-06-15T14:45:00Z",
    "submitterId": 67890,
    "outgoing": false,
    "fundPaymentType": "WTR",
    "fundAmount": 25000,
    "fundCurrencyId": 840,
    "id": 987654321,
    "fundDescription": "Incoming wire deposit - June 15, 2024",
    "feePaymentType": "WTR",
    "feeAmount": 50,
    "feeCurrencyId": 840,
    "feeDescription": "Wire transfer processing fee",
    "bankAccountId": 54321,
    "approved": false,
    "status": "InTransit",
    "autoApprovalDate": {
      "year": 2024,
      "month": 6,
      "day": 17
    },
    "suspendReason": "",
    "suspendReasonNotes": "",
    "fullBalance": false,
    "approvalDate": "",
    "submissionSignalId": 112233,
    "achId": 0,
    "achrSecondCheckResult": "DataUnavailable",
    "achrSecondCheckTimestamp": "2024-06-15T14:45:00Z",
    "achrSecondCheckComments": "",
    "returnCode": "",
    "statementDate": {
      "year": 2024,
      "month": 6,
      "day": 15
    },
    "managedFundingMethodId": 7890,
    "paymentInitiationApplicationId": 4567,
    "transactionIdentifier": "WIRE20240615-987654321"
  },
  "errorCode": ""
}
```

**SDK Code**

```python
import requests

url = "https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction"

payload = {
    "accountId": 12345,
    "fundPaymentType": "WTR",
    "fundAmount": 25000,
    "fundCurrencyId": 840,
    "transactionIdentifier": "WIRE20240615-987654321"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"accountId":12345,"fundPaymentType":"WTR","fundAmount":25000,"fundCurrencyId":840,"transactionIdentifier":"WIRE20240615-987654321"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction"

	payload := strings.NewReader("{\n  \"accountId\": 12345,\n  \"fundPaymentType\": \"WTR\",\n  \"fundAmount\": 25000,\n  \"fundCurrencyId\": 840,\n  \"transactionIdentifier\": \"WIRE20240615-987654321\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"accountId\": 12345,\n  \"fundPaymentType\": \"WTR\",\n  \"fundAmount\": 25000,\n  \"fundCurrencyId\": 840,\n  \"transactionIdentifier\": \"WIRE20240615-987654321\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"accountId\": 12345,\n  \"fundPaymentType\": \"WTR\",\n  \"fundAmount\": 25000,\n  \"fundCurrencyId\": 840,\n  \"transactionIdentifier\": \"WIRE20240615-987654321\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction', [
  'body' => '{
  "accountId": 12345,
  "fundPaymentType": "WTR",
  "fundAmount": 25000,
  "fundCurrencyId": 840,
  "transactionIdentifier": "WIRE20240615-987654321"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"accountId\": 12345,\n  \"fundPaymentType\": \"WTR\",\n  \"fundAmount\": 25000,\n  \"fundCurrencyId\": 840,\n  \"transactionIdentifier\": \"WIRE20240615-987654321\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "accountId": 12345,
  "fundPaymentType": "WTR",
  "fundAmount": 25000,
  "fundCurrencyId": 840,
  "transactionIdentifier": "WIRE20240615-987654321"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://live.tradovateapi.com/v1/fundTransaction/intransitfundtransaction")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```