Convalida dei numeri di carta di credito — algoritmo di Luhn e riconoscimento del circuito

Inserendo il numero di una carta di credito, ne verifica la cifra di controllo con l'algoritmo di Luhn e ne riconosce automaticamente il circuito: Visa, Mastercard, American Express e gli altri. Comodo anche per collaudare la convalida dei moduli.

[[ labels.client_side_note ]]

[[ labels.format_error ]]
[[ labels.sample_label ]]:
[[ labels.no_input ]]

[[ labels.result_label ]]

[[ labels.formatted_label ]] [[ result.formatted ]]
[[ labels.brand_label ]] [[ brandName ]] [[ labels.brand_unknown ]]
[[ labels.checksum_label ]] ✓ [[ labels.checksum_valid ]] ✗ [[ labels.checksum_invalid ]]

Circuiti previsti e criteri di riconoscimento (prefisso e numero di cifre)

Circuito Cifre iniziali (prefisso dell'emittente) Numero di cifre
Visa 4 13, 16, 19
Mastercard 51–55, 2221–2720 16
American Express 34, 37 15
Discover 6011, 65 16
JCB 3528–3589 16
Diners Club 300–305, 36, 38 14
UnionPay 62 16–19

Che cosa fa questo validatore di numeri di carta

Ogni numero di carta di credito porta in fondo una cifra di controllo pensata per intercettare gli errori di digitazione. Verificando la sequenza con l’algoritmo di Luhn si scopre la maggior parte degli sbagli su una singola cifra e delle inversioni fra cifre contigue. Questo strumento esegue tale verifica e ricava inoltre il circuito della carta dalle cifre iniziali e dalla lunghezza.

Il punto essenziale è che si tratta soltanto di una validazione del formato. Anche superando il controllo di Luhn, il numero non corrisponde necessariamente a una carta esistente, né dice se sia utilizzabile. L’autorizzazione vera e propria deve passare dall’API di un gestore dei pagamenti. Il numero inserito viene elaborato solo nel suo browser e non è inviato all’esterno.

Come si verifica un numero

  1. Inserisca il numero Spazi e trattini vengono rimossi automaticamente, perciò può incollare il valore così come lo ha copiato.
  2. Osservi l’esito della cifra di controllo Il risultato dell’algoritmo di Luhn compare come valido o non valido. Se non è valido, c’è un errore in qualche cifra.
  3. Verifichi il circuito individuato Il circuito si ricava dalle cifre iniziali e dalla lunghezza. La tabella sottostante riporta le condizioni applicate.
  4. Provi il comportamento con un esempio Il pulsante di esempio inserisce un numero di prova, così può verificare il funzionamento senza usare un numero reale.

Consigli per sfruttarlo al meglio

  • Provate il funzionamento con i numeri di prova offerti dal pulsante degli esempi, come 4111 1111 1111 1111 per Visa, anziché con numeri di carte reali.
  • Spazi e trattini sono rimossi automaticamente prima della verifica: potete quindi incollare senz'altro un numero copiato altrove.
  • La verifica di questo strumento riguarda soltanto la forma, secondo l'algoritmo di Luhn. Il controllo effettivo del credito e del saldo va effettuato tramite l'interfaccia del vostro fornitore di servizi di pagamento.
  • Realizzando la convalida di un modulo, conviene preparare qui tanto i casi corretti quanto quelli errati e verificarli entrambi.

Quando è utile

Realizzare la validazione di un modulo

Confronti il responso della sua validazione con quello ottenuto qui. Può predisporre sia i casi corretti sia quelli errati.

Controllare la logica di individuazione del circuito

Nella tabella si vede quale circuito derivi da ciascuna combinazione di cifre iniziali e lunghezza: utile quando deve mostrare l’icona della carta corrispondente.

Isolare un errore di digitazione

Se un pagamento non va a buon fine, può verificare prima se sia sbagliato il formato stesso del numero, accorciando la diagnosi.

Imparare l’algoritmo di Luhn

Cambi una sola cifra e vedrà la verifica passare a non valida: il meccanismo diventa immediatamente concreto.

Termini sui numeri di carta

Algoritmo di Luhn
Metodo di calcolo che verifica la plausibilità di una sequenza di cifre. Partendo da destra si raddoppia una cifra sì e una no, si somma il tutto e, se il totale è divisibile per 10, il numero è considerato valido.
Cifra di controllo
Cifra aggiunta in fondo per intercettare gli errori di digitazione. Si ricava per calcolo dalle altre posizioni.
IIN
Numero identificativo dell’emittente posto all’inizio del numero di carta. Da esso si distinguono il circuito e l’istituto emittente.
Circuito
Circuiti internazionali come Visa, Mastercard o American Express. Si determina dalla combinazione di cifre iniziali e lunghezza.
Autorizzazione
Procedura che verifica se la carta sia davvero utilizzabile e se il plafond disponibile basti. È del tutto distinta dalla validazione del formato.

Domande frequenti

No. Lo strumento esegue soltanto un controllo formale con l'algoritmo di Luhn e non può stabilire se la carta esista, se sia stata bloccata o se abbia credito sufficiente. Per il controllo effettivo del credito occorre il sistema di autenticazione del fornitore di servizi di pagamento.

Il numero inserito non viene trasmesso ad alcun servente e ogni calcolo avviene nel JavaScript del navigatore. Se però il vostro scopo è provare il funzionamento, si raccomanda di usare i numeri di prova offerti dal pulsante degli esempi anziché numeri reali.

È un algoritmo di rilevamento degli errori ideato nel 1954 da Hans Peter Luhn presso IBM. Si raddoppia una cifra sì e una no a partire da destra e, se la somma di tutte le cifre è un multiplo di dieci, il numero è formalmente valido: si scopre così la grande maggioranza degli errori di battitura.

Dalla combinazione fra le prime cifre, cioè il prefisso dell'emittente, e il numero complessivo di cifre. Visa comincia per 4 e conta 13, 16 o 19 cifre; Mastercard comincia per un valore fra 51 e 55, oltre ad altri intervalli, e conta 16 cifre; e così via secondo regole pubbliche. Trovate il dettaglio nella tabella dei criteri di riconoscimento in fondo alla pagina.

No. Superare quel controllo significa soltanto che il numero non presenta incongruenze formali. Anche una successione casuale di cifre inesistente può superarlo, se se ne aggiusta l'ultima cifra.
Tool-kun

A proposito — Hans Peter Luhn, il padre della cifra di controllo

La cifra di controllo inserita in coda al numero di una carta di credito si verifica con un algoritmo ideato nel 1954 da Hans Peter Luhn, ingegnere di IBM. Ne ottenne il brevetto nel 1960, ma il brevetto è ormai scaduto e l'algoritmo è oggi di pubblico dominio e liberamente utilizzabile.

Il funzionamento è sorprendentemente semplice: a partire dall'estrema destra si raddoppia una cifra sì e una no e, se il risultato ha due cifre, se ne sommano le cifre, per esempio 8 per 2 fa 16 e quindi 1 più 6 uguale 7. Se la somma di tutte le cifre è divisibile per dieci, il numero è formalmente valido.

L'algoritmo non serve soltanto alle carte di credito: si applica al rilevamento degli errori di digitazione in molti altri identificativi, come il codice che individua un telefono cellulare o certi numeri di previdenza sociale. Va però ricordato che serve unicamente a scoprire gli errori di battitura e non stabilisce né se la carta esista né se abbia credito disponibile.

Le prime sei o otto cifre del numero costituiscono il prefisso dell'emittente e recano l'informazione su quale circuito internazionale e quale banca abbiano emesso la carta. Anche il riconoscimento del circuito offerto da questo strumento si fonda sugli intervalli di quel prefisso.