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

To apply to open a new bank account

  1. Create a Person Application
  2. Create a Business Application (if applying for a business account)
  3. Create a Deposit (optional)
  4. Select an Account Product
  5. Create an Account Application

Additional steps

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.

StatusTest TIN
Approved1xx-xx-xxxx
Manual Review2xx-xx-xxxx
Processing3xx-xx-xxxx
Rejected4xx-xx-xxxx
Submitted5xx-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.

StatusTest TIN
Approved1x-xxxxxxx
Manual Review2x-xxxxxxx
Processing3x-xxxxxxx
Rejected4x-xxxxxxx
Submitted5x-xxxxxxx

What’s Next

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?