apyhub
DATA VALIDATION · FINANCE

US Routing Number Validation API

What it does

Routing Number Validator checks whether a U.S. routing number is valid. Send a 9-digit routing_number in the query string, and get a response indicating the result back.

Use it when you need to verify bank routing data before creating a payment flow, storing customer banking details, or running preflight checks on ACH-related forms. The endpoint is focused on one job: The endpoint validates the routing number format, checksum, and attempts to match it against the FedACH routing directory.

The request schema is simple and strict: a single routing_number string exactly 9 characters long. If your app collects bank details from users, this endpoint fits into the step where you reject malformed routing numbers early and keep invalid records out of downstream systems.

GET
Validate routing number
http://localhost:8080/dosvak/validate-routing-number

QUICKSTART

GUIDE

Quickstart

Validate a routing number by passing the required routing_number as a query parameter.

curl -X GET "http://localhost:8080/dosvak/validate-routing-number?routing_number=021000021" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object containing the validation result, checksum status, reference match status, bank information (when available), and attribution details.

{
  "input": "021000021",
  "normalized": "021000021",
  "checksum_valid": true,
  "valid": true,
  "reason": "ok",
  "reference_status": "matched",
  "reference_match": true,
  "bank": {
    "routing_number": "021000021",
    "customer_name": "JPMORGAN CHASE",
    "city": "TAMPA",
    "state": "FL",
    "zip_code": "336100000",
    "phone": "8134323700",
    "institution_status_code": "1",
    "source": "fedach",
    "updated_at": "2026-07-29T17:19:03.916039Z"
  },
  "attribution": []
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Validates a routing number supplied on the request and returns a JSON object on success. The response schema does not define any fixed fields, so only the object wrapper is guaranteed.

Query Parameter(s)

AttributeTypeMandatoryDescription
routing_numberStringYesRouting number; exactly 9 characters long (minLength: 9, maxLength: 9).

Response

Returns a JSON object containing the validation result, checksum status, reference match status, bank information (when available), and attribution details.

Query parameters

Name
Type
Description
routing_numberREQUIRED
string
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.