/get_institutions

Fetch data about financial institutions and which Plaid products are supported.

This will return a list of financial institutions along with details like name, routing numbers, and which Plaid products are supported. This information can be helpful when linking bank accounts.

You can fetch institution information by:

  • Specifying an institution name - must be a minimum of 3 characters. The response will return institutions with a fuzzy match to that name.
  • Specify a routing number. The response will return institutions that match the routing number.
  

Requests

Only an authsignature header is required for this request.

The search_filters object is optional.

  
POST /0.2/get_institutions HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE]
Content-Type: application/json

{
  "header": {
    "created": 1234567890, 
    "app_handle": "handle.silamoney.eth", 
    "reference": "<your unique id>"
  }, 
  "message": "header_msg",
    "search_filters": {
    "institution_name": "Institution Name(Min 3 char)",
    "routing_number": "1234567891",
    "page": 1,
    "per_page": 20
  }
}

***

HTTP/1.1 200 OK
{
    "success": true,
    "institutions": [
       {
            "name": "1st advantage bank",
            "office_code": "O",
            "routing_number": "081019120",
            "record_type_code": "1",
            "change_date": "2010-05-26",
            "new_routing_number": "000000000",
            "address": {
                "street_address": "240 SALT LICK ROAD",
                "city": "ST. PETERS",
                "state": "MO",
                "country": "US",
                "postal_code": "63376-0000"
            },
            "phone": "(636) 970-0440",
            "institution_status_code": "1",
            "data_view_code": "1",
            "products": [
                "assets",
                "balance",
                "transactions",
                "income"
            ]
        }
    ],
    "page": 1,
    "returned_count": 20,
    "total_count": 100,
    "pagination": {
        "returned_count": 20,
        "total_count": 100,
        "current_page": 1,
        "total_pages": 5
    },
    "status": "SUCCESS", 
    "response_time_ms": "171",
    "reference": "<your unique id>"
}
InstitutionSearchFilters searchFilters = new InstitutionSearchFilters(); //Search filter is optional
searchFilters.setInstitutionName("institution name");
searchFilters.setPage(1);
searchFilters.setPerPage(20);
searchFilters.setRoutingNumber("routing number");

ApiResponse response = api.getInstitutions(searchFilters);
/*======OR======*/
ApiResponse response = api.getInstitutions();

GetInstitutionsResponse parsedResponse = (GetInstitutionsResponse) response.getData();

parsedResponse.getInstitutions().get(0).getAddress();
parsedResponse.getInstitutions().get(0).getChangeDate();
parsedResponse.getInstitutions().get(0).getDataViewCode();
parsedResponse.getInstitutions().get(0).getInstitutionStatusCode();
parsedResponse.getInstitutions().get(0).getName();
parsedResponse.getInstitutions().get(0).getNewRoutingNumber();
parsedResponse.getInstitutions().get(0).getOfficeCode();
parsedResponse.getInstitutions().get(0).getPhone();
parsedResponse.getInstitutions().get(0).getProducts().get(0);
parsedResponse.getInstitutions().get(0).getRecordTypeCode();
parsedResponse.getInstitutions().get(0).getRoutingNumber();
parsedResponse.getMessage();
parsedResponse.getPage();
parsedResponse.getPagination().getCurrentPage();
parsedResponse.getPagination().getReturnedCount();
parsedResponse.getPagination().getTotalCount();
parsedResponse.getPagination().getTotalPages();
parsedResponse.getReference();
parsedResponse.getReturnedCount();
parsedResponse.getStatus();
parsedResponse.getSuccess();
parsedResponse.getTotalCount();
payload = {
    "institution_name": "institution name", #Optional parameter
    "routing_number": "12345678", #Optional parameter
    "page": 1,
    "per_page": 20
}
response = silasdk.User.get_institutions(app, payload)

response["success"]
response["institutions"][0]["name"]
response["institutions"][0]["office_code"]
response["institutions"][0]["routing_number"]
response["institutions"][0]["record_type_code"]
response["institutions"][0]["change_date"]
response["institutions"][0]["new_routing_number"]
response["institutions"][0]["address"]["street_address"]
response["institutions"][0]["address"]["city"]
response["institutions"][0]["address"]["state"]
response["institutions"][0]["address"]["country"]
response["institutions"][0]["address"]["postal_code"]
response["institutions"][0]["phone"]
response["institutions"][0]["institution_status_code"]
response["institutions"][0]["data_view_code"]
response["institutions"][0]["products"]
response["returned_count"]
response["total_count"]
response["pagination"]["returned_count"]
response["pagination"]["total_count"]
response["pagination"]["current_page"]
response["pagination"]["total_pages"]
response["status"]
use Silamoney\Client\Domain\SearchFilters;

$filters = new SearchFilters(); // Optional
$filters->setInstitutionName('some institution name');
$filters->setRoutingNumber('some routing number or new routing number');

// Call the API
$response = $client->getInstitutions($filters);
// or Call the API without filters
$response = $client->getInstitutions();

//Success 200
echo $response->getStatusCode(); // 200
$data = $response->getData();
echo $data->success; // TRUE
$data->status; // SUCCESS
$data->page; // The current page
$data->returnedCount; // The amount of results returned in this request
$data->totalCount; // The total amount of results that satisfies the filters
$institutiions = $data->institutions; // Array of institutions
$institutions[0]->name; // The institution name
$institutions[0]->officeCode; // The office code
$institutions[0]->routingNumber; // The routing number
$institutions[0]->recordTypeCode; // The record type code
$institutions[0]->changeDate; // The change date
$institutions[0]->newRoutingNumber; // The new routing number
$institutions[0]->address; // The institution address object
$institutions[0]->address->streetAdress; // The institution street address
$institutions[0]->address->city; // The institution city code
$institutions[0]->address->country; // The institution country code
$institutions[0]->address->postalCode; // The institution postal code
$institutions[0]->phone; // The institution phone
$institutions[0]->institutionStatusCode; // The institution status code
$institutions[0]->dataViewCode; // The institution data view code
$institutions[0]->products; // Array of institution products
$response->getData()->pagination; // Pagination details (returned count, total count, current page, total pages)
$response->getData()->pagination->returnedCount;
$response->getData()->pagination->totalCount;
$response->getData()->pagination->currentPage;
$response->getData()->pagination->totalPages;
//search_filters is optional 
var search_filters = {
    institution_name: 'institution name',
    routing_number: 'routing number',
    page: 1,
    per_page: 20,
};


const res = await sila.getInstitutions(search_filters);

// ============ OR ========================

const res = await sila.getInstitutions();

res.data.succes;
res.data.institutions[0].name;
res.data.institutions[0].office_code;
res.data.institutions[0].routing_number;
res.data.institutions[0].record_type_code;
res.data.institutions[0].change_date;
res.data.institutions[0].new_routing_number;
res.data.institutions[0].address.street_address;
res.data.institutions[0].address.city;
res.data.institutions[0].address.state;
res.data.institutions[0].address.country;
res.data.institutions[0].address.postal_code;
res.data.institutions[0].phone;
res.data.institutions[0].institution_status_code;
res.data.institutions[0].data_view_code;
res.data.products[0];
res.data.page;
res.data.returned_count;
res.data.total_count;
res.data.pagination.returned_count;
res.data.pagination.total_count;
res.data.pagination.current_page;
res.data.pagination.total_pages;
res.data.status;
InstitutionSearchFilters searchFilters = new InstitutionSearchFilters
{
   Page = 1,
   PerPage = 20,
   InstitutionName = "institution name",
   RoutingNumber = "routing number"
};
ApiResponse<object> response = api.GetInstitutions(searchFilters);//searchFilters is optional.

// Success Object Response
Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((GetInstitutionsResponse)response.Data).TotalCount); // Total Count
Console.WriteLine(((GetInstitutionsResponse)response.Data).Success); // true
Console.WriteLine(((GetInstitutionsResponse)response.Data).Status); // SUCCESS
Console.WriteLine(((GetInstitutionsResponse)response.Data).ReturnedCount); // Returned Count
Console.WriteLine(((GetInstitutionsResponse)response.Data).Reference); // Reference

Console.WriteLine(((GetInstitutionsResponse)response.Data).Pagination.CurrentPage); // Pagination
Console.WriteLine(((GetInstitutionsResponse)response.Data).Pagination.ReturnedCount); // Pagination
Console.WriteLine(((GetInstitutionsResponse)response.Data).Pagination.TotalCount); // Pagination
Console.WriteLine(((GetInstitutionsResponse)response.Data).Pagination.TotalPages); // Pagination

Console.WriteLine(((GetInstitutionsResponse)response.Data).Page); // Page
Console.WriteLine(((GetInstitutionsResponse)response.Data).Message); // Message          

Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.Uuid);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.StreetAddress1);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.StreetAddress2);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.State);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.PostalCode);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.Nickname);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.City);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.Country);
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Address.AddressAlias);

Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].ChangeDate); // Change Date
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].DataViewCode); // DataView Code
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].InstitutionStatusCode); // Institution Status Code
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Name); // Name
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].NewRoutingNumber); // New Routing Number
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].OfficeCode); // Office Code
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Phone); // Phone        
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].RecordTypeCode); // Record Type Code
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].RoutingNumber); // Routing Number

Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Products[0]); // assets
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Products[1]); // balance
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Products[2]); // transactions
Console.WriteLine(((GetInstitutionsResponse)response.Data).Institutions[0].Products[3]); // income

Key

Type

Description

header

JSON object

Required. Requires these keys in JSON format: created, app_handle. See the /check_handle endpoint for the complete list of fields in this object.

search_filters

JSON object

Optional. Allows filtering results.

search_filters.
institution_name

String

Optional. Institution name for fuzzy match - must be minimum of 3 characters if provided.

search_filters.
routing_number

String

Optional. Routing number that would do exact match on routing number

search_filters.page

Integer

Optional. Min 1
Default: 1

search_filters.
per_page

Integer

Optional. Min 1
Max 100
Default per page 20

Responses

Status Code

Description

200

Successfully fetched array of institutions.

400

Bad request format - check validation_details for more information.

401

authsignature header was absent or incorrect.

Key

Type

Description

institutions

JSON Object

Provides the institution data, including routing number, name, address, phone number, and supported Plaid products

institutions.name

String

The official name of the institution as listed in the Federal Reserve's ACH directory

institutions.office_code

String

Main office or branch O=main B=branch

institutions.routing_number

String

The institution's routing number

institutions.record_type_code

String

The code indicating the ABA number to be used to route or send ACH items to the RFI
0 = Institution is a Federal Reserve Bank
1 = Send items to customer routing number
2 = Send items to customer using new routing number field

institutions.change_date

String

The date of the last change to this routing number. Format is "YYYY-MM-DD"

institutions.new_routing_number

String

The institution's new routing number resulting from a merger or new number issuance

institutions.address

JSON Object

The institution's address

institutions.phone

String

The institution's phone number

institutions.institution_status_code

String

Code is based on the customers receiver code
1=Receives Gov/Comm

institutions.data_view_code

String

1 = Current view

institutions.products

JSON Object

Lists the Plaid products that are supported by this institution

  

Did this page help you?