Cifra di controllo ABA
Ottenga o verifichi la nona cifra di un numero di routing bancario statunitense con i pesi ufficiali 3-7-1: 02100002 riceve l'1 e diventa 021000021. Una cifra digitata male emerge prima di inviare le buste paga. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Numero
- 02100002
- Modalità di calcolo
- Compute
- Input
- 02100002
- Cifra di controllo
- 1
- Con cifra di controllo
- 021000021
I numeri di routing di transito bancario degli Stati Uniti (RTN), detti anche numeri di routing ABA, hanno nove cifre: otto di carico utile che identificano il distretto della Federal Reserve, l’istituto e la serie della cifra di controllo, più una cifra finale che dimostra che la stringa è stata digitata o incollata senza uno scivolone di una sola cifra. Questa capacità applica la ponderazione ufficiale tre-sette-uno dell’American Bankers Association e della Federal Reserve: le posizioni ciclano i pesi tre, sette e uno, e la somma delle nove cifre deve essere divisibile per dieci.
Come si calcola la cifra di controllo del routing ABA
Un numero di routing di transito ABA ha sempre nove cifre. Le prime otto formano il corpo istituzionale (distretto della Federal Reserve, identificativo della banca e serie correlata); la nona è la cifra di controllo. Per calcolarla, scorra le otto cifre da sinistra a destra e moltiplichi per la sequenza di pesi ripetuta tre, sette, uno, tre, sette, uno, tre, sette.
Sommi quei otto prodotti, poi prenda la cifra di controllo come dieci meno quella somma modulo dieci, di nuovo modulo dieci così un resto zero produce cifra di controllo zero. In modo equivalente, la stringa completa di nove cifre inclusa la cifra di controllo deve avere somma ponderata divisibile per dieci quando anche la nona posizione usa peso uno (continuando il ciclo tre-sette-uno). Non è la stessa regola di UPC, EAN o Luhn: quelli usano altri schemi di peso e lunghezze diverse.
Rispetto ai validatori multi-formato di numeri di pagamento, l’intento di ricerca qui è stretto: chi ha bisogno di un calcolatore della cifra di controllo del routing ABA per carichi di otto cifre o RTN di nove, non un verificatore generale di IBAN o carte.
Dove le cifre di controllo ABA si inseriscono nei flussi reali
Le piattaforme di busta paga e benefit ricevono numeri di routing bancario dai dipendenti e devono rifiutare none cifre digitate male prima che il primo file di accredito diretto sia inviato all’ODFI. I team di tesoreria e conti da pagare convalidano ogni colonna di routing in un’esportazione CSV di fornitori, mettono in quarantena le righe con valid false ed evitano lotti ACH falliti che costano ritardi e commissioni di rilavorazione.
Gli ambienti sandbox e demo spesso necessitano di numeri di routing sintetici ma validi nel checksum; la modalità compute trasforma qualsiasi corpo di otto cifre in una stringa di nove che supera i gate di formato locali senza inventare un rapporto bancario reale. Non tratti un controllo ABA superato come prova di conto aperto, autorizzazione OFAC o assegnazione attuale della Federal Reserve; prova solo che la cifra tre-sette-uno è coerente con il carico sotto i pesi standard.
Casi d'uso
Revisionare colonne di routing in export di busta paga e fornitori
Convalidi in batch ogni RTN ABA a nove cifre in un CSV e metta in quarantena le righe la cui cifra di controllo non coincide più con il valore atteso ricalcolato prima dell’invio ACH.
Domande frequenti
Cos’è la cifra di controllo di un numero di routing ABA?
È la nona cifra di un numero di routing di transito bancario USA (RTN), calcolata con la regola mod-10 ponderata 3-7-1 per intercettare di solito errori di una cifra in digitazione o incolla prima di memorizzare o inviare il numero in ACH.
Cosa succede con lunghezza errata, lettere o trattini?
Le attività di convalida fallite non vengono fatturate.
Lo strumento per la cifra di controllo del routing ABA è gratuito?
Lo strumento nel browser è gratuito e gira in locale.
Come si calcola la cifra di controllo di un routing ABA?
Moltiplichi le otto cifre, da sinistra a destra, per i pesi che si ripetono tre, sette e uno, e sommi i prodotti. La cifra di controllo è dieci meno il resto della divisione di quella somma per dieci; se il risultato è dieci, diventa zero.
Un validatore Luhn o di codici UPC va bene per un numero di routing?
No. Luhn, UPC ed EAN usano altri schemi di pesi e altre lunghezze, quindi il loro esito non dice nulla su un numero di routing, che richiede il ciclo 3-7-1 su esattamente nove cifre.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/aba-routing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"02100002"}'const res = await fetch("https://api.kit.forhosting.com/enc/aba-routing", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "02100002"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/aba-routing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "02100002"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/aba-routing", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"02100002"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"02100002"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/aba-routing", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"number": "02100002"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.aba_routing",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Input non numerici e lunghezze errate falliscono con invalid_input invece di un troncamento silenzioso, così non memorizza mai un RTN a metà. La stessa aritmetica pura gira gratis nel browser e al prezzo API pubblicato.
Contratto di input, modalità e comportamento di errore
Invii un campo number che contenga solo caratteri da zero a nove. La lunghezza errata è un errore esplicito che nomina la modalità e la lunghezza inviata—otto per compute, nove per validate—così i moduli possono mostrare «servono otto cifre» senza indovinare. Stringhe vuote, number assente e valori di mode non validi falliscono prima di qualsiasi somma ponderata e non vengono fatturati. Preferisca compute quando conia RTN di test o completa identificatori istituzionali parziali; preferisca validate quando filtra setup ACH o import su un codice completo di nove cifre da un utente o file partner. Spazi, trattini, lettere e punti decimali sono rifiutati come input non numerico con invalid_input affinché un valore silenziosamente troncato non raggiunga mai l’archiviazione. La modalità compute è predefinita: il motore richiede esattamente otto cifre, restituisce check_digit come stringa di un carattere e with_check come il numero di routing a nove cifre che può stampare o persistere. La modalità validate richiede esattamente nove cifre; la risposta indica valid true quando la cifra finale coincide con expected_check_digit ricalcolato, e include sempre payload (le prime otto cifre), check_digit, expected_check_digit, length nove, algorithm aba-3-7-1 e weights 3-7-1. Alias come digits, routing, rtn e code sono accettati per lo stesso campo di carico, così integrazioni che già parlano di «routing» non devono rinominare. Poiché il percorso è parse puro senza orologio, fonte casuale o rete, lo stesso corpo JSON produce sempre lo stesso risultato JSON sullo strumento gratuito del browser e sull’API a $0.002 per richiesta riuscita.
Dove le cifre di controllo ABA si inseriscono nei flussi reali
I moduli di onboarding fintech ricalcolano expected_check_digit e mostrano una correzione gentile quando un cliente incolla un RTN di nove cifre con una sola trasposizione.
Casi di integrazione
Completare un corpo di 8 cifre in un RTN di nove
Chiami la modalità compute con il carico di otto cifre, memorizzi with_check e usi il numero di routing ABA a nove cifre in moduli ACH, fixture di test o modelli di etichetta.
Convalidare routing digitati o incollati all’ingresso
Quando un modulo o un file partner invia nove cifre, chiami la modalità validate e blocchi il salvataggio se valid è false, mostrando expected_check_digit per correggere un solo errore di digitazione.
Domande tecniche
Come calcolo una cifra di controllo del routing ABA con questa API?
Esegua un POST con number di esattamente otto cifre e mode compute (o ometta mode). La risposta include check_digit e with_check (il routing completo a nove cifre).
Come convalido un numero di routing ABA completo a nove cifre?
Esegua un POST con la stringa di nove cifre e mode validate. La risposta include valid, check_digit, expected_check_digit e payload (cifre senza l’ultima).