Submit an ACH profile for creation. ACH profiles are verified using micro deposits to the account. Once submitted a call to the ACH profile verification endpoint is necessary for the customer to verify the micro deposit amounts.
Header | Required | Values/Example | Default |
---|---|---|---|
Authorization | Required | Basic XXX |
Parameter | Type | Param Type | Required | Values/Example | Default |
---|---|---|---|---|---|
account_id | Path | String | Required | ||
Account the ACH relationship belongs to. | |||||
bankAccountOwnerName | Body | String | Required | Jane Doe | |
Name on the bank account | |||||
bankAccountType | Body | String | Required | checking | |
One of: checking or savings
|
|||||
bankAccount | Body | String | Required | ********3123 | |
Bank account number. | |||||
bankRoutingNumber | Body | String | Required | 253177049 | |
Routing number. | |||||
method | Body | String | Required | MICRO_DEPOSIT | |
One of: MICRO_DEPOSIT , PLAID
|
|||||
ipAddress | Body | String | Required | 127.123.456.789 | |
IP address of the account holder who submitted this request | |||||
nickname | Body | String | Required | Bank of America Checking | |
Nickname for this ACH relationship | |||||
plaidAccessToken | Body | String | Optional | access-production-123-674b-4f1e-a365-7824a5d5559b921 | |
Plaid access token used to fetch Auth and Identity information, Required for method PLAID
|
|||||
plaidAccountId | Body | String | Optional | 9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE | |
Plaid account Id for the ACH profile, Required for method PLAID
|
|||||
meta | Body | String | Optional | {} | |
Required for method PLAID
|
curl -X POST "https://api.tradier.com/v2/accounts/{account_id}/achprofiles" \
-H 'Authorization: Basic <TOKEN>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{ "bankAccountOwnerName": "Jane Doe","bankAccountType": "checking","bankAccount": "********3123","bankRoutingNumber": "253177049","method": "MICRO_DEPOSIT","ipAddress": "127.123.456.789","nickname": "Bank of America Checking","plaidAccessToken": "access-production-123-674b-4f1e-a365-7824a5d5559b921","plaidAccountId": "9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE","meta": "{}" }'
// 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("bankAccountOwnerName", "Jane Doe");
node.put("bankAccountType", "checking");
node.put("bankAccount", "********3123");
node.put("bankRoutingNumber", "253177049");
node.put("method", "MICRO_DEPOSIT");
node.put("ipAddress", "127.123.456.789");
node.put("nickname", "Bank of America Checking");
node.put("plaidAccessToken", "access-production-123-674b-4f1e-a365-7824a5d5559b921");
node.put("plaidAccountId", "9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE");
node.put("meta", "{}");
final HttpUriRequest request = RequestBuilder
.post("https://api.tradier.com/v2/accounts/{account_id}/achprofiles")
.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/accounts/{account_id}/achprofiles")
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 = '{ "bankAccountOwnerName": "Jane Doe","bankAccountType": "checking","bankAccount": "********3123","bankRoutingNumber": "253177049","method": "MICRO_DEPOSIT","ipAddress": "127.123.456.789","nickname": "Bank of America Checking","plaidAccessToken": "access-production-123-674b-4f1e-a365-7824a5d5559b921","plaidAccountId": "9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE","meta": "{}" }'
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/accounts/{account_id}/achprofiles"
u, _ := url.ParseRequestURI(apiUrl)
urlStr := u.String()
var jsonStr = []byte(`{ "bankAccountOwnerName": "Jane Doe","bankAccountType": "checking","bankAccount": "********3123","bankRoutingNumber": "253177049","method": "MICRO_DEPOSIT","ipAddress": "127.123.456.789","nickname": "Bank of America Checking","plaidAccessToken": "access-production-123-674b-4f1e-a365-7824a5d5559b921","plaidAccountId": "9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE","meta": "{}" }`)
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/accounts/{account_id}/achprofiles");
var requestData = "{ \"bankAccountOwnerName\": \"Jane Doe\",\"bankAccountType\": \"checking\",\"bankAccount\": \"********3123\",\"bankRoutingNumber\": \"253177049\",\"method\": \"MICRO_DEPOSIT\",\"ipAddress\": \"127.123.456.789\",\"nickname\": \"Bank of America Checking\",\"plaidAccessToken\": \"access-production-123-674b-4f1e-a365-7824a5d5559b921\",\"plaidAccountId\": \"9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE\",\"meta\": \"{}\" }";
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/accounts/{account_id}/achprofiles',
json: {
'bankAccountOwnerName': 'Jane Doe',
'bankAccountType': 'checking',
'bankAccount': '********3123',
'bankRoutingNumber': '253177049',
'method': 'MICRO_DEPOSIT',
'ipAddress': '127.123.456.789',
'nickname': 'Bank of America Checking',
'plaidAccessToken': 'access-production-123-674b-4f1e-a365-7824a5d5559b921',
'plaidAccountId': '9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE',
'meta': '{}'
},
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/accounts/{account_id}/achprofiles',
json={'bankAccountOwnerName': 'Jane Doe', 'bankAccountType': 'checking', 'bankAccount': '********3123', 'bankRoutingNumber': '253177049', 'method': 'MICRO_DEPOSIT', 'ipAddress': '127.123.456.789', 'nickname': 'Bank of America Checking', 'plaidAccessToken': 'access-production-123-674b-4f1e-a365-7824a5d5559b921', 'plaidAccountId': '9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE', 'meta': '{}'},
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/accounts/{account_id}/achprofiles');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "bankAccountOwnerName": "Jane Doe","bankAccountType": "checking","bankAccount": "********3123","bankRoutingNumber": "253177049","method": "MICRO_DEPOSIT","ipAddress": "127.123.456.789","nickname": "Bank of America Checking","plaidAccessToken": "access-production-123-674b-4f1e-a365-7824a5d5559b921","plaidAccountId": "9Qvb8K843eo76jnPxH5g8kqjLVlCV1ZZgE","meta": "{}" }');
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;
{
"id": 4,
"status": "PENDING",
"approvalMethod": "MICRO_DEPOSIT",
"bankRoutingNumber": "253177049",
"bankAccount": "********3123",
"bankAccountType": "checking",
"bankAccountOwnerName": "Jane Doe",
"nickname": "Bank of America Checking",
"ipAddress": "127.123.456.789",
"createdAt": "2015-03-20 20:14:34",
"updatedAt": "2015-05-21 15:17:37",
"achRelationshipId": "588a58c4e4b00a129b1d5dd6"
}