{"openapi":"3.1.0","info":{"title":"ABA Routing Number API","version":"1.0.0","description":"US bank ABA routing-number (routing transit number) validation as an API, computed locally and deterministically. The validate endpoint checks a nine-digit routing number with the official ABA checksum — 3·(d1+d4+d7) + 7·(d2+d5+d8) + (d3+d6+d9) must be a multiple of ten — ignoring hyphens and spaces, and reads the first two digits as the Federal Reserve routing symbol to name the district (01–12 are the twelve Federal Reserve Banks from Boston to San Francisco, 21–32 are thrift institutions); JPMorgan Chase’s 021000021 validates and resolves to the Federal Reserve Bank of New York, and a number with a wrong check digit is rejected. The checkdigit endpoint computes the ninth check digit from the first eight so the whole number passes. It also returns the institution identifier (digits 5–8) and the check digit. Everything is computed locally and deterministically, so it is instant and private. Ideal for fintech, banking, ACH, payroll, payment and accounting app developers, bank-account-form validation and onboarding tools, and US payment software. This is the checksum and routing-symbol structure only — it does not confirm a live bank. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 endpoints. For SWIFT/BIC codes use a BIC API and for IBANs an IBAN API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/routingnumber-api","description":"oanor gateway"}],"tags":[{"name":"Routing"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/checkdigit":{"get":{"operationId":"get_v1_checkdigit","tags":["Routing"],"summary":"Compute the check digit","description":"","parameters":[{"name":"number","in":"query","required":true,"description":"First 8 digits","schema":{"type":"string"},"example":"02100002"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The 9th digit is chosen so the full ABA checksum is 0 mod 10.","inputs":{"stem":"02100002"},"check_digit":1,"full_number":"021000021"},"meta":{"timestamp":"2026-06-05T19:50:13.264Z","request_id":"b69dd86b-4bf1-485e-858f-a4bf71776d3e"},"status":"ok","message":"Compute check digit","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["Routing"],"summary":"Validate an ABA routing number","description":"","parameters":[{"name":"number","in":"query","required":true,"description":"9-digit routing number","schema":{"type":"string"},"example":"021000021"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"ABA checksum: 3(d1+d4+d7) + 7(d2+d5+d8) + (d3+d6+d9) ≡ 0 (mod 10). The first two digits are the Federal Reserve routing symbol. 021000021 (JPMorgan Chase) is valid.","valid":true,"inputs":{"number":"021000021"},"district":"Federal Reserve Bank of New York","normalized":"021000021","check_digit":"1","institution_identifier":"0002","federal_reserve_routing_symbol":"02"},"meta":{"timestamp":"2026-06-05T19:50:13.376Z","request_id":"3a728f78-f267-437c-bd57-d5e971adee07"},"status":"ok","message":"Validate routing number","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Hyphens and spaces are ignored. This is the ABA checksum/structure only — it does not confirm a real, active bank. For SWIFT/BIC codes use a BIC API and for IBANs an IBAN API.","service":"routingnumber-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/validate":"Validate a 9-digit ABA routing number and read its Federal Reserve district.","GET /v1/checkdigit":"Compute the check digit from the first 8 digits."},"description":"US ABA bank routing-number (routing transit number) validation, parsing and check-digit calculation."},"meta":{"timestamp":"2026-06-05T19:50:13.484Z","request_id":"5ad0d651-444d-4d89-87ba-ddab7051d4bf"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":4480,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":595,"monthly_call_quota":44800,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1690,"monthly_call_quota":201000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5000,"monthly_call_quota":1135000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/routingnumber-api"}