# 2s.io ABA Routing Number Validator

> 2s.io ABA Routing Number Validator is a paid API for AI agents from 2s.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-16).

Validates a US bank ABA routing number using the Federal Reserve weighted mod-10 checksum algorithm, returning validity, district, and reason.

## Facts

- Endpoint: GET https://2s.io/api/validate/aba
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-aba-routing-number-validator-ef8399e3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M587_vEfPDDf0bC0mPZZC

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-aba-routing-number-validator-ef8399e3
```

Example prompt: Can you check whether the routing number 021000021 is valid — I want to make sure the checksum is correct before I use it for an ACH payment?

## When to prefer this

Use this endpoint when you need to catch data-entry errors (especially transposed digits) in ABA routing numbers before submitting ACH or wire transfers. It is faster and cheaper than a full bank-directory lookup and catches the most common input mistakes. Prefer this over a simple regex/length check when correctness of the checksum matters. Do NOT use this when you need to confirm whether a bank actually exists or is currently active — this is structure and checksum only.

## Known failure modes

- Non-9-digit input returns invalid with reason explaining length requirement
- Correct length but failing mod-10 checksum returns valid=false with reason indicating checksum failure
- Missing routingNumber query parameter returns a 400 or error response
- Payment not included or x402 auth fails returns 402 Payment Required
- This endpoint does NOT confirm the routing number belongs to an active bank — only structure and checksum are verified

## How this service works

Validate a US bank ABA routing number with the Federal Reserve weighted mod-10 checksum (3-7-1) — not just a 9-digit regex. Returns {valid, routingNumber, district (routing-symbol class), reason}. Catches transposed digits in ACH/wire setup that a length check misses. Structure + checksum only; not a bank-directory existence lookup.

## Output

Returns a JSON object with: valid (boolean), routingNumber (string), district (Federal Reserve routing-symbol class the number belongs to), and reason (explanation of why validation passed or failed, e.g. checksum mismatch or transposed digit hint).

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "routingNumber": "021000021"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "required": [
      "routingNumber"
     ],
     "properties": {
      "routingNumber": {
       "type": "string",
       "description": "9-digit ABA routing number (spaces/hyphens allowed)."
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "properties": {
   "ok": {
    "type": "boolean"
   },
   "items": {
    "type": "array",
    "items": {
     "type": "object",
     "properties": {
      "input": {
       "type": "string"
      },
      "valid": {
       "type": "boolean"
      },
      "reason": {},
      "district": {
       "type": "string"
      },
      "routingNumber": {
       "type": "string"
      }
     }
    }
   },
   "total": {
    "type": "integer"
   },
   "source": {
    "type": "object",
    "properties": {
     "url": {
      "type": "string"
     },
     "license": {
      "type": "string"
     },
     "provider": {
      "type": "string"
     }
    }
   }
  }
 },
 "example": {
  "ok": true,
  "items": [
   {
    "input": "021000021",
    "valid": true,
    "reason": null,
    "district": "Federal Reserve Bank (primary)",
    "routingNumber": "021000021"
   }
  ],
  "total": 1,
  "source": {
   "url": "https://2s.io",
   "license": "No upstream license — computed by 2s.io",
   "provider": "2s.io ABA validator"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-aba-routing-number-validator-ef8399e3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
