Person Entity object

An entity represents a person or organization possessing separate and distinct legal rights. You will create entities for each of your customers or users. An entity is required to create a bank account or a loan object. Read about entities in our data model section for more information.

object parameters

Contains all person details of the legal person entity. Only returned when entity type is PERSON.

First name of the legal person. Must adhere to Fedwire character validation.

Last name of the legal person. Must adhere to Fedwire character validation.

Middle name of the legal person. Must adhere to Fedwire character validation.

Social Security Number. SSN is required for U.S. citizens. ITIN may be shared in place of SSN.

Passport Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Passport number

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Driver's License Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Driver's license number

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

National ID Details. Passport, Driver's License or National ID is required for non U.S. citizens.

National ID number

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Date of birth (YYYY-MM-DD)

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Address line 1

Address line 2

City

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Postal code

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

List of documents which are uploaded with the Submit Document API

Unique identifier for the object

Indicates if the entity is the root entity of the platform.

List of reasons the entity is in Manual_Review

Type of entity. PERSON for a person entity.

Current status of the entity verification. Can be UNVERIFIED, PENDING,MANUAL_REVIEW, VERIFIED, or DENIED

A list of verification tags with more details about its identity verification process.

Person Entity object

{
  "documents": [],
  "id": "enti_2Q1ctiJm1NypVqCt8UBC8e4xTfH",
  "is_root": false,
  "person_details": {
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "101 Market St",
      "line_2": "Suite 1913",
      "postal_code": "94105",
      "state": "CA"
    },
    "date_of_birth": "1985-08-04",
    "email": "oliver@column.com",
    "first_name": "Oliver",
    "last_name": "Hockey",
    "middle_name": "Smith",
    "passport": {},
    "ssn": "565438976", 
    "drivers_license":null,
    "national_id": null
  },
  "review_reasons": [],
  "type": "PERSON",
  "verification_status": "VERIFIED"
}

Business Entity object

A business entity represents a legal business in the Column data model.

object parameters

Contains all business details of the legal business entity. Only returned when entity type is BUSINESS.

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Address line 1

Address line 2

City

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Postal code

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

A list of all the persons who have ultimate control over funds in the business, whether through ownership or other means.

This is anyone who owns owns 25 percent or more of the business and those who control the funds. If no one owns more than 25% of the business, just the individual who has ultimate control of the funds must be included.

First name of the legal person

Last name of the legal person

Middle name of the legal person

Social Security Number is required for US beneficial owners. Passport, driver's license, or national ID is required for foreign beneficial owners.

Passport Number. SSN, passport, driver's license, or national ID is required.

Passport number

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Driver's license. SSN, passport, driver's license, or national ID is required.

Driver's license number

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

National ID. SSN, passport, driver's license, or national ID is required.

National ID number

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Date of birth (YYYY-MM-DD)

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Boolean value which specifies if this person is a designated control person.

Boolean value which specifies if this person is a designated beneficial owner.

Percentage ownership, specified as a integer, of the beneficial owner

Job title of the beneficial owner or control person.

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Address line 1

Address line 2

City

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Postal code

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Legal Business Name

Employer Identification Number (Tax ID). This may be SSN for a sole proprietorship.

Registration ID. EIN or Registration ID is required.

Business registration ID

Country code where the business registration ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Industry in which the business entity operates.

Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Type of business. Permitted values are limited-partnership, trust, sole-proprietorship, corporation,llc, general-partnership, professional-association,government,non-profit, other.

State in which the business is incorporated. Only postal abbreviations (e.g. AL, CA, DE, ...) are allowed. Only required for a root entity.

Year in which the business entity was incorporated. Only required for a root entity.

Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.

Description of the business entity. Only required for a root entity.

Expected payment volumes. Only required for a root entity.

Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., US, FR, UK, DE, ...) are allowed. Only required for a root entity.

Indicates if the entity is the root entity of the platform.

List of documents which are uploaded with the Submit Document API

Unique identifier for the object

List of reasons the entity is in Manual_Review

Type of entity. BUSINESS for a business entity.

Current status of the entity verification. Can be UNVERIFIED, PENDING,MANUAL_REVIEW, VERIFIED, or DENIED

A list of verification tags with more details about its identity verification process.

Entity object

{
  "business_details": {
    "account_usage": "",
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "1110 Gorgas Avenue",
      "line_2": "Suite 1000",
      "postal_code": "94109",
      "state": "CA"
    },
    "beneficial_owners": [
      {
        "address": {
          "city": "San Francisco",
          "country_code": "US",
          "line_1": "999 Bay Street",
          "line_2": "",
          "postal_code": "94109",
          "state": "CA"
        },
        "date_of_birth": "1989-01-01",
        "drivers_license": null,
        "email": "mbakery@bakery.com",
        "first_name": "Sam",
        "last_name": "Smith",
        "middle_name": "Test",
        "national_id": null,
        "passport": {},
        "ssn": "999999999"
      }
    ],
    "business_name": "Maries Bakery",
    "countries_of_operation": null,
    "year_of_incorporation": "2022",
    "description": "Bakery",
    "ein": "111111111",
    "industry": "",
    "legal_type": "",
    "payment_volumes": null,
    "registration_id": {
      "country_code": "US",
      "number": "111111111"
    },
    "state_of_incorporation": "CA",
    "website": "acme.com"
  },
  "documents": [],
  "id": "enti_2dk2oXqPcB5Xb5wFpnrg50F7BeD",
  "is_root": false,
  "review_reasons": [],
  "type": "BUSINESS",
  "verification_status": "VERIFIED"
}

Create a legal person entity

POST

/entities/person

Creates a legal person entity.

body parameters

Required

First name of the legal person. Must adhere to Fedwire character validation.

Required

Last name of the legal person. Must adhere to Fedwire character validation.

Optional

Middle name of the legal person. Must adhere to Fedwire character validation.

Required

Social Security Number. SSN is required for U.S. citizens. ITIN may be shared in place of SSN.

Optional

Passport Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

Passport number

Required

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Optional

Driver's License Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

Driver's license number

Required

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

Optional

National ID Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

National ID number

Required

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

Date of birth (YYYY-MM-DD)

Optional

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Request

curl `https://api.column.com/entities/person` \
  -XPOST \
  -u :<YOUR API KEY> \
  -d first_name=Oliver \
  -d last_name=Hockey \
  -d middle_name=Smith \
  -d ssn=565438976 \
  -d date_of_birth="1985-08-04" \
  -d email="oliver@column.com" \
  -d "address[line_1]"="101 Market St" \
  -d "address[line_2]"="Suite 1913" \
  -d "address[city]"="San Francisco" \
  -d "address[state]"="CA" \
  -d "address[postal_code]"="94105" \
  -d "address[country_code]"="USA"

Response

{
  "documents": [],
  "id": "enti_2Q1ctiJm1NypVqCt8UBC8e4xTfH",
  "is_root": false,
  "person_details": {
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "101 Market St",
      "line_2": "Suite 1913",
      "postal_code": "94105",
      "state": "CA"
    },
    "date_of_birth": "1985-08-04",
    "email": "oliver@column.com",
    "first_name": "Oliver",
    "last_name": "Hockey",
    "middle_name": "Smith",
    "passport": {},
    "ssn": "565438976", 
    "drivers_license": null,
    "national_id": null
  },
  "review_reasons": [],
  "type": "PERSON",
  "verification_status": "VERIFIED"
}

Update a legal person entity

PATCH

/entities/person/<entity_id>

Update the information stored for a legal person. Do not use this to change the underlying legal person - only use this if the actual personal information changes (e.g. legal name changes, etc.).

path parameters

Required

ID of the person entity you're updating

body parameters

Required

First name of the legal person. Must adhere to Fedwire character validation.

Required

Last name of the legal person. Must adhere to Fedwire character validation.

Optional

Middle name of the legal person. Must adhere to Fedwire character validation.

Required

Social Security Number. SSN is required for U.S. citizens. ITIN may be shared in place of SSN.

Optional

Passport Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

Passport number

Required

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Optional

Driver's License Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

Driver's license number

Required

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

Optional

National ID Details. Passport, Driver's License or National ID is required for non U.S. citizens.

Required

National ID number

Required

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

Date of birth (YYYY-MM-DD)

Optional

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Request

curl https://api.column.com/entities/person/<entity_id> \
  -XPATCH \
  -u :<YOUR API KEY> \
  -d first_name=Bruce \
  -d last_name=Hockey \
  -d middle_name=Smith \
  -d ssn=565438976 \
  -d date_of_birth="1985-08-04" \
  -d email="apis@column.com" \
  -d "address[line_1]"="101 Market St" \
  -d "address[line_2]"="Suite 1913" \
  -d "address[city]"="San Francisco" \
  -d "address[state]"="CA" \
  -d "address[postal_code]"="94105" \
  -d "address[country_code]"="USA"

Response

{
  "documents": [],
  "id": "enti_2Q1ctiJm1NypVqCt8UBC8e4xTfH",
  "is_root": false,
  "person_details": {
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "101 Market St",
      "line_2": "Suite 1913",
      "postal_code": "94105",
      "state": "CA"
    },
    "date_of_birth": "1985-08-04",
    "email": "apis@column.com",
    "first_name": "Bruce",
    "last_name": "Hockey",
    "middle_name": "Smith",
    "passport": {},
    "ssn": "565438976",
    "drivers_license": null,
    "national_id": null
  },
  "review_reasons": [],
  "type": "PERSON",
  "verification_status": "VERIFIED"
}

Create a legal business entity

POST

/entities/business

Creates a legal business entity.

body parameters

Required

Employer Identification Number (Tax ID)

Optional

Registration ID, typically for a non US incorporated company. EIN or Registration ID is required.

Required

Business registration ID

Required

Country code where the business registration ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

Legal Business Name. Must adhere to Fedwire character validation.

Optional

Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Optional

Type of business. Permitted values are limited-partnership, trust, sole-proprietorship, corporation,llc, general-partnership, professional-association,government,non-profit, other.

Optional

State in which the business is incorporated. Only postal abbreviations (e.g. AL, CA, DE, ...) are allowed. Only required for a root entity.

Optional

Year in which the business entity was incorporated. Only required for a root entity.

Optional

Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.

Optional

Description of the business entity. Only required for a root entity.

Optional

Expected payment volumes. Only required for a root entity.

Optional

Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., US, FR, UK, DE, ...) are allowed. Only required for a root entity.

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

A list of all the persons who have ultimate control over funds in the business, whether through ownership or other means.

This is anyone who owns owns 25 percent or more of the business and those who control the funds. If no one owns more than 25% of the business, just the individual who has ultimate control of the funds must be included.

Required

First name of the legal person

Required

Last name of the legal person

Optional

Middle name of the legal person

Optional

Social Security Number is required for US beneficial owners. Passport, driver's license, or national ID is required for foreign beneficial owners.

Optional

Passport Number. SSN, passport, driver's license, or national ID is required.

Required

Passport number

Required

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Optional

Driver's license. SSN, passport, driver's license, or national ID is required.

Required

Driver's license number

Required

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

Optional

National ID. SSN, passport, driver's license, or national ID is required.

Required

National ID number

Required

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

Date of birth (YYYY-MM-DD)

Optional

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Required

Boolean value which specifies if this person is a designated control person.

Required

Boolean value which specifies if this person is a designated beneficial owner.

Optional

Percentage ownership, specified as a integer, of the beneficial owner

Optional

Job title of the beneficial owner or control person.

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Request

curl 'https://api.column.com/entities/business' \
  -XPOST \
  -u :<YOUR API KEY> \
  -H 'Content-Type: application/json' \
  -d '{
    "ein": "999999999",
    "business_name": "Maries Bakery",
    "website": "mariesbakery.com",
    "address": {
        "line_1": "1110 Gorgas Avenue",
        "line_2": "1000",
        "city": "San Francisco",
        "state": "CA",
        "postal_code": "94109",
        "country_code": "US"
    },
    "beneficial_owners": [
        {
            "date_of_birth": "1989-04-15",
            "first_name": "Sam",
            "middle_name": "Bruce",
            "last_name": "Smith",
            "ssn": "999999999",
            "email": "samsmith@gmail.com",
            "is_beneficial_owner": true,
            "ownership_percentage": 50,
            "address": {
                "line_1": "999 Bay Street",
                "city": "San Francisco",
                "state": "CA",
                "postal_code": "94109",
                "country_code": "US"
            }
        }
    ]
}'

Response

{
  "business_details": {
    "account_usage": "",
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "1110 Gorgas Avenue",
      "line_2": "1000",
      "postal_code": "94109",
      "state": "CA"
    },
    "beneficial_owners": [
      {
        "address": {
          "city": "San Francisco",
          "country_code": "US",
          "line_1": "999 Bay Street",
          "line_2": "",
          "postal_code": "94109",
          "state": "CA"
        },
        "date_of_birth": "1989-04-15",
        "drivers_license": null,
        "email": "samsmith@gmail.com",
        "first_name": "Sam",
        "is_beneficial_owner": true,
        "is_control_person": false,
        "job_title": "",
        "last_name": "Smith",
        "middle_name": "Bruce",
        "national_id": null,
        "ownership_percentage": 50,
        "passport": {},
        "ssn": "999999999"
      }
    ],
    "business_name": "Maries Bakery",
    "countries_of_operation": null,
    "description": null,
    "ein": "999999999",
    "industry": "",
    "legal_type": "",
    "payment_volumes": null,
    "registration_id": {
      "country_code": "US",
      "number": "999999999"
    },
    "website": "mariesbakery.com"
  },
  "documents": [],
  "id": "enti_2dskHOBMYaqdTGllzMJpLYt1lC5",
  "is_root": false,
  "review_reasons": [],
  "type": "BUSINESS",
  "verification_status": "VERIFIED"
}

Update a legal business entity

PATCH

/entities/business/<entity_id>

This updates the information stored for this legal person. Changes to ssn, date of birth, and name will cause a re-verification process. Do not use this to change the underlying legal person - only use this if the actual personal information changes (e.g. legal name changes, etc.).

path parameters

Required

ID of the business entity you're updating

body parameters

Optional

Legal Business Name. Must adhere to Fedwire character validation.

Optional

Industry in which the business entity operates.

Optional

Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Optional

Type of business. Permitted values are limited-partnership, trust, sole-proprietorship, corporation,llc, general-partnership, professional-association,government,non-profit, other.

Optional

State in which the business is incorporated. Only postal abbreviations (e.g. AL, CA, DE, ...) are allowed. Only required for a root entity.

Optional

Year in which the business entity was incorporated. Only required for a root entity.

Optional

Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.

Optional

Description of the business entity. Only required for a root entity.

Optional

Expected payment volumes. Only required for a root entity.

Optional

Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., US, FR, UK, DE, ...) are allowed. Only required for a root entity.

Optional

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Optional

If beneficial owners are updated, the entire array of objects will be updated. This means you must pass the complete array of beneficial owners when updating.

A list of all the persons who have ultimate control over funds in the business, whether through ownership or other means.

This is anyone who owns owns 25 percent or more of the business and those who control the funds. If no one owns more than 25% of the business, just the individual who has ultimate control of the funds must be included.

Required

First name of the legal person

Required

Last name of the legal person

Optional

Middle name of the legal person

Optional

Social Security Number is required for US beneficial owners. Passport, driver's license, or national ID is required for foreign beneficial owners.

Optional

Passport Number. SSN, passport, driver's license, or national ID is required.

Required

Passport number

Required

Country code where the passport was issued. US Passports will be rejected as we require US citizens to submit SSN.

Optional

Driver's license. SSN, passport, driver's license, or national ID is required.

Required

Driver's license number

Required

Country code where the driver's license was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...). US Drivers License will be rejected as we require US citizens to submit SSN.

Optional

National ID. SSN, passport, driver's license, or national ID is required.

Required

National ID number

Required

Country code where the national ID was issued. ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Required

Date of birth (YYYY-MM-DD)

Optional

Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification.

Required

Boolean value which specifies if this person is a designated control person.

Required

Boolean value which specifies if this person is a designated beneficial owner.

Optional

Percentage ownership, specified as a integer, of the beneficial owner

Optional

Job title of the beneficial owner or control person.

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Request

curl 'https://api.column.com/entities/business/<entity_id>' \
  -XPATCH \
  -u :<YOUR API KEY> \
  -H 'Content-Type: application/json' \
  -d '{
    "ein":"123456789",
    "business_name":"Yellen Cocktails LLC",
    "industry":"housing",
    "website":"column.com",
    "legal_type":"corporation",
    "address":{
      "line_1":"555 California Street",
      "city":"San Francisco",
      "state":"CA",
      "country_code":"US"
    },
    "beneficial_owners":[
      {
        "date_of_birth":"1990-01-01",
        "first_name":"Oliver",
        "last_name":"Hockey",
        "ssn":"999999999",
        "email":"oli@column.com",
        "is_control_person":true,
        "is_beneficial_owner":true,
        "job_title":"CEO",
        "address":{
          "line_1":"101 Market St",
          "line_2":"Suite 1913",
          "city":"San Francisco",
          "state":"CA",
          "postal_code":"94105",
          "country_code":"US"
        }
      }
    ]
  }'

Response

{
  "business_details": {
    "account_usage": "",
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "1110 Gorgas Avenue",
      "line_2": "Suite 1000",
      "postal_code": "94109",
      "state": "CA"
    },
    "beneficial_owners": [
      {
        "address": {
          "city": "San Francisco",
          "country_code": "US",
          "line_1": "999 Bay Street",
          "line_2": "",
          "postal_code": "94109",
          "state": "CA"
        },
        "date_of_birth": "1989-01-01",
        "drivers_license": null,
        "email": "mbakery@bakery.com",
        "first_name": "Sam",
        "last_name": "Smith",
        "middle_name": "Test",
        "national_id": null,
        "passport": {},
        "ssn": "999999999"
      }
    ],
    "business_name": "Maries Bakery",
    "countries_of_operation": null,
    "year_of_incorporation": "2022",
    "description": "Bakery",
    "ein": "111111111",
    "industry": "",
    "legal_type": "",
    "payment_volumes": null,
    "registration_id": {
      "country_code": "US",
      "number": "111111111"
    },
    "state_of_incorporation": "CA",
    "website": "acme.com"
  },
  "documents": [],
  "id": "enti_2dk2oXqPcB5Xb5wFpnrg50F7BeD",
  "is_root": false,
  "review_reasons": [],
  "type": "BUSINESS",
  "verification_status": "VERIFIED"
}

Get an entity by ID

GET

/entities/<entity_id>

Retrieve a single legal entity by its ID.

path parameters

Required

ID of the entity you're requesting. Depending on the entity type, either the business or person object will be returned.

Request

curl 'https://api.column.com/entities/<entity_id>' \
  -u :<YOUR API KEY>

Response

{
  "business_details": {
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "555 California Street",
      "line_2": "",
      "postal_code": "",
      "state": "CA"
    },
    "beneficial_owners": [
      {
        "address": {
          "city": "San Francisco",
          "country_code": "US",
          "line_1": "101 Market St",
          "line_2": "Suite 1913",
          "postal_code": "94105",
          "state": "CA"
        },
        "date_of_birth": "1990-01-01",
        "email": "oliver@column.com",
        "first_name": "Oliver",
        "last_name": "Hockey",
        "middle_name": "",
        "passport": {},
        "ssn": "999999999",
        "drivers_license": null,
        "national_id": null
      }
    ],
    "business_name": "Yellen Cocktails LLC",
    "ein": "123456789",
    "registration_id": {
      "number": "123456789",
      "country_code": "US"
    },
    "industry": "",
    "legal_type": "corporation",
    "website": "column.com"
  },
  "documents": [],
  "id": "enti_2Q1fIwKjnf7TmZP37mAuKjWXB2o",
  "is_root": false,
  "review_reasons": [],
  "type": "BUSINESS",
  "verification_status": "VERIFIED"
}

Delete an entity

DELETE

/entities/<entity_id>

Delete the underlying entity.

Removing entities

Entities can only be deleted if all their underlying accounts are deleted. Accounts can only be deleted when they have a $0 balance.

path parameters

Required

ID of the entity you're deleting.

Request

curl 'https://api.column.com/entities/<entity_id>' \
  -XDELETE \
  -u :<YOUR API KEY>

Response

{}

List all entities

GET

/entities

Retrieve all entities on your platform. Filtered results can be retrieved with extra parameters in the query (`type`, `name`, etc.).

query parameters

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Optional

Return results with this entity type, either PERSON or BUSINESS.

Optional

Return results with this verification status.

Optional

Indicates if the entity is the root entity of the platform.

Optional

Return entities with this name.

Request

curl 'https://api.column.com/entities' \
  -u :<YOUR API KEY>

Response

{
  "entities": [
    {
      "documents": [],
      "id": "enti_2NkTtT5NI3Lh0LpjpvxO4M2AZHd",
      "is_root": false,
      "name": "Oliver Smith Hockey",
      "review_reasons": [],
      "type": "PERSON",
      "verification_status": "VERIFIED"
    },
    {
      "documents": [],
      "id": "enti_2MCE4Cgh2Sl5ttZfnXYwzmfik0c",
      "is_root": false,
      "name": "Jim's Bakery",
      "review_reasons": [],
      "type": "BUSINESS",
      "verification_status": "VERIFIED"
    },
    {
      "documents": [],
      "id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
      "is_root": false,
      "name": "Bruce Smith Hockey",
      "review_reasons": [],
      "type": "PERSON",
      "verification_status": "VERIFIED"
    },
    {
      "documents": [],
      "id": "enti_25FtFWv8n9rHaOoL3ZYttfEAr9k",
      "is_root": false,
      "name": "Yellen Cocktails LLC",
      "review_reasons": [],
      "type": "BUSINESS",
      "verification_status": "VERIFIED"
    },
    {
      "documents": [],
      "id": "enti_23ZaVYnHLsOdd1MIQJ0uQfp9cgO",
      "is_root": true,
      "name": "Sam Smith",
      "review_reasons": [],
      "type": "PERSON",
      "verification_status": "VERIFIED"
    },
    {
      "documents": [],
      "id": "enti_23ZT8vsfjNkjTFEN6c3OBrX9BUt",
      "is_root": false,
      "name": "Andrew Jackson",
      "review_reasons": [],
      "type": "PERSON",
      "verification_status": "VERIFIED"
    }
  ],
  "has_more": false
}

Submit a document

POST

/entities/<entity_id>/documents

Submit a supporting document for manual review of an entity.

path parameters

Required

ID of the entity for which a supporting document is being submitted.

body parameters

Required

ID of the entity for which a supporting document is being submitted.

Accepted formats for person entities: PNG, JPEG, GIF, and TIFF.

Optional

ID of the back of the document that is being submitted, starting with docu_. The document must be uploaded first via Document Upload API. This is only required for some forms of documentation. For most documents, only the front side is required.

Accepted formats for person entities: PNG, JPEG, GIF, and TIFF.

Optional

Description of why the document is being submitted for review. Maximum length: 127 characters.

Request

curl 'https://api.column.com/entities/<entity_id>/documents' \
     -XPOST \
     -u :<YOUR API KEY> \
     -d document_front_id=<docu_id> \
     -d description='test document'

Response

{
  "documents": [
    {
      "created_at": "2022-03-01T17:36:57Z",
      "description": "test document",
      "document_id": "docu_25n6XQRGnGn2ozqjeGVNbclD3il",
      "entity_id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB"
    }
  ],
  "id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
  "is_root": false,
  "person_details": {
    "address": {
      "city": "San Francisco",
      "country_code": "US",
      "line_1": "123 Federal Reserve Way",
      "line_2": "",
      "postal_code": "94123",
      "state": "CA"
    },
    "date_of_birth": "1987-03-15",
    "email": "andrew@column.com",
    "first_name": "Alex",
    "last_name": "Smith",
    "middle_name": "",
    "ssn": "123456789"
  },
  "review_reasons": [],
  "type": "PERSON",
  "verification_status": "VERIFIED",
  "verification_tags": ["vouched_result_passed"]
}

Bank Account object

A bank account is the object in the Column data model that has the ability to hold, send, and receive funds. Bank accounts are children of entities. An entity can have multiple bank accounts. Bank accounts can have one or multiple account numbers. Read about bank accounts in our data model section for more information.

object parameters

Lists all possible balance amounts for an account represented in the smallest unit of the currency.

This balance is the amount of money that is available to spend. If the account is not enabled for overdrafts, any requests to move money above this number will fail.

The balance of money which is currently in a HOLD state specified in the Create Book Transfer API.

Only applicable for root accounts. The locked balance is posted on the account but cannot be withdrawn.

The total amount of transfers that are in a pending state. These transfers will affect the available_balance unless they are canceled prior to completion.

The Swift BIC code for this bank account for international wire payments.

The timestamp at which the bank account was created.

Currency of the balances in the account. For all amounts this will be USD.

The externally facing default account number tied to this bank account.

The default account number ID tied to this account.

A name for the bank account (mininum: 3 characters)

Unique ID for this account.

Whether the account can be overdrafted, must include a overdraft_reserve_account_id

The overdraft reserve account that this account linked to. If is_overdraftable: true then this field is required.

List of entity_id's which are tied to this bank account

The 9-digit ABA routing number for this bank account.

Bank Account type. Can be CHECKING, OVERDRAFT_RESERVE, or PROGRAM_RESERVE

The display name for the bank account. Display name is an account nickname used on Column's Dashboard.

Bank Account object

{
  "balances": {
    "available_amount": 5100,
    "holding_amount": 0,
    "locked_amount": 0,
    "pending_amount": 0
  },
  "bic": "CLNOUS66",
  "created_at": "2021-10-14T17:50:21Z",
  "currency_code": "USD",
  "default_account_number": "123456789012345",
  "default_account_number_id": "acno_2YHAWG9FTCxtL5emK1oVKCOx7fk",
  "description": "John Doe",
  "id": "bacc_2YHAXVyuS2xcJW12Buh9zsxV7vC",
  "is_overdraftable": false,
  "overdraft_reserve_account_id": "",
  "owners": [
    "enti_2YHAYW65t2fEna7uxll10OHzoty"
  ],
  "routing_number": "121145307",
  "type": "CHECKING"
}

Create a new bank account

POST

/bank-accounts

Creates a new bank account under an entity.

body parameters

Required

A name for the bank account (minimum of three characters)

Required

The entity to create the account under

Optional

Whether the account can be overdrafted, must include a overdraft_reserve_account_id

Optional

The overdraft reserve account that this account linked to. If `is_overdraftable: true` then this field is required

Optional

The display name for the bank account. Display name is an account nickname used on Column's Dashboard.

Request

curl 'https://api.column.com/bank-accounts' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d description="Travel Checking" \
  -d entity_id="<entity_id>"

Response

{
  "balances": {
    "available_amount": 0,
    "holding_amount": 0,
    "locked_amount": 0,
    "pending_amount": 0
  },
  "bic": "CLNOUS66",
  "created_at": "2021-10-14T17:50:21Z",
  "currency_code": "USD",
  "default_account_number": "123456789012345",
  "default_account_number_id": "acno_2YHAWG9FTCxtL5emK1oVKCOx7fk",
  "description": "Travel Checking",
  "id": "bacc_2YHAXVyuS2xcJW12Buh9zsxV7vC",
  "is_overdraftable": false,
  "overdraft_reserve_account_id": "",
  "owners": [
    "enti_2YHAYW65t2fEna7uxll10OHzoty"
  ],
  "routing_number": "121145307",
  "type": "CHECKING"
}

List all bank accounts

GET

/bank-accounts

List all bank accounts under the platform. Filtered results can be retrieved with extra parameters in the query.

query parameters

Optional

List all accounts that belong to the entity with the entity_id.

Optional

List all accounts that are overdraftable.

Optional

Bank Account type. Can be CHECKING, OVERDRAFT_RESERVE, or PROGRAM_RESERVE.

Optional

List all bank accounts with the given overdraft_reserve_account_id.

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Request

curl 'https://api.column.com/bank-accounts?entity_id=<entity_id>' \
  -u :<YOUR API KEY>

Response

{
  "bank_accounts": [
    {
      "balances": {
        "available_amount": 0,
        "holding_amount": 0,
        "locked_amount": 0,
        "pending_amount": 0
      },
      "bic": "CLNOUS66",
      "created_at": "2021-10-14T17:50:21Z",
      "currency_code": "USD",
      "default_account_number": "123456789012345",
      "default_account_number_id": "acno_2YHAWG9FTCxtL5emK1oVKCOx7fk",
      "description": "Travel Checking",
      "id": "bacc_2YHAXVyuS2xcJW12Buh9zsxV7vC",
      "is_overdraftable": false,
      "overdraft_reserve_account_id": "",
      "owners": [
        "enti_2YHAYW65t2fEna7uxll10OHzoty"
      ],
      "routing_number": "121145307",
      "type": "CHECKING"
    }
  ],
  "has_more": false
}

Get a bank account by ID

GET

/bank-accounts/<bank_account_id>

Get a bank account by its id

path parameters

Required

The ID of the bank account you are looking up

Request

curl 'https://api.column.com/bank-accounts/<bank_account_id>' \
  -u :<YOUR API KEY>

Response

{
  "balances": {
    "available_amount": 0,
    "holding_amount": 0,
    "locked_amount": 0,
    "pending_amount": 0
  },
  "bic": "CLNOUS66",
  "created_at": "2021-10-14T17:50:21Z",
  "currency_code": "USD",
  "default_account_number": "123456789012345",
  "default_account_number_id": "acno_2YHAWG9FTCxtL5emK1oVKCOx7fk",
  "description": "Travel Checking",
  "id": "bacc_2YHAXVyuS2xcJW12Buh9zsxV7vC",
  "is_overdraftable": false,
  "overdraft_reserve_account_id": "",
  "owners": [
    "enti_2YHAYW65t2fEna7uxll10OHzoty"
  ],
  "routing_number": "121145307",
  "type": "CHECKING"
}

Update a bank account

PATCH

/bank-accounts/<bank_account_id>

Updates a bank account by its id

path parameters

Required

body parameters

Optional

Optional

Whether the account can be overdrafted, must include a overdraft_reserve_account_id

Optional

The overdraft reserve account that this account linked to if is_overdraftable is true

Optional

The display name for the bank account. Display name is an account nickname used on Column's Dashboard.

Request

url 'https://api.column.com/bank-accounts/<bank_account_id>' \
  -XPATCH \
  -u :<YOUR API KEY> \
  -d description="Travel Checking UPDATE"

Response

{
  "balances": {
    "available_amount": 0,
    "holding_amount": 0,
    "locked_amount": 0,
    "pending_amount": 0
  },
  "bic": "CLNOUS66",
  "created_at": "2021-10-14T17:50:21Z",
  "currency_code": "USD",
  "default_account_number": "123456789012345",
  "default_account_number_id": "acno_2YHAWG9FTCxtL5emK1oVKCOx7fk",
  "description": "Travel Checking",
  "id": "bacc_2YHAXVyuS2xcJW12Buh9zsxV7vC",
  "is_overdraftable": false,
  "overdraft_reserve_account_id": "",
  "owners": [
    "enti_2YHAYW65t2fEna7uxll10OHzoty"
  ],
  "routing_number": "121145307",
  "type": "CHECKING"
}

Delete a bank account

DELETE

/bank-accounts/<bank_account_id>

This deletes a bank account

Removing accounts

Bank Accounts can only be deleted when they have a $0 balance.

path parameters

Required

Request

curl 'https://api.column.com/bank-accounts/<bank_account_id>' \
  -XDELETE \
  -u :<YOUR API KEY>

Response

{}

Bank Account Summary object

object parameters

Total credit amount in cents applied to available_balance. Zero or positive.

Total debit amount in cents applied to available_balance. Zero or negative.

Close available_balance in cents at the end of effective_on in time_zone.

The currency of the balances.

Effective date of the summary.

Total credit amount in cents applied to holding_balance. Zero or positive.

Total debit amount in cents applied to holding_balance. Zero or negative.

Close holding_balance in cents at the end of effective_on in time_zone.

Total credit amount in cents applied to locked_balance. Zero or positive.

Total debit amount in cents applied to locked_balance. Zero or negative.

Close locked_balance in cents at the end of effective_on in time_zone.

Total credit amount in cents applied to pending_balance. Zero or positive.

Total debit amount in cents applied to pending_balance. Zero or negative.

Close pending_balance in cents at the end of effective_on in time_zone.

Time zone of effective_on to decide day boundaries. You can set your platform reporting time zone in Platform Settings on Dashboard.

Total number of transactions on the day of effective_on.

Bank Account Summary object

{
  "effective_on": "2022-03-01",
  "time_zone": "America/Los_Angeles",
  "currency": "USD",
  "transaction_count": 1,
  "available_balance_credit": "100",
  "available_balance_debit": "-200",
  "available_balance_close": "300",
  "pending_balance_credit": "400",
  "pending_balance_debit": "-500",
  "pending_balance_close": "600",
  "locked_balance_credit": "700",
  "locked_balance_debit": "-800",
  "locked_balance_close": "900",
  "holding_balance_credit": "1000",
  "holding_balance_debit": "-1100",
  "holding_balance_close": "1200"
}

Get bank account summary history

GET

/bank-accounts/<bank_account_id>/history

Get the summary history of a bank account. This endpoint returns a list of summaries, one summary per day, for a single bank account. You must set your platform reporting time zone in Platform Settings on Dashboard to use this endpoint (read more).

path parameters

Required

The ID of the bank account you are looking up

query parameters

Required

Starting date of the history. Format: YYYY-MM-DD.

Required

Ending date of the history. Format: YYYY-MM-DD. Maximum date range: 31 days.

Request

curl 'https://api.column.com/bank-accounts/<bank_account_id>/history?from_date=2022-03-01&to_date=2022-03-02' \
  -u :<YOUR API KEY>

Response

{
  "id": "bacc_27kpr2m6CsHkFYBocMa7l484DSd",
  "history": [
    {
      "effective_on": "2022-03-01",
      "time_zone": "America/Los_Angeles",
      "currency": "USD",
      "transaction_count": 1,
      "available_balance_credit": "100",
      "available_balance_debit": "-200",
      "available_balance_close": "300",
      "pending_balance_credit": "400",
      "pending_balance_debit": "-500",
      "pending_balance_close": "600",
      "locked_balance_credit": "700",
      "locked_balance_debit": "-800",
      "locked_balance_close": "900",
      "holding_balance_credit": "1000",
      "holding_balance_debit": "-1100",
      "holding_balance_close": "1200"
    },
    {
      "effective_on": "2022-03-02",
      "time_zone": "America/Los_Angeles",
      "currency": "USD",
      "transaction_count": 2,
      "available_balance_credit": "200",
      "available_balance_debit": "-300",
      "available_balance_close": "400",
      "pending_balance_credit": "500",
      "pending_balance_debit": "-600",
      "pending_balance_close": "700",
      "locked_balance_credit": "800",
      "locked_balance_debit": "-900",
      "locked_balance_close": "1000",
      "holding_balance_credit": "1100",
      "holding_balance_debit": "-1200",
      "holding_balance_close": "1300"
    }
  ]
}

Bank Account Overdraft Alert

A bank account overdraft alert is a notification when an account in your platform has been overdrawn and funds have been locked in your reserve accounts, or has been credited and locked funds in your reserve accounts have been released. Read more.

object parameters

The current available balance of the bank account after this alert.

Amount in cents

Amount currency. The three-letter currency code defined in ISO 4217 (e.g. USD)

ID of the bank account that is overdrawn or credited.

The amount that has been locked or released in the reserve account.

Amount in cents

Amount currency. The three-letter currency code defined in ISO 4217 (e.g. USD)

ID of the reserve account in which funds are locked or released.

ID of transfer that triggered this alert.

Bank Account object

{
  "available_balance": {
    "cents": -240000,
    "currency_code": "USD"
  },
  "bank_account_id": "bacc_2XJUlsjtGxHwFSyIxpWPmJ6a53q",
  "overdraft_amount": {
    "cents": 30000,
    "currency_code": "USD"
  },
  "reserve_account_id": "bacc_2XJUltwuf4e3L5g8D6cljBP79os",
  "transfer_id": "wire_2XJUlyL4xJ0BDynRsS0A2MHEtll"
}

Account number object

An account number is the child of a bank account. A bank account can have one or more account numbers. Think of account numbers as a pointer to a bank account. Account numbers will be used by external banks to transact with Column bank accounts. Read about account numbers in our data model section for more information.

object parameters

The externally facing account number tied to this bank account.

The Column bacc_id tied to this bank account.

The Swift BIC code for this bank account for international wire payments.

The timestamp the account number was created.

A name for the account number (minimum of three characters)

The unique id of the object

The 9-digit ABA routing number for this bank account.

Account Number object

{
  "account_number": "256783259046169",
  "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
  "bic": "CLNOUS66",
  "created_at": "2022-03-01T20:09:42.949787176Z",
  "description": "Travel Checking Account Number",
  "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
  "routing_number": "121145307"
}

Create a new account number

POST

/bank-accounts/<bank_account_id>/account-numbers

Creates a new account number that points to the associated bank account

path parameters

Required

The bank account that you want the new account number to point to

body parameters

Optional

A description for this account number

Request

curl 'https://api.column.com/bank-accounts/<bank_account_id>/account-numbers' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d description="Travel Checking Account Number"

Response

{
  "account_number": "256783259046169",
  "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
  "bic": "CLNOUS66",
  "created_at": "2022-03-01T20:09:42.949787176Z",
  "description": "Travel Checking Account Number",
  "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
  "routing_number": "121145307"
}

List all account numbers from a bank account

GET

/bank-accounts/<bank_account_id>/account-numbers

Lists all the account numbers that point to a specific bank account

path parameters

Required

The bank account that you want the new account number to point to

query parameters

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Request

curl 'https://api.column.com/bank-accounts/<bank_account_id>/account-numbers' \
  -u :<YOUR API KEY>

Response

{
  "account_numbers": [
    {
      "account_number": "256783259046169",
      "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
      "bic": "CLNOUS66",
      "created_at": "2022-03-01T20:09:42.949787176Z",
      "description": "Travel Checking Account Number",
      "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
      "routing_number": "121145307"
    }
  ],
  "has_more": true
}

Get an account number

GET

/account-numbers/<account_number_id>

Lists all the account numbers that point to a specific bank account

path parameters

Required

The id for the account number

Request

curl 'https://api.column.com/account-numbers/<account_number_id>' \
  -u :<YOUR API KEY>

Response

{
  "account_number": "256783259046169",
  "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
  "bic": "CLNOUS66",
  "created_at": "2022-03-01T20:09:42.949787176Z",
  "description": "Travel Checking Account Number",
  "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
  "routing_number": "121145307"
}

Loan object

A loan is an object that lives under an entity, at the same level as a bank account. Just like entities can have multiple bank accounts, entities can have multiple loans. Loans are the foundation for many lending-oriented use cases such as charge cards and term loans. Read about loans in our data model section for more information.

object parameters

The balance of the loan which has been charged off.

The balance of the loan which is in a holding state.

The balance of the loan which is outstanding.

The balance of the loan which has been paid.

The timestamp the loan was charged off.

The timestamp the loan was created.

The currency of the loan. Currently only USD is supported.

The timestamp the loan was marked as delinquent.

The description of the loan in the Column dashboard.

The timestamp the loan was marked as disputed.

The id of the loan object.

Indicates whether or not the loan is revolving. If true the loan can have multiple disbursements.

The maturity date of the loan.

The max principal balance of the loan. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal.

The timestamp the loan is marked as paid off.

The Column entity_id which the loan is related to.

The current status of the loan. A loan can have a status of current, delinquent, charged_off, in_dispute, canceled or paid_off.

Loan object

{
  "balances": {
    "principal_charged_off": "0",
    "principal_holding": "0",
    "principal_outstanding": "0",
    "principal_paid": "0"
  },
  "charged_off_at": null,
  "created_at": "2022-03-15T23:18:24Z",
  "currency": "USD",
  "delinquent_at": null,
  "description": "new_account",
  "disputed_at": null,
  "id": "loan_26RVIHzwLaCxVXmMLcUJyhFHT3b",
  "is_revolving": true,
  "maturity_date": "2021-01-01",
  "max_principal_balance": "1000000",
  "paid_off_at": null,
  "primary_signer_entity_id": "enti_26RC4ARuBwDmxDlRX1ZX252YPfe",
  "status": "current"
}

Create a new loan

POST

/loans

Creates a new loan under an entity.

body parameters

Required

The three-letter currency code defined in ISO 4217. e.g. USD

Required

The description of the loan in the Column dashboard.

Required

The entity to create the loan under.

Required

Indicates whether or not the loan is revolving. If true the loan can have multiple disbursements.

Required

The maturity date of the loan

Required

The max principal balance of the loan in cents. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal.

e.g. $1.75 would be represented by 175.

Request

curl 'https://api.column.com/loans' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d description="sample loan" \
  -d currency="USD" \
  -d entity_id="enti_25n5phSY8StZxU4C2Y7gAREGUdB" \
  -d is_revolving="true" \
  -d maturity_date="2022-10-10" \
  -d max_principal_balance="100000"

Response

{
  "balances": {
    "principal_charged_off": "0",
    "principal_holding": "0",
    "principal_outstanding": "0",
    "principal_paid": "0"
  },
  "charged_off_at": null,
  "created_at": "2022-03-16T22:25:51Z",
  "currency": "USD",
  "delinquent_at": null,
  "description": "sample loan",
  "disputed_at": null,
  "id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "is_revolving": true,
  "maturity_date": "2022-10-10",
  "max_principal_balance": "100000",
  "paid_off_at": null,
  "primary_signer_entity_id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
  "status": "current"
}

Update a loan

PATCH

/loans/<loan_id>

Updates a loan by its ID.

path parameters

Required

The ID of the loan you are looking up

body parameters

Optional

The description of the loan in the Column dashboard.

Optional

Indicates whether or not the loan is revolving. If true the loan can have multiple disbursements.

Optional

The maturity date of the loan.

Optional

The max principal balance of the loan in cents. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal.

e.g. $1.75 would be represented by 175.

Optional

The current status of the loan. A loan can have a status of current, delinquent, charged_off, in_dispute, canceled or paid_off.

Request

curl 'https://api.column.com/loans/<loan_id>' \
  -XPATCH \
  -u :<YOUR API KEY> \
  -d max_principal_balance="50000000"

Response

{
  "balances": {
    "principal_charged_off": "0",
    "principal_holding": "0",
    "principal_outstanding": "1500",
    "principal_paid": "2000"
  },
  "charged_off_at": null,
  "created_at": "2022-03-16T22:25:51Z",
  "currency": "USD",
  "delinquent_at": null,
  "description": "sample loan",
  "disputed_at": null,
  "id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "is_revolving": true,
  "maturity_date": "2022-10-10",
  "max_principal_balance": "50000000",
  "paid_off_at": null,
  "primary_signer_entity_id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
  "status": "current"
}

Get a loan by ID

GET

/loans/<loan_id>

Retrieve a single loan by its ID.

path parameters

Required

The ID of the loan you are looking up

Request

curl 'https://api.column.com/loans/<loan_id>' \
  -u :<YOUR API KEY>

Response

{
  "balances": {
    "principal_charged_off": "0",
    "principal_holding": "0",
    "principal_outstanding": "1000",
    "principal_paid": "0"
  },
  "charged_off_at": null,
  "created_at": "2022-03-16T22:25:51Z",
  "currency": "USD",
  "delinquent_at": null,
  "description": "sample loan",
  "disputed_at": null,
  "id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "is_revolving": true,
  "maturity_date": "2022-10-10",
  "max_principal_balance": "100000",
  "paid_off_at": null,
  "primary_signer_entity_id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
  "status": "current"
}

List all loans

GET

/loans

List all loans under the platform. Filtered results can be retrieved with extra parameters in the query

query parameters

Optional

Optional

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Request

curl 'https://api.column.com/loans?entity_id=enti_25n5phSY8StZxU4C2Y7gAREGUdB' \
  -u :<YOUR API KEY>

Response

{
  "has_more": false,
  "loans": [
    {
      "balances": {
        "principal_charged_off": "0",
        "principal_holding": "10000000",
        "principal_outstanding": "9991500",
        "principal_paid": "-52000"
      },
      "canceled_at": null,
      "charged_off_at": null,
      "created_at": "2022-03-16T22:25:51Z",
      "currency": "USD",
      "delinquent_at": null,
      "description": "sample loan",
      "disputed_at": null,
      "id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
      "is_revolving": true,
      "maturity_date": "2022-10-10",
      "max_principal_balance": "50000000",
      "paid_off_at": null,
      "primary_signer_entity_id": "enti_25n5phSY8StZxU4C2Y7gAREGUdB",
      "status": "current"
    }
  ]
}

Create a disbursement

POST

/loans/disbursements

Creates a disbursement for a loan.

body parameters

Required

Amount (in cents) of the funds that will be disbursed.

e.g. $1.75 would be represented by 175.

Required

The bank account to which funds will be disbursed.

Required

The currency of the loan. Currently only USD is supported.

Required

The description of the loan disbursement.

Optional

If true, creates a disbursement in a hold state. The disbursement will not be completed until the clear API is called. Disbursements in a hold state may be updated or canceled.

Required

The ID of the loan to from which the disbursement is being made.

Optional

Transfer monitoring details

Optional

Name of the sender

Optional

Name of the merchant for this transaction

Optional

Category code for the merchant for this transaction

Optional

Authorization method for this transaction

Optional

Website for this transaction

Optional

Transfer type in non-column systems

Optional

Line item on the customer statement for the transfer

Required

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Request

curl 'https://api.column.com/loans/disbursements' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d amount="1000" \
  -d currency="USD" \
  -d description="first disbursement" \
  -d loan_id=loan_26UE1mcnJsRMTIJfwKFXqqF0xXo \
  -d bank_account_id=bacc_25FyEyuKX3KlRAciUs3BzXag1RI

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "amount": "1000",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T16:00:24.686Z",
  "currency": "USD",
  "description": "first disbursement",
  "effective_at": "2022-03-17T16:00:24.684711613Z",
  "id": "ldsb_26WIHBrOhkhJNEBA48DKsxny8J9",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "status": "completed"
}

Update a disbursement

PATCH

/loans/disbursements/<disbursement_id>

Update a disbursement by its ID. Disbursement must be in a "hold" state. Only the amount can be updated.

path parameters

Required

The ID of the disbursement you want to update.

body parameters

Required

Amount (in cents) of the funds that will be disbursed.

e.g. $1.75 would be represented by 175.

Required

The currency of the loan. Currently only USD is supported.

Request

curl 'https://api.column.com/loans/disbursements/<ldsb_id>' \
  -XPATCH \
  -u :<YOUR API KEY> \
  -d amount="1500" \
  -d currency="USD"

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "amount": "1500",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T16:39:20Z",
  "currency": "USD",
  "description": "first disbursement",
  "effective_at": "2022-03-17T16:39:20Z",
  "id": "ldsb_26WN0fvWcr9cR1tTzbTB3qbov8e",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "status": "hold"
}

Clear a disbursement

POST

/loans/disbursements/<disbursement_id>/clear

Clears a disbursement by its ID. Disbursements can only be cleared if they are in a "hold" state.

path parameters

Required

The ID of the disbursement to clear.

body parameters

Optional

Updated amount (in cents) of the funds that will be disbursed.

e.g. $1.75 would be represented by 175.

Optional

The currency of the loan. Currently only USD is supported.

Request

curl 'https://api.column.com/loans/disbursements/<ldsb_id>/clear' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d amount="1500" \
  -d currency="USD"

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "amount": "1500",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T16:39:20Z",
  "currency": "USD",
  "description": "first disbursement",
  "effective_at": "2022-03-17T16:39:20Z",
  "id": "ldsb_26WN0fvWcr9cR1tTzbTB3qbov8e",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "status": "completed"
}

Cancel a disbursement

POST

/loans/disbursements/<disbursement_id>/cancel

Cancels a disbursement by its ID. Only a disbursement in a "hold" state can be cancelled.

path parameters

Required

The ID of the disbursement to clear.

Request

url 'https://api.column.com/loans/disbursements/<ldsb_id>/cancel' \
  -XPOST \
  -u :<YOUR API KEY>

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "amount": "1000",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T18:21:47Z",
  "currency": "USD",
  "description": "first disbursement",
  "effective_at": "2022-03-17T18:21:47Z",
  "id": "ldsb_26WZT7MtY2vxbrNHO9RHekeCIOo",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "status": "canceled"
}

Get a disbursement

GET

/loans/disbursements/<disbursement_id>

Get a disbursement by its ID.

path parameters

Required

The ID of the disbursement you are looking up.

Request

curl 'https://api.column.com/loans/disbursements/<ldsb_id>' \
  -u :<YOUR API KEY>

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "amount": "1000",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T18:21:47Z",
  "currency": "USD",
  "description": "first disbursement",
  "effective_at": "2022-03-17T18:21:47Z",
  "id": "ldsb_26WZT7MtY2vxbrNHO9RHekeCIOo",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "status": "canceled"
}

List all disbursements

GET

/loans/disbursements

List all disbursements under the platform. Filtered results can be retrieved with extra parameters in the query.

query parameters

Optional

Optional

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Request

curl 'https://api.column.com/loans/disbursements?loan_id=loan_26UE1mcnJsRMTIJfwKFXqqF0xXo' \
  -u :<YOUR API KEY>

Response

{
  "disbursements": [
    {
      "account_number_id": "acno_2781oeSJZNEtpG1cc9xWheur5SF",
      "amount": "20000",
      "bank_account_id": "bacc_2781ocmuIk4fcq818QRDoJ7hXlS",
      "created_at": "2022-03-31T03:50:17Z",
      "currency": "USD",
      "description": "first disbursement",
      "effective_at": "2022-03-31T03:50:17Z",
      "id": "ldsb_278PD0e01VxKMfFajrGBmEmCdoJ",
      "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
      "status": "completed"
    },
    {
      "account_number_id": "acno_274RkerEeeYrNHCoRmkxcdCWz0c",
      "amount": "20000",
      "bank_account_id": "bacc_274RkcTicf4P3pZRWnCFM4tGzhT",
      "created_at": "2022-03-29T21:18:27Z",
      "currency": "USD",
      "description": "first disbursement",
      "effective_at": "2022-03-29T21:18:27Z",
      "id": "ldsb_274oQyeBOsOoFe3k2HBv0vIGOgB",
      "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
      "status": "completed"
    }
  ],
  "has_more": false
}

Create a payment

POST

/loans/payments

Creates a payment for a loan.

body parameters

Required

Amount (in cents) of the loan payment.

e.g. $1.75 would be represented by 175.

Required

The bank account from which the payment is originated. The balance of the bank account will decrease by the payment amount.

Required

The currency of the loan. Currently only USD is supported.

Required

The description of the loan payment.

Required

The ID of the loan to which the payment is being made. The principal_outstanding of the loan will decrease by the payment amount.

Request

curl 'https://api.column.com/loans/payments' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d principal_amount="1000" \
  -d currency="USD" \
  -d description="first payment" \
  -d loan_id=loan_26UE1mcnJsRMTIJfwKFXqqF0xXo \
  -d bank_account_id=bacc_25FyEyuKX3KlRAciUs3BzXag1RI

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at":"2023-07-07T21:46:43.093Z"
  "currency": "",
  "description": "first payment",
  "id": "lpmt_26WKSHYQoJvPEaGn149tlduSaja",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "principal_amount": "1000",
  "status": "completed"
}

Get a payment

GET

/loans/payments/<payment_id>

Get a payment by its ID.

path parameters

Required

The ID of the payment you are looking up.

Request

curl 'https://api.column.com/loans/payments/<lpmt_id>' \
-u :<YOUR API KEY>

Response

{
  "account_number_id": "acno_25FyF49P2SE4PJJOmfx6kYCzkeI",
  "bank_account_id": "bacc_25FyEyuKX3KlRAciUs3BzXag1RI",
  "created_at": "2022-03-17T18:21:47Z",
  "currency": "",
  "description": "first payment",
  "id": "lpmt_26WaF5JrqUEXT1yhabNOfoCf6fp",
  "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
  "principal_amount": "1000",
  "status": "completed"
}

List all payments

GET

/loans/payments

List all payments under the platform. Filtered results can be retrieved with extra parameters in the query.

query parameters

Optional

Optional

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Request

curl 'https://api.column.com/loans/payments?loan_id=loan_26UE1mcnJsRMTIJfwKFXqqF0xXo' \
  -u :<YOUR API KEY>

Response

{
  "has_more": false,
  "payments": [
    {
      "account_number_id": "acno_2781oeSJZNEtpG1cc9xWheur5SF",
      "bank_account_id": "bacc_2781ocmuIk4fcq818QRDoJ7hXlS",
      "created_at":"2023-07-07T21:46:43.093Z",
      "currency": "USD",
      "description": "first payment",
      "id": "lpmt_2782JJaLBzAmF7qpSUTjBwxHy6B",
      "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
      "principal_amount": "10000",
      "status": "completed"
    },
    {
      "account_number_id": "acno_274RkerEeeYrNHCoRmkxcdCWz0c",
      "bank_account_id": "bacc_274RkcTicf4P3pZRWnCFM4tGzhT",
      "created_at":"2023-05-01T02:24:23.047Z",
      "currency": "USD",
      "description": "first payment",
      "id": "lpmt_274o2O54AEQU5vXwgjVyMEP7tiQ",
      "loan_id": "loan_26UE1mcnJsRMTIJfwKFXqqF0xXo",
      "principal_amount": "20000",
      "status": "completed"
    }
  ],
  "has_more": false
}

Counterparty object

A counterparty is an external account that you can transfer money to and from. All ACH and Wire transfers originated by Column take in a counterparty_id to identify the transfer destination. Once you have created a counterparty, you can send money to it (or pull from it)! A counterparty stores an external bank account and can also store additional transaction details, as desired or required. Read about counterparties in our data model section for more information.

object parameters

The account number for the bank account.

The type of the account number. Can be checking or savings.

Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the ACH Valid Character Specification.

Address line 1

Address line 2

City

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Postal code

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

The timestamp the object was created.

Description of the counterparty visible only in your platform. Maximum length: 127 characters.

The email address of the beneficiary.

The unique id of the object

Indicates whether this counterparty account is actually a Column account.

The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: 127 characters.

The legal entity type of the beneficiary. Can be business, non_profit, individual, or sole_proprietor. This field is recommended for international wire transfers, and required in some countries.

The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.

The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.

The counterparty name who owns the bank account. For domestic wires, only the first 35 characters are included in the wire message. For international wires, only the first 140 characters are included in the wire message. Additional characters will be truncated.

The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: 31 characters.

Format for international wire transfers: \+[0-9]{1,3}-[0-9()+\-]{1,30} (e.g. +44-(0)1223-333300).

Format for domestic wire transfers:

  • +1-(650)123-4567 (US international phone number format)
  • 650-123-4567
  • (650)123-4567
  • (650) 123-4567
  • 650 123 4567
  • 6501234567

The routing number of the bank.

The type of the routing number. Can be aba, bic, or other.

The timestamp the object was last updated.

Whitelists counterparties for automatic approval of drawdown requests to Column via FedWire. If false, all inbound drawdown requests from this counterparty will require explicit approval.

Counterparty object

{
  "account_number": "GB29NWBK60161331926819",
  "account_type": "checking",
  "address": {
    "city": "New Winton",
    "country_code": "GB",
    "line_1": "96 Lairg Road",
    "line_2": "",
    "postal_code": "EH33 5ZN",
    "state": ""
  },
  "created_at": "2023-07-07T22:31:30.859307801Z",
  "description": "international_cpty",
  "email": "john.doe@gmail.com",
  "id": "cpty_2SGNjEY3ax4DaX4LgU72navTADL",
  "is_column_account": false,
  "legal_id": "GB1245643234",
  "legal_type": "sole_proprietor",
  "local_account_number": "876545678",
  "local_bank_code": "GB123456",
  "local_bank_country_code": "",
  "local_bank_name": "",
  "name": "John Doe",
  "phone": "650-123-4567",
  "routing_number": "NWBKGB2L",
  "routing_number_type": "bic",
  "updated_at": "2023-07-07T22:31:30.859307801Z",
  "wire": {
    "beneficiary_address": {
      "city": "New Winton",
      "country_code": "GB",
      "line_1": "96 Lairg Road",
      "line_2": "",
      "postal_code": "EH33 5ZN",
      "state": ""
    },
    "beneficiary_email": "john.doe@gmail.com",
    "beneficiary_legal_id": "GB1245643234",
    "beneficiary_name": "John Doe",
    "beneficiary_phone": "650-123-4567",
    "beneficiary_type": "sole_proprietor",
    "local_account_number": "876545678",
    "local_bank_code": "GB123456"
  },
  "wire_drawdown_allowed": false
}

Create a counterparty

POST

/counterparties

A counterparty is the legal entity on the other side of the transaction. Depending on the type of transaction, we may need to know more or less about them.

A domestic ACH only requires a counterparty's account and routing number. If you include a counterparty name, Column will by default populate receiver_name on the ACH transfer request. Domestic and international wires require full name and address. Certain countries may require additional fields. Learn more about country-specific details here.

body parameters

Required

The routing number of the bank.

Optional

The type of the routing number. Can be aba or bic. Default value is aba if this field is not set.

Required

The account number of the bank account.

Optional

The type of the account number. Can be checking or savings.

Optional

Description of the counterparty visible only in your platform. Maximum length: 127 characters.

Optional

Whitelists counterparties for automatic approval of drawdown requests to Column via FedWire. If false, all inbound drawdown requests from this counterparty will require explicit approval.

Optional

The account holder on the counterparty bank account. This field is not required to send ACH transfers, but is required to send domestic and international wires. For international wires, Must adhere to International Wire character validation . Column will truncate name to a maximum length of 140 characters per SWIFT guidelines. For domestic wires, Must adhere to FedWire character validation . Column will truncate name to 35 characters per Fedwire guidelines.

Optional

The address object is not required to send ACH transfers, but is required to send domestic and international wires.

Required

Address line 1

Optional

Address line 2

Required

City

Optional

State name. For US addresses, this field is mandatory and only postal abbreviations (e.g. AL, CA, DE, ...) are allowed.

Optional

Postal code

Required

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Optional

The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: 31 characters.

Format for international wire transfers: \+[0-9]{1,3}-[0-9()+\-]{1,30} (e.g. +44-(0)1223-333300).

Format for domestic wire transfers:

  • +1-(650)123-4567 (US international phone number format)
  • 650-123-4567
  • (650)123-4567
  • (650) 123-4567
  • 650 123 4567
  • 6501234567

Optional

The email address of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: 127 characters.

Optional

The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: 127 characters. For international wires, Must adhere to International Wire character validation .

Optional

The legal entity type of the beneficiary. Can be business, non_profit, individual, or sole_proprietor. This field is recommended for international wire transfers, and required in some countries. For international wires, Must adhere to International Wire character validation .

Optional

The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters. For international wires, Must adhere to International Wire character validation .

Optional

The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters. For international wires, Must adhere to International Wire character validation .

Request

curl 'https://api.column.com/counterparties' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d routing_number="AACDGB21" \
  -d account_number="GB29NWBK60161331926819" \
  -d routing_number_type="bic" \
  -d account_type="checking" \
  -d description="international_cpty" \
  -d name="John Doe" \
  -d phone="650-123-4567" \
  -d email="john.doe@gmail.com" \
  -d legal_id="GB1245643234" \
  -d legal_type="sole_proprietor" \
  -d local_bank_code="GB123456" \
  -d local_account_number="876545678" \
  -d "address[line_1]"="96 Lairg Road" \
  -d "address[city]"="New Winton" \
  -d "address[postal_code]"="EH33 5ZN" \
  -d "address[country_code]"="GB"

Response

{
  "account_number": "GB29NWBK60161331926819",
  "account_type": "checking",
  "address": {
    "city": "New Winton",
    "country_code": "GB",
    "line_1": "96 Lairg Road",
    "line_2": "",
    "postal_code": "EH33 5ZN",
    "state": ""
  },
  "created_at": "2023-07-07T22:31:30.859307801Z",
  "description": "international_cpty",
  "email": "john.doe@gmail.com",
  "id": "cpty_2SGNjEY3ax4DaX4LgU72navTADL",
  "is_column_account": false,
  "legal_id": "GB1245643234",
  "legal_type": "sole_proprietor",
  "local_account_number": "876545678",
  "local_bank_code": "GB123456",
  "local_bank_country_code": "",
  "local_bank_name": "",
  "name": "John Doe",
  "phone": "650-123-4567",
  "routing_number": "NWBKGB2L",
  "routing_number_type": "bic",
  "updated_at": "2023-07-07T22:31:30.859307801Z",
  "wire": {
    "beneficiary_address": {
      "city": "New Winton",
      "country_code": "GB",
      "line_1": "96 Lairg Road",
      "line_2": "",
      "postal_code": "EH33 5ZN",
      "state": ""
    },
    "beneficiary_email": "john.doe@gmail.com",
    "beneficiary_legal_id": "GB1245643234",
    "beneficiary_name": "John Doe",
    "beneficiary_phone": "650-123-4567",
    "beneficiary_type": "sole_proprietor",
    "local_account_number": "876545678",
    "local_bank_code": "GB123456"
  },
  "wire_drawdown_allowed": false
}

List all counterparties

GET

/counterparties

Retrieve all counterparties under your developer account. Filtered results can be retrieved with extra parameters in the query (account_number, routing_number, etc.).

query parameters

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

Return results where the specified time field is greater than this value.

Optional

Return results where the specified time field is greater than or equal to this value.

Optional

Return results where the specified time field is less than this value.

Optional

Return results where the specified time field is less than or equal to this value.

Optional

Return counterparties created with given account number.

Optional

Return counterparties created with given routing number.

Request

curl 'https://api.column.com/counterparties' \
  -u :<YOUR API KEY>

Response

{
  "counterparties": [
    {
      "account_number": "GB29NWBK60161331926819",
      "account_type": "checking",
      "address": {
        "city": "New Winton",
        "country_code": "GB",
        "line_1": "96 Lairg Road",
        "line_2": "",
        "postal_code": "EH33 5ZN",
        "state": ""
      },
      "created_at": "2023-07-07T22:31:30.859307801Z",
      "description": "international_cpty",
      "email": "john.doe@gmail.com",
      "id": "cpty_2SGNjEY3ax4DaX4LgU72navTADL",
      "is_column_account": false,
      "legal_id": "GB1245643234",
      "legal_type": "sole_proprietor",
      "local_account_number": "876545678",
      "local_bank_code": "GB123456",
      "local_bank_country_code": "",
      "local_bank_name": "",
      "name": "John Doe",
      "phone": "650-123-4567",
      "routing_number": "NWBKGB2L",
      "routing_number_type": "bic",
      "updated_at": "2023-07-07T22:31:30.859307801Z",
      "wire": {
        "beneficiary_address": {
          "city": "New Winton",
          "country_code": "GB",
          "line_1": "96 Lairg Road",
          "line_2": "",
          "postal_code": "EH33 5ZN",
          "state": ""
        },
        "beneficiary_email": "john.doe@gmail.com",
        "beneficiary_legal_id": "GB1245643234",
        "beneficiary_name": "John Doe",
        "beneficiary_phone": "650-123-4567",
        "beneficiary_type": "sole_proprietor",
        "local_account_number": "876545678",
        "local_bank_code": "GB123456"
      },
      "wire_drawdown_allowed": false
    }
  ],
  "has_more": true
}

Get a counterparty by ID

GET

/counterparties/<counterparty_id>

Retrieve a single counterparty by its ID.

path parameters

Required

ID of the counterparty you're looking up.

Request

curl 'https://api.column.com/counterparties/<counterparty_id>' \
  -u :<YOUR API KEY>

Response

{
  "account_number": "GB29NWBK60161331926819",
  "account_type": "checking",
  "address": {
    "city": "New Winton",
    "country_code": "GB",
    "line_1": "96 Lairg Road",
    "line_2": "",
    "postal_code": "EH33 5ZN",
    "state": ""
  },
  "created_at": "2023-07-07T22:31:30.859307801Z",
  "description": "international_cpty",
  "email": "john.doe@gmail.com",
  "id": "cpty_2SGNjEY3ax4DaX4LgU72navTADL",
  "is_column_account": false,
  "legal_id": "GB1245643234",
  "legal_type": "sole_proprietor",
  "local_account_number": "876545678",
  "local_bank_code": "GB123456",
  "local_bank_country_code": "",
  "local_bank_name": "",
  "name": "John Doe",
  "phone": "650-123-4567",
  "routing_number": "NWBKGB2L",
  "routing_number_type": "bic",
  "updated_at": "2023-07-07T22:31:30.859307801Z",
  "wire": {
    "beneficiary_address": {
      "city": "New Winton",
      "country_code": "GB",
      "line_1": "96 Lairg Road",
      "line_2": "",
      "postal_code": "EH33 5ZN",
      "state": ""
    },
    "beneficiary_email": "john.doe@gmail.com",
    "beneficiary_legal_id": "GB1245643234",
    "beneficiary_name": "John Doe",
    "beneficiary_phone": "650-123-4567",
    "beneficiary_type": "sole_proprietor",
    "local_account_number": "876545678",
    "local_bank_code": "GB123456"
  },
  "wire_drawdown_allowed": false
}

Delete a counterparty

DELETE

/counterparties/<counterparty_id>

Delete a counterparty

path parameters

Required

ID of the counterparty you're deleting.

Request

curl 'https://api.column.com/counterparties/<counterparty_id>' \
  -XDELETE \
  -u :<YOUR API KEY>

Response

{}

Financial Institution object

object parameters

Indicates if an institution accepts ACH transfers or not.

Indicates if an institution supports check deposits or not.

Institution's address city name.

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

The timestamp the object was created.

Institution's official full name.

Institution's phone number. Only available if ach_eligible = true.

Institution's routing number. Can be 9-digit ABA routing numbers, or 8/11-character BICs.

The type of the routing number. Can be aba or bic, or other.

Institution's short name.

Institution's address state code (e.g., CA)

Institution's street address. Only available if ach_eligible = true.

The timestamp the object was last updated.

Indicates if an institution accepts wire transfers or not.

Indicates if an institution can only accept bank-to-bank settlement transfers, but cannot accept customer transfers.

Institution's address zip code. Only available if ach_eligible = true.

Financial Institution object

{
  "ach_eligible": true,
  "check_eligible": true,
  "city": "CHICO",
  "country_code": "US",
  "created_at": "2021-10-13T16:39:01Z",
  "full_name": "COLUMN N.A.",
  "phone_number": "5308795900",
  "routing_number": "121145307",
  "routing_number_type": "aba",
  "short_name": "COLUMN NA",
  "state": "CA",
  "street_address": "1717 MANGROVE AVE # 100",
  "updated_at": "2021-10-20T15:53:03Z",
  "wire_eligible": true,
  "wire_settlement_only": false,
  "zip_code": "95926"
}

Get a financial institution

GET

/institutions/<routing_number>

Retrieve a single financial institution by its ABA number or BIC.

path parameters

Required

ABA number or BIC of the financial institution you're requesting

Request

curl 'https://api.column.com/institutions/322271627' \
  -u :<YOUR API KEY>

Response

{
  "ach_eligible": true,
  "check_eligible": true,
  "city": "TAMPA",
  "country_code": "US",
  "created_at": "2021-10-13T16:39:55Z",
  "full_name": "JPMORGAN CHASE BANK, NA",
  "phone_number": "8134323700",
  "routing_number": "322271627",
  "routing_number_type": "aba",
  "short_name": "WASH MUT BANK",
  "state": "FL",
  "street_address": "10430 HIGHLAND MANOR DRIVE",
  "updated_at": "2021-10-28T13:00:35Z",
  "wire_eligible": true,
  "wire_settlement_only": false,
  "zip_code": "33610"
}

List financial institutions

GET

/institutions

List all financial institutions. Filtered results can be retrieved with extra parameters in your queires.

query parameters

Optional

A limit of the number of objects to be returned, between 1 and 100. The default is 10.

Optional

A cursor for use in pagination. starting_after is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with foo_ZXhhbXBsZQo, your subsequent call can include starting_after=foo_ZXhhbXBsZQo in order to fetch the next page of the list.

Optional

A cursor for use in pagination. ending_before is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with foo_ZXhhbXBsZQo=, your subsequent call can include ending_before=foo_ZXhhbXBsZQo= in order to fetch the previous page of the list.

Optional

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...).

Optional

Case-insensitive keywords in full names of financial institutions.

Optional

The type of the routing number. Can be aba or bic.

Request

curl 'https://api.column.com/institutions?routing_number_type=bic&name=victoria&country_code=GB' \
  -u :<YOUR API KEY>

Response

{
  "has_more": false,
  "institutions": [
    {
      "ach_eligible": false,
      "check_eligible": false,
      "city": "BOURNEMOUTH BH12NF",
      "country_code": "GB",
      "created_at": "2023-01-04T22:02:06Z",
      "full_name": "LIVERPOOL VICTORIA FINANCIAL SERVICES LIMITED",
      "phone_number": "",
      "routing_number": "LVFSGB21",
      "routing_number_type": "bic",
      "short_name": "",
      "state": "",
      "street_address": "FRIZZELL HOUSE, COUNTY GATES",
      "updated_at": "2023-01-04T22:02:06Z",
      "wire_eligible": true,
      "wire_settlement_only": false,
      "zip_code": ""
    },
    {
      "ach_eligible": false,
      "check_eligible": false,
      "city": "LONDON EC2V 6EE",
      "country_code": "GB",
      "created_at": "2023-01-04T22:02:06Z",
      "full_name": "LIVERPOOL VICTORIA ASSET MANAGEMENT LIMITED",
      "phone_number": "",
      "routing_number": "LVAMGB21",
      "routing_number_type": "bic",
      "short_name": "",
      "state": "",
      "street_address": "80 CHEAPSIDE, FLOOR 3",
      "updated_at": "2023-01-04T22:02:06Z",
      "wire_eligible": true,
      "wire_settlement_only": false,
      "zip_code": ""
    }
  ]
}

IBAN validation object

object parameters

Account number in the financial institution.

Local bank code of the financial institution in its country.

BIC of the financial institution.

Branch ID of the financial institution.

Check digits of the IBAN.

ISO 3166-1 Alpha-2 Country Code (e.g., US, FR, UK, DE, ...) of the financial institution.

The IBAN you are validating

Name of the financial institution.

National ID of the financial institution in its country, which usually consists of its bank_id and branch_id.

IBAN validation object

{
  "account_number": "31926819",
  "bank_id": "NWBK",
  "bic": "NWBKGB2L",
  "branch_id": "601613",
  "check_digits": "29",
  "country_code": "GB",
  "iban": "GB29NWBK60161331926819",
  "institution_name": "NATIONAL WESTMINSTER BANK PLC",
  "national_id": "NWBK601613"
}

Validate an IBAN

GET

/iban/<iban>

Validate the format of an IBAN and if it is registered with the given financial institution. However, we cannot verify if the account is still open.

path parameters

Required

IBAN you're requesting

Request

curl 'https://api.column.com/iban/GB29NWBK60161331926819' \
  -u :<YOUR API KEY>

Response

{
  "account_number": "31926819",
  "bank_id": "NWBK",
  "bic": "NWBKGB2L",
  "branch_id": "601613",
  "check_digits": "29",
  "country_code": "GB",
  "iban": "GB29NWBK60161331926819",
  "institution_name": "NATIONAL WESTMINSTER BANK PLC",
  "national_id": "NWBK601613"
}

ACH transfer object

The ACH transfer object represents the current state of a single ACH transfers originated by or received by Column. The ACH object will contain all relevant information about the specific transfer, which are described in the parameters below. Read about more about ACH transfers here.

object parameters

ID of the account number that is sending the transfer.

The timestamp at which an acknowledgement is received for a CCD or CTX ACH transfer.

Allow the account to go negative for the transfer. The bank account needs to have is_overdraftable enabled with an overdraft reserve account linked to it.

Amount (in cents) of the funds that will be transferred between originator and counterparty accounts.

e.g. $1.75 would be represented by 175.

ID of the bank account that is sending the transfer.

The timestamp at which the transfer is cancelled.

This optional field allows you to include codes (one or more), of significance only to you, to enable specialized handling of the transfer. There is no standardized interpretation for the value of the field. Maximum length:20 characters.

CIE: This field may contain the Biller's name.

CTX: The Originator's bank account number may be placed in this field.

You can use this optional field to provide the Receiver with a description of the purpose of the transfer. For example, “Gas bill”, “Reg. Salary”, “ins. prem.”, “Soc. Sec.”, “DTC”, “Trade Pay”, “PURCHASE”, etc.

Default value: "PAYMENT". Maximum length: 10 characters.

A 10-digit unique identifier used for identifying entities, called originators, collecting payments via ACH debit. If you would like to use a specific company ID when originating ACH transactions, please contact us.

The name of the originator company that initiated the ACH transfer.

The timestamp at which the 60 day return window has passed for this ACH transfer, and it is officially completed.

ID of the counterparty that will receive the transfer.

The timestamp at which the transfer request is created.

The three-letter currency code defined in ISO 4217. e.g. USD.

Description of the transfer visible only in your platform. Maximum length: 255 characters.

Datetime (00:00AM in Pacific Time zone) on which the transfer is effective. For incoming transfers, this is 00:00AM on the Settlement Date of the transfer in PT timezone (more details).

Standard Entry Class code of the transfer. More Details Here.

This field provides additional IAT (International ACH Transfer) addenda information. More information here.