Routing Numbers

Modern Treasury validates routing numbers when creating a Routing Detail object to make sure they are valid. This API endpoint can be used to perform the same validation without creating a routing detail, as well as additional validations around sanctions screening.

Some common use cases for this endpoint are:

  • You want to validate a routing number the user has entered prior to creating an external account for them.
  • You want to do a real-time validation of the routing number that the user is entering in your user interface.
  • You want to display the name of the bank that corresponds to the routing number in your user interface.
  • You need to validate that the routing number the user provides works for the type of payment you are doing. For example, not all ABA routing numbers work for both ACH and wire payments.
  • You want to check that a routing number is not on a sanctions watchlist so that you do not make payments to sanctioned banks.

You may use this endpoint to validate a variety of types of routing numbers. Refer to the routing_number_type row below to see which routing number types you may validate.

📘

Test Routing Number Validation

Before your organization is fully onboarded, routing number validation data is unavailable. The following routing numbers are provided to ensure that your integration works as intended.

  • ABA: 123456789
  • SWIFT: GRINUST0XXX

Attribute

Description

routing_number
string

The routing number that is being validated.

routing_number_type
string

The type of the routing number. One of aba, au_bsb, ca_cpa, gb_sort_code, or swift.

supported_payment_types
array

An array of payment types that are supported for this routing number. This can include ach, wire, rtp, sepa, bacs, au_becs currently.

bank_name
string

The name of the bank.

bank_address
object

The address of the bank.

sanctions
object

For SWIFT routing numbers, returns an object of key-value pairs where the keys are institutions, and the values are booleans representing if those institutions have sanctioned the routing number. Institutions include the European Union (eu_con), Her Majesty's Treasury (uk_hmt), the Office of Foreign Assets Control (us_ofac, and the United Nations (un).

For other routing number types, an empty {} will be returned.

{
  "routing_number": "021000021",
  "routing_number_type": "aba",
  "supported_payment_types": ["ach", "wire", "rtp"],
  "bank_name": "Varo Bank, National Association",
  "bank_address": { 
    "object": "address",
    "line1": "6000 Universal Boulevard",
    "line2": null,
    "locality": "Orlando",
    "region": "FL",
    "postal_code": "32819",
    "country": "US"
  },
  "sanctions": {}  
}
{
  "routing_number": "GRINUST0XXX",
  "routing_number_type": "swift",
  "supported_payment_types": ["ach", "wire", "rtp"],
  "bank_name": "Gringotts Wizarding Bank",
  "bank_address": { 
    "object": "address",
    "line1": "DIAGON ALLEY",
    "line2": null,
    "locality": "LONDON",
    "region": "ENGLAND",
    "postal_code": "W90 3UG",
    "country": "GB"
  },
  "sanctions": {
    "eu_con":false,
    "uk_hmt":false,
    "us_ofac":false,
    "un":false
  }  
}