Look up bank by routing number

Search for financial institutions by name or routing number.

This endpoint returns metadata about each matched institution, including basic identifying details (such as name, routing number, and address) and information about which payment services they support (e.g., ACH, RTP, and Wire).

This can be used to validate a financial institution before initiating payment activity, or to check which payment rails are available for a given routing number.

To access this endpoint using an access token you'll need to specify the /institutions.read scope.

GET
/institutions
cURL Python TypeScript Java PHP
1
2
curl -X GET "https://api.moov.io/institutions" \
  -H "Authorization: Bearer {token}" \
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from moovio_sdk import Moov
from moovio_sdk.models import components


with Moov(
    x_moov_version="v2024.01.00",
    security=components.Security(
        username="",
        password="",
    ),
) as moov:

    res = moov.institutions.search_institutions()

    # Handle response
    print(res)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  xMoovVersion: "v2024.01.00",
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.institutions.searchInstitutions({});

  console.log(result);
}

run();
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package hello.world;

import java.lang.Exception;
import org.openapis.openapi.Moov;
import org.openapis.openapi.models.components.Security;
import org.openapis.openapi.models.operations.SearchInstitutionsResponse;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .xMoovVersion("v2024.01.00")
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        SearchInstitutionsResponse res = sdk.institutions().searchInstitutions()
                .call();

        if (res.institutionsSearchResponse().isPresent()) {
            // handle response
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;

$sdk = MoovPhp\Moov::builder()
    ->setXMoovVersion('v2024.01.00')
    ->setSecurity(
        new Components\Security(
            username: '',
            password: '',
        )
    )
    ->build();



$response = $sdk->institutions->searchInstitutions(

);

if ($response->institutionsSearchResponse !== null) {
    // handle response
}
200 401 403 404 429 500 504
The request completed successfully.
{
  "ach": [
    {
      "name": "First Citizens",
      "routingNumber": "123456789",
      "address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "stateOrProvince": "CO",
        "postalCode": "80301",
        "country": "US"
      },
      "contact": {
        "phone": {
          "number": "8185551212",
          "countryCode": "1"
        }
      }
    }
  ],
  "rtp": [
    {
      "name": "First Citizens",
      "routingNumber": "123456789",
      "services": {
        "receivePayments": true,
        "receiveRequestForPayment": true
      }
    }
  ],
  "wire": [
    {
      "name": "First Citizens",
      "routingNumber": "123456789",
      "address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "stateOrProvince": "CO",
        "postalCode": "80301",
        "country": "US"
      },
      "services": {
        "fundsTransferStatus": true,
        "fundsSettlementOnlyStatus": false,
        "bookEntrySecuritiesTransferStatus": false
      }
    }
  ]
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request contained missing or expired authentication.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The user is not authorized to make the request.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The requested resource was not found.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
Request was refused due to rate limiting.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed due to an unexpected error.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed because a downstream service failed to respond.

x-request-id

string <uuid> required
A unique identifier used to trace requests.

Headers

x-moov-version

string
API version

Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where

  • YYYY is the year
  • QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
  • BB is the build number, starting at .01, for subsequent builds in the same quarter.
    • For example, v2024.01.00 is the initial release of the first quarter of 2024.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.

Default: v2024.01.00

Query parameters

name

string
Name of the financial institution. Either name or routingNumber is required.

routingNumber

string
Routing number for a financial institution. Either routingNumber or name is required.

limit

integer
Maximum results returned by a search.

Response

application/json

ach

array required
Show child attributes

address

object
Show child attributes

addressLine1

string <=60 characters required Pattern

city

string <=32 characters required Pattern

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

addressLine2

string <=32 characters Pattern

contact

object
Show child attributes

phone

object
Show child attributes

countryCode

string <=1 characters

number

string <=10 characters

name

string
Name of the financial institution.

routingNumber

string <=9 characters

rtp

array required
Show child attributes

name

string
Name of the financial institution.

routingNumber

string <=9 characters

services

object
Show child attributes

receivePayments

boolean required
Can the institution receive payments

receiveRequestForPayment

boolean required
Can the institution receive request for payment messages

wire

array required
Show child attributes

address

object
Show child attributes

addressLine1

string <=60 characters required Pattern

city

string <=32 characters required Pattern

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

addressLine2

string <=32 characters Pattern

name

string
Name of the financial institution.

routingNumber

string <=9 characters

services

object
Show child attributes

bookEntrySecuritiesTransferStatus

boolean required
The institution's capability to handle transfers of securities.

fundsSettlementOnlyStatus

boolean required
The institution's capability for settlement-only transfers.

fundsTransferStatus

boolean required
The institution's capability to process standard Fedwire funds transfers.