Opening an Account
This guide will cover the basics of applying to open new bank accounts (both business and personal) as well as funding those accounts with an initial deposit.
This guide uses the following endpoints
/apply/person_application
/apply/business_application
/apply/deposit
/apply/account_application
/account
/account_product
/person
/business
To apply to open a new bank account
- Create a Person Application
- Create a Business Application (if applying for a business account)
- Create a Deposit (optional)
- Select an Account Product
- Create an Account Application
Additional steps
- Check the status of an account application
- Retrieve information about an account
- Retrieve information about account owners
- Testing account applications
The resource hierarchy for account applications is as follows
Personal Accounts
Account Application
└── Deposit (optional)
└── Person Application(s)
Business Accounts
Account Application
└── Deposit (optional)
└── Business Application
└── Person Application(s)
1. Create a Person Application
The first step in applying to open a new bank account is to create a Person Application for the person(s) associated with the application for the bank account.
For business accounts, you will need to create a Person Application for each of the people who will be able to access the account, as well as any persons who have at least 25% ownership in the company (beneficial owners).
To create a Person Application, make a POST
request to the person_application
endpoint, passing a Person Application object containing the personal information of the individual who will be tied to the account.
Example Request to Create a Person Application
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/person_application \
-H 'Content-Type: application/json' \
-d '{
"citizenship": "US",
"date_of_birth": "1980-02-22",
"email_address": "[email protected]",
"first_name": "George",
"last_name": "Washington",
"phone_number": "2025551111",
"physical_address": {
"street_line_1": "1600 Pennsylvania Ave",
"city": "Washington",
"state": "DC",
"postal_code": "20500",
"country": "US"
},
"tin": "111222444"
}'
Example Response
This will return a Person Application object containing an id
property referencing this application. Note the id
value as it will be used in subsequent steps.
{
"bankdata": null,
"citizenship": "US",
"created_at": "2019-05-15T03:39:26Z",
"date_of_birth": "1980-02-22",
"document_ids": [],
"email_address": "[email protected]",
"first_name": "George",
"gov_id": null,
"id": "apsn_11g55jve4455",
"last_name": "Washington",
"mailing_address": null,
"middle_name": null,
"occupation": null,
"person_id": null,
"phone_number": "+1 202-555-1111",
"physical_address": {
"city": "Washington",
"postal_code": "20500",
"state": "DC",
"street_line_1": "1600 Pennsylvania Ave",
"street_line_2": null,
"country": "US"
},
"secondary_email_address": null,
"updated_at": "2019-05-15T03:39:26Z",
"user_id": null,
"userdata": null
}
2. Create a Business Application
If applying for a personal bank account, you can move ahead to Create a Deposit (optional) or Create an Account Application
To create a Business Application, make a POST
request to the business_application
endpoint, passing in a Person Applications object for each person who will be associated with the account as part of the person_applications
array.
Note the id
property should contain the id
of the Person Application for this person.
The format for the Person sub-object is as follows:
{
"id": "apsn_11g55jve4455",
"roles": ["control_person", "signer"],
"ownership_percentage": 60,
"title": "Optional title of person within the business"
}
Example Request to Create a Business Application
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/business_application \
-H 'Content-Type: application/json' \
-d '{
"description": "Our company is engaged in the buying and selling of goods",
"established_on": "2014-08-01",
"incorporation_state": "DE",
"legal_structure": "llc",
"mailing_address": {
"street_line_1": "1300 L St",
"city": "Sacramento",
"state": "CA",
"postal_code": "95814"
},
"naics": "42",
"naics_description": "Wholesale Trade",
"name": "Acme Goods Inc",
"person_applications": [
{
"id": "apsn_11g55jve4455",
"roles": ["signer"],
"ownership_percentage": 60,
"title": "CEO"
},
{
"id": "apsn_11g55kan445a",
"roles": ["control_person", "signer"],
"ownership_percentage": 20,
"title": "CFO"
}
],
"phone_number": "4155551111",
"physical_address": {
"street_line_1": "115 West St",
"city": "Benicia",
"state": "CA",
"postal_code": "94510"
},
"tin": "11-3344555"
}'
Example Response
{
"bank_id": "bank_anybank",
"bankdata": null,
"created_at": "2019-05-15T03:51:11Z",
"dba": null,
"description": "Our company is engaged in the buying and selling of goods",
"document_ids": [],
"established_on": "2014-08-01",
"id": "abus_11g55khf445e",
"incorporation_state": "DE",
"legal_structure": "llc",
"mailing_address": {
"city": "Sacramento",
"postal_code": "95814",
"state": "CA",
"country": "US",
"street_line_1": "1300 L St",
"street_line_2": null
},
"naics": "42",
"naics_description": "Wholesale Trade",
"name": "Acme Goods Inc",
"org_id": "org_tprime_example",
"person_applications": [
{
"id": "apsn_11g55jve4455",
"ownership_percentage": 60,
"roles": ["signer"],
"title": "CEO"
},
{
"id": "apsn_11g55kan445a",
"ownership_percentage": 20,
"roles": ["control_person", "signer"],
"title": "CFO"
}
],
"phone_number": "+1 415-555-1111",
"physical_address": {
"city": "Benicia",
"postal_code": "94510",
"state": "CA",
"country": "US",
"street_line_1": "115 West St",
"street_line_2": null
},
"tin": "11-3344555",
"updated_at": "2019-05-15T03:51:11Z",
"urls": [],
"userdata": null
}
3. Create a Deposit
If you wish to initially fund the new account using an ACH pull or debit card, make a POST
request to the deposit
endpoint passing a Deposit object containing information about the account the funds will be drawn from.
Example Request to Create a Deposit Via ACH Pull
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/deposit \
-H 'Content-Type: application/json' \
-d '{
"amount": "100.00",
"ach": {
"account_number": "2020611",
"account_type": "checking",
"routing_number": "123123123"
},
"name_on_account": "George Washington"
}'
Example Response
{
"ach": {
"account_type": "checking",
"last4": "0611",
"routing_number": "123123123"
},
"amount": "100.00",
"card": null,
"created_at": "2019-05-15T03:54:28Z",
"id": "adpt_11g55kqm445g",
"name_on_account": "George Washington",
"updated_at": "2019-05-15T03:54:28Z",
"userdata": null
}
4. Select an Account Product
Use the /account_product
endpoint to choose an appropriate Account Product
Example Request
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/account_product \
-H 'Content-Type: application/json'
Example Response
This will return a list of Account Product objects, each containing an id
property. Select one and note its id
value.
{
"data": [
{
"account_type": "checking",
"created_at": "2021-10-27T18:56:55Z",
"id": "apt_11gqk87qmrax",
"name": "Personal checking",
"ownership": "personal",
"updated_at": "2021-10-27T18:56:55Z",
"userdata": null
},
...
]
}
5. Create an Account Application
The final step in applying to open a new bank account is submitting the Account Application. This application will list the type of account being applied for, the person(s) who will have access to the account, and their roles as they pertain to the account.
If successfully created, the Account Application will initially be in status submitted
, then moving to status processing
. Depending on the results of the KYC (Know Your Customer) process, the Account Application will move to status approved
, rejected
, or manual_review
.
Once an Account Application passes KYC, then an account is created and the account_id
field is populated. The account is not fully setup until the status of the account is “approved”, signifying that the account setup process is complete.
Personal Account Application
To create a personal Account Application, make a POST
request to the account_application
endpoint, passing an Account Application object containing information about the associated Person Application(s), the ID of the primary Person Application, and the ID of the Account Product being applied for.
Note: See the section Account application with initial deposit for an example of including a deposit with the Account Application.
Example Request to Create a Personal Account Application
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/account_application \
-H 'Content-Type: application/json' \
-d '{
"person_applications": [
{
"id": "apsn_01d5w6yaa6vt",
"roles": ["owner", "signer"]
}
],
"primary_person_application_id": "apsn_01d5w6yaa6vt",
"account_product_id": "apt_11gqk87qmrax"
}'
Example Response for Personal Account Application
{
"account_id": null,
"account_product_id": "apt_11gqk87qmrax",
"bankdata": null,
"created_at": "2019-03-15T11:55:14Z",
"id": "aact_01d5w6xb72vr",
"person_applications": [
{
"id": "apsn_01d5w6yaa6vt",
"roles": ["owner", "signer"]
}
],
"personal_application_id": null,
"primary_person_application_id": "apsn_01d5w6yaa6vt",
"status": "submitted",
"updated_at": "2019-03-15T11:55:14Z",
"userdata": null
}
Joint Personal Account Application
To create a joint personal account application, make a POST
request to the account_application
endpoint, passing an Account Application object containing two person application records for person_applications
assigning both with owner
and signer
roles and ID of the Account Product being applied for. Set one of the two person application IDs as the primary Person Application.
Example Request to Create a Joint Personal Account Application
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/account_application \
-H 'Content-Type: application/json' \
-d '{
"person_applications": [
{
"id": "apsn_01d5w6yaa6vt",
"roles": ["owner", "signer"]
},
{
"id": "apsn_11k5ckm23knaa",
"roles": ["owner", "signer"]
}
],
"primary_person_application_id": "apsn_01d5w6yaa6vt",
"account_product_id": "apt_11gqk87qmrax"
}'
Example Response for Joint Personal Account Application
{
"account_id": null,
"account_product_id": "apt_11gqk87qmrax",
"bankdata": null,
"created_at": "2019-03-15T11:55:14Z",
"id": "aact_01d5w6xb72vr",
"person_applications": [
{
"id": "apsn_01d5w6yaa6vt",
"roles": ["owner", "signer"]
},
{
"id": "apsn_11k5ckm23knaa",
"roles": ["owner", "signer"]
}
],
"personal_application_id": null,
"primary_person_application_id": "apsn_01d5w6yaa6vt",
"status": "submitted",
"updated_at": "2019-03-15T11:55:14Z",
"userdata": null
}
Business Account Application
To create a business Account Application, make a POST
request to the account_application
endpoint, passing an Account Application object containing the ID of the Business Application, the ID of the primary Person Application, and the ID of the Account Product being applied for.
Note: See the section Account application with initial deposit for an example of including a deposit with the Account Application.
Example Request to Create a Business Account Application
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/account_application \
-H 'Content-Type: application/json' \
-d '{
"business_application_id": "abus_11sen7m398ab",
"primary_person_application_id": "apsn_11g55jve4455",
"account_product_id": "apt_11gqk87qmrax",
}'
Example Response for Business Account Application
{
"account_id": null,
"account_number": null,
"account_product_id": "apt_11gqk87qmrax",
"bankdata": null,
"business_application_id": "abus_11g55khf445e",
"created_at": "2019-05-15T04:08:08Z",
"deposit_id": null,
"id": "aact_11g55mh84484",
"ownership_type": "business",
"person_applications": [],
"primary_person_application_id": "apsn_11g55jve4455",
"status": "submitted",
"updated_at": "2019-05-15T04:08:08Z",
"userdata": null
}
Account Application with Initial Deposit
If funding the account with an initial deposit, add a deposit_id
property to the Account Application object listing the ID of the Deposit. This works the same for both personal and business account applications.
See the section Create a Deposit for information on creating a Deposit.
Example Request to Create a Business Account Application with Initial Deposit
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/account_application \
-H 'Content-Type: application/json' \
-d '{
"deposit_id": "adpt_11g55kqm445g",
"business_application_id": "abus_11g55khf445e",
"primary_person_application_id": "apsn_11g55jve4455",
"account_product_id": "apt_11gqk87qmrax",
}'
Example response, with initial deposit
{
"account_id": null,
"account_number": null,
"account_product_id": "apt_11gqk87qmrax",
"bankdata": null,
"business_application_id": "abus_11g55khf445e",
"created_at": "2019-05-15T03:56:46Z",
"deposit_id": "adpt_11g55kqm445g",
"id": "aact_11g55kvy445k",
"ownership_type": "business",
"person_applications": [],
"primary_person_application_id": "apsn_11g55jve4455",
"status": "submitted",
"updated_at": "2019-05-15T03:56:47Z",
"userdata": null
}
Check the Status of an Account Application
Once the Account Application has been submitted, you can retrieve the latest status of the application using the id
of the Account Application. To do this, make a GET
request to the account_application/:id
endpoint.
Example Request
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/apply/account_application/aact_11g55kvy445k
Example Response
{
"account_id": "acct_11g55kw64468",
"account_number": "100100003140",
"account_product_id": "apt_11gqk87qmrax",
"bankdata": null,
"business_application_id": "abus_11g55khf445e",
"created_at": "2019-03-15T04:03:46Z",
"deposit_id": "adpt_11g55kqm445g",
"id": "aact_11g55kvy445k",
"ownership_type": "business",
"person_applications": [],
"primary_person_application_id": "apsn_11g55jve4455",
"status": "approved",
"updated_at": "2019-03-15T04:05:28Z",
"userdata": null
}
Retrieve Information About an Account
Once an Account Application is complete and status is approved, you can access the account using the account_id
(found in the response from the account_application/:id
endpoint outlined in the previous section). To do this, make a GET
request to the account/:account_id
endpoint.
Example Request
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/account/acct_11g55kw64468
Example Response
{
"account_number": "100100003140",
"account_type": "checking",
"address": {
"city": "Sacramento",
"postal_code": "95814",
"state": "CA",
"street_line_1": "1300 L St",
"street_line_2": null
},
"available_balance": "0.00",
"bank_id": "bank_anybank",
"business_ids": ["com_11g55kw6446a"],
"created_at": "2019-03-15T04:03:54Z",
"currency": "USD",
"current_balance": "0.00",
"funded": false,
"id": "acct_11g55kw64468",
"locked": false,
"name": "Acme Goods Inc",
"person_ids": ["psn_11g55kw6446d", "psn_11g55kw6446g"],
"primary_person_id": "psn_11g55kw6446d",
"routing_number": "000000000",
"status": "open",
"updated_at": "2019-03-15T04:05:25Z",
"userdata": null
}
Retrieve Information About Account Owners
The person_ids
and business_ids
properties in an Account object let you retrieve information about account owners (persons and businesses respectively).
Note that Person and Business objects are separate from the Person Application and Business Application objects. Information about persons and businesses are expected to change (such as changing a name or address) and reflect current data, while Person Application and Business Application objects are static and are a snapshot of these entities at the time that they applied for an account.
Retrieve Person Information
To retrieve information about a person related to an account, make a GET
request to the person/:id
endpoint passing the person_id
which is found in the Account object.
Example Person Request
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/person/psn_11g55kw6446d
Example Person Response
{
"account_ids": ["acct_11g55kw64468"],
"address": {
"city": "Washington",
"postal_code": "20500",
"state": "DC",
"street_line_1": "1600 Pennsylvania Ave",
"street_line_2": null
},
"bankdata": {
"cif": null
},
"created_at": "2019-03-15T04:03:56Z",
"email": "[email protected]",
"first_name": "George",
"id": "psn_11g55kw6446d",
"last_name": "Washington",
"mailing_address": null,
"middle_name": null,
"phone_number": "+1 202-555-1111",
"physical_address": {
"city": "Washington",
"postal_code": "20500",
"state": "DC",
"country": "US",
"street_line_1": "1600 Pennsylvania Ave",
"street_line_2": null
},
"suffix": null,
"tin_last4": "2444",
"updated_at": "2019-03-15T04:03:56Z"
}
Retrieve Business Information
To retrieve information about the business related to an account, make a GET
request to the business/:id
endpoint passing the business_id
found in the Account object.
Example Business Request
curl -u $API_KEY_ID:$API_SECRET_KEY https://api.treasuryprime.com/business/com_11g55kw6446a
Example Business Response
{
"account_ids": [
"acct_11g55kw64468"
],
"address": {
"city": "Sacramento",
"postal_code": "95814",
"state": "CA",
"street_line_1": "1300 L St",
"street_line_2": null
},
"bankdata": {
"cif": null
},
"created_at": "2019-03-15T04:03:56Z",
"emails": [],
"id": "com_11g55kw6446a",
"name": "Acme Goods Inc",
"phone_number": "+1 415-555-1111",
"tin_last4": "4555",
"updated_at": 2019-03-15T04:03:56Z"
}
Testing Account Applications
When testing your integration, it may be useful to coerce an Account Application into a particular status (for example, forcing the status to show "approved"). This can be accomplished by adjusting specific values as outlined below.
More information on testing can be found here.
Personal Account Applications
To manually trigger a status for a personal account application, the first digit of the tin
property of each Person Application object submitted with the application must be set to one of the following values before submitting the Account Application. Note that all of the tin
properties must be set to the same value. An x
indicates any digit.
Status | Test TIN |
---|---|
Approved | 1xx-xx-xxxx |
Manual Review | 2xx-xx-xxxx |
Processing | 3xx-xx-xxxx |
Rejected | 4xx-xx-xxxx |
Submitted | 5xx-xx-xxxx |
Business Account Applications
To manually trigger a status for a business account application, the first digit of the tin
property of each Person Application object and the tin
property of the Business Application object submitted with the application must be set to one of the following values before submitting the Account Application. Note that all of the tin
properties must be set to the same value. An x
indicates any digit.
Status | Test TIN |
---|---|
Approved | 1x-xxxxxxx |
Manual Review | 2x-xxxxxxx |
Processing | 3x-xxxxxxx |
Rejected | 4x-xxxxxxx |
Submitted | 5x-xxxxxxx |
Updated 6 months ago
Great work on creating your first bank account application! If you'd like to dig deeper, check out the Apply API documentation. And since you're already on a hot-streak, why not try out Issuing Debit Cards?