{"uid":"cap_M587_vEfPDDf0bC0mPZZC","slug":"2s-io-aba-routing-number-validator-ef8399e3","name":"2s.io ABA Routing Number Validator","description":"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.","url":"https://2s.io/api/validate/aba","method":"GET","headers":{},"bodySchema":{"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)."}}}}}}},"responseSchema":{"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"}}},"example":{"request":{"input":{"type":"http","method":"GET","queryParams":{"routingNumber":"021000021"}}},"response":{"data":{"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"}},"meta":{"cost":{"usd":0.001,"tier":0},"caller":"x402","version":null,"endpoint":"validate.aba","settlement":{"txHash":"0xc1a2b394c8b16546cb61d8e0feae26b9ba632e15fda17eeda63f3bc702c12282","network":"eip155:8453","success":true}}}},"exampleRequest":{"routingNumber":"021000021"},"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0025","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0025","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_YGCpJR9v6wrd6lzqLCsmE","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0025","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates a US bank ABA routing number using the Federal Reserve weighted mod-10 checksum algorithm, returning validity, district, and reason.","exampleAgentPrompt":"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?","exampleUseCases":null,"resultDescription":"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).","failureModes":["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"],"whenToPreferThis":"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.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T00:48:03.169Z","isFirstParty":false}