Overview
Applications

Open and update various types of accounts.

ACH Profiles

Create, update, and verify account ACH profiles.

Transactions

Manage deposit and withdrawal transactions on an account.

Documents

Fetch statements, tax documents and trade confirmations for customers.

Webhooks

Manage and test evented webhooks.

Virtual Accounts

Create and update paper trading accounts.

ACAT Transfers

Manage ACAT Transfers on an account.

Reference

Examples, response types, property details and explanations.

Create an ACAT transfer

  • Available in Paper Trading
  • Available in Production
  • Available to Advisors
  • Supported

Create an ACAT transfer.

POST

Headers

Header Required Values/Example Default
Authorization Required Basic XXX

Parameters

Parameter Type Param Type Required Values/Example Default
account Body String Required 6YA01234
Account for the transfer.
transferType Body String Required FULL_TRANSFER
Identifies the type of account transfer, must be FULL_TRANSFER
externalAccount Body String Required 8000111
Account from the contraparty for the transfer.
externalAccountTitle Body String Required JOHN SMITH
Contraparty title for the account to transfer.
externalAccountTaxId Body String Required 01010101
The primary social security number or Tax ID for the account.
externalAccountSecondaryTaxId Body String Optional 02020202
The secondary social security number or Tax ID for the account.
externalAccountType Body String Required SINGLE
The type of account for the transfer; one of: SINGLE, JOINT, IRA, ROTH_IRA, CUSTODIAN_UGMA
participantNumber Body String Required 0385
The participant number of the contraparty.

Code Example

curl -X POST "https://api.tradier.com/v2/acats" \
     -H 'Authorization: Basic <TOKEN>' \
     -H 'Accept: application/json' \
     -H 'Content-Type: application/json' \
     -d '{ "account": "6YA01234","transferType": "FULL_TRANSFER","externalAccount": "8000111","externalAccountTitle": "JOHN SMITH","externalAccountTaxId": "01010101","externalAccountSecondaryTaxId": "02020202","externalAccountType": "SINGLE","participantNumber": "0385" }'
// Version 1.8.0_31
import static org.apache.http.entity.ContentType.APPLICATION_JSON;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class Main {
  public static void main(String[] args) throws IOException {
    final ObjectNode node = new ObjectMapper().createObjectNode();
    node.put("account", "6YA01234");
    node.put("transferType", "FULL_TRANSFER");
    node.put("externalAccount", "8000111");
    node.put("externalAccountTitle", "JOHN SMITH");
    node.put("externalAccountTaxId", "01010101");
    node.put("externalAccountSecondaryTaxId", "02020202");
    node.put("externalAccountType", "SINGLE");
    node.put("participantNumber", "0385");
    final HttpUriRequest request = RequestBuilder
        .post("https://api.tradier.com/v2/acats")
        .addHeader("Authorization", "Basic <TOKEN>")
        .addHeader("Accept", "application/json")
        .setEntity(new StringEntity(node.toString(), APPLICATION_JSON))
        .build();

    final HttpResponse response = HttpClientBuilder.create().build().execute(request);
    final String jsonString = EntityUtils.toString(response.getEntity());
    final JsonNode json = new ObjectMapper().readTree(jsonString);

    System.out.println(response.getStatusLine().getStatusCode());
    System.out.println(json);
  }
}
# Version 2.5.0p0
require 'uri'
require 'net/http'

url = URI("https://api.tradier.com/v2/acats")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <TOKEN>'
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request.body = '{ "account": "6YA01234","transferType": "FULL_TRANSFER","externalAccount": "8000111","externalAccountTitle": "JOHN SMITH","externalAccountTaxId": "01010101","externalAccountSecondaryTaxId": "02020202","externalAccountType": "SINGLE","participantNumber": "0385" }'

response = http.request(request)
puts response.code
puts response.read_body
// Version go1.12
package main

import (
    "fmt"
    "net/http"
    "net/url"
    "io/ioutil"
    "log"
    "bytes"
)

func main() {
    apiUrl := "https://api.tradier.com/v2/acats"
    u, _ := url.ParseRequestURI(apiUrl)
    urlStr := u.String()
    var jsonStr = []byte(`{ "account": "6YA01234","transferType": "FULL_TRANSFER","externalAccount": "8000111","externalAccountTitle": "JOHN SMITH","externalAccountTaxId": "01010101","externalAccountSecondaryTaxId": "02020202","externalAccountType": "SINGLE","participantNumber": "0385" }`)
    client := &http.Client{}
    r, _ := http.NewRequest("POST", urlStr, bytes.NewBuffer(jsonStr))
    r.Header.Add("Authorization", "Basic <TOKEN>")
    r.Header.Add("Accept", "application/json")
    r.Header.Add("Content-Type", "application/json")

    resp, _ := client.Do(r)
    responseData, err := ioutil.ReadAll(resp.Body)

    if err != nil {
      log.Fatal(err)
    }

    fmt.Println(resp.Status)
    fmt.Println(string(responseData))
}
// Version 4.6.2.0
using System;
using System.Net;
using System.IO;
using System.Text;

public class MainClass {
  public static void Main (string[] args) {
    var request = (HttpWebRequest)WebRequest.Create("https://api.tradier.com/v2/acats");
    var requestData = "{ \"account\": \"6YA01234\",\"transferType\": \"FULL_TRANSFER\",\"externalAccount\": \"8000111\",\"externalAccountTitle\": \"JOHN SMITH\",\"externalAccountTaxId\": \"01010101\",\"externalAccountSecondaryTaxId\": \"02020202\",\"externalAccountType\": \"SINGLE\",\"participantNumber\": \"0385\" }";
    var data = Encoding.ASCII.GetBytes(requestData);
    
    request.Method = "POST";
    request.Headers["Authorization"] = "Basic <TOKEN>";
    request.Accept = "application/json";
    request.ContentType = "application/json";
    request.ContentLength = data.Length;

    using (var stream = request.GetRequestStream())
     {
         stream.Write(data, 0, data.Length);
     }

    var response = (HttpWebResponse)request.GetResponse();

    Console.WriteLine (response.StatusCode);
    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
    Console.WriteLine (responseString);
  }
}
// Version 10.15.2
const request = require('request');

request({
    method: 'post',
    url: 'https://api.tradier.com/v2/acats',
    json: {
     'account': '6YA01234',
     'transferType': 'FULL_TRANSFER',
     'externalAccount': '8000111',
     'externalAccountTitle': 'JOHN SMITH',
     'externalAccountTaxId': '01010101',
     'externalAccountSecondaryTaxId': '02020202',
     'externalAccountType': 'SINGLE',
     'participantNumber': '0385'
    },
    headers: {
      'Authorization': 'Basic <TOKEN>',
      'Accept': 'application/json'
    }
  }, (error, response, body) => {
      console.log(response.statusCode);
      console.log(body);
  });
# Version 3.6.1
import requests

response = requests.post('https://api.tradier.com/v2/acats',
    json={'account': '6YA01234', 'transferType': 'FULL_TRANSFER', 'externalAccount': '8000111', 'externalAccountTitle': 'JOHN SMITH', 'externalAccountTaxId': '01010101', 'externalAccountSecondaryTaxId': '02020202', 'externalAccountType': 'SINGLE', 'participantNumber': '0385'},
    headers={'Authorization': 'Basic <TOKEN>', 'Accept': 'application/json'}
)
json_response = response.json()
print(response.status_code)
print(json_response)
<?php
// Version 7.2.17-0ubuntu0.18.04.1
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.tradier.com/v2/acats');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "account": "6YA01234","transferType": "FULL_TRANSFER","externalAccount": "8000111","externalAccountTitle": "JOHN SMITH","externalAccountTaxId": "01010101","externalAccountSecondaryTaxId": "02020202","externalAccountType": "SINGLE","participantNumber": "0385" }');
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Authorization: Basic <TOKEN>';
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
echo $http_code;
echo $result;

Response

Response Definition

{
    "id": 1,
    "account": "6YA01234",
    "transferType": "FULL_TRANSFER"
    "externalAccount": "8000111",
    "externalAccountTitle": "JOHN SMITH",
    "externalAccountTaxId": "01010101",
    "externalAccountType": "SINGLE",
    "participantNumber": "0385",
    "status": "SUBMITTED"
}