Cifra di controllo ISIN
Per il corpo US037833100 la cifra di controllo è 5, quindi l'ISIN completo è US0378331005. Completi l'identificativo di un titolo prima di salvarlo o stamparlo, oppure verifichi un ISIN di 12 caratteri ricevuto nel file di un partner. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Codice
- US037833100
- Convertito
- 3028037833100
- Modalità di calcolo
- Compute
- Input
- US037833100
- Codice paese
- US
Un International Securities Identification Number (ISIN) è il codice di dodici caratteri che identifica in modo univoco un titolo tra i mercati secondo la norma ISO 6166. I primi due caratteri sono il codice paese, i nove successivi il numero nazionale di identificazione dei titoli (NSIN) e il dodicesimo è una cifra di controllo numerica ottenuta convertendo le lettere in numeri e applicando l'algoritmo di Luhn. Questa capacità implementa solo quella regola ufficiale: la modalità compute accetta esattamente undici caratteri alfanumerici e restituisce la cifra di controllo più l'ISIN completo di dodici; la modalità validate accetta un ISIN completo di dodici caratteri e indica se la cifra finale coincide con il valore atteso ricalcolato.
Come si calcola la cifra di controllo Luhn dell'ISIN
Secondo l'ISO 6166 un ISIN ha sempre dodici caratteri: due lettere maiuscole per il paese o la regione di emissione, nove caratteri alfanumerici per l'NSIN (spesso un numero nazionale con zeri iniziali, come un CUSIP o un SEDOL) e una cifra finale che è il carattere di controllo. Per calcolarla, prenda il corpo di undici caratteri ed espanda ogni lettera in due cifre decimali con la mappatura fissa A uguale a dieci fino a Z uguale a trentacinque, mentre le cifre decimali restano a una sola cifra.
Il risultato è una stringa solo di cifre la cui lunghezza dipende da quante lettere compaiono nel corpo: i codici paese contribuiscono sempre con quattro cifre perché entrambi i caratteri sono lettere. Applichi l'algoritmo classico di Luhn da destra di quella stringa espansa: raddoppi ogni seconda cifra a partire dalla cifra del corpo più a destra, perché una volta aggiunta la cifra di controllo quella del corpo occupa la posizione due da destra del numero completo.
Quando il doppio di una cifra è maggiore di nove, sottragga nove (in modo equivalente, sommi le decine e le unità del prodotto). Sommi tutti i valori pesati; la cifra di controllo è dieci meno quella somma modulo dieci, modulo dieci di nuovo, così che la sequenza completa di cifre inclusa la di controllo abbia un totale Luhn divisibile per dieci. La convalida ricalcola la cifra attesa dai primi undici caratteri e la confronta con la dodicesima, che deve sempre essere una cifra decimale da zero a nove.
L'algoritmo è deterministico e locale: nessuna chiamata a un registro di emittenti, nessun orologio e nessuna casualità. Rispetto agli strumenti Luhn per carte o IMEI, l'intento di ricerca qui è stretto: chi ha bisogno di una calcolatrice di cifra di controllo ISIN per un corpo di undici caratteri o di un verificatore di ISIN titoli di dodici, non di uno strumento di pagamento o di dispositivo.
Contratto di ingresso, modalità e comportamento di errore
Invii un campo code che, dopo trim e conversione in maiuscolo, contenga solo lettere da A a Z e cifre da zero a nove. Una lunghezza errata è un errore esplicito che nomina la modalità e la lunghezza inviata — undici per compute, dodici per validate — così i form client possono mostrare «servono undici caratteri» senza indovinare.
Stringhe vuote, code mancante, valori di mode non validi, un dodicesimo carattere non cifra in validate e un corpo che fallisce la forma due lettere più nove alfanumerici falliscono prima di qualsiasi somma Luhn e non vengono fatturati. Preferisca compute quando crea o completa ISIN per dati anagrafici ed etichette; preferisca validate quando condiziona un'operazione, un'importazione o una ricerca a un ISIN completo da un utente, un file partner o un feed di mercato.
Le attività di convalida che rifiutano forma errata non vengono addebitate; una stringa ben formata di dodici caratteri che ha semplicemente la cifra di controllo sbagliata restituisce valid false senza sollevare errori.
Dove le cifre di controllo ISIN si inseriscono nei flussi reali
Emittenti, agenti e agenzie di numerazione ricevono codici nazionali e devono aggiungere la cifra di controllo Luhn ufficiale prima di stampare un ISIN su prospetti, operazioni societarie o filing regolamentari. I moduli di onboarding di broker e custodi convalidano ISIN di dodici caratteri all'ingresso affinché una sola trasposizione non apra una posizione fantasma né un'istruzione di regolamento fallita.
I job ETL che caricano i master strumenti scorrono ogni colonna ISIN in un CSV o in una definizione di sicurezza FIX, chiamano la modalità validate e mettono in quarantena le righe dove valid è false — catturando sia modifiche umane sia bug dei generatori.
Non tratti un ISIN che supera il controllo come prova che il titolo sia quotato, liquido o privo di operazioni societarie; dimostra solo che la cifra Luhn è coerente con il paese e l'NSIN espansi sotto i pesi standard dell'ISO 6166 per l'identificazione internazionale dei titoli.
Casi d'uso
Revisionare colonne ISIN negli inventari di titoli
Convalidi in batch ogni ISIN di dodici caratteri in un CSV di middle-office, custode o dati di mercato e metta in quarantena le righe la cui cifra di controllo non coincide più con il valore atteso ricalcolato.
Domande frequenti
Che cos'è una cifra di controllo ISIN?
È il dodicesimo carattere di un ISIN, una cifra da zero a nove calcolata con l'algoritmo di Luhn dopo aver espanso le lettere A–Z in 10–35 sui primi undici caratteri, così errori di digitazione e lettura di solito vengono intercettati prima di archiviare o negoziare il codice.
Cosa succede con lunghezza errata, trattini o controllo lettera?
Le attività di convalida fallite non vengono addebitate.
Lo strumento di cifra di controllo ISIN è gratuito?
Lo strumento del browser è gratuito e gira in locale.
Cosa indica ogni parte di un ISIN?
Le prime due lettere indicano il paese o la regione di emissione, i nove caratteri successivi il numero nazionale del titolo e il dodicesimo è la cifra di controllo. In US0378331005, US è il paese, 037833100 il numero nazionale e 5 la cifra di controllo.
Un ISIN valido significa che il titolo è quotato?
No. Una cifra di controllo corretta indica solo che i 12 caratteri sono coerenti tra loro. Non viene consultato alcun registro degli emittenti, quindi non dice se il titolo è quotato o regolato.
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/isin \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"code":"US037833100"}'const res = await fetch("https://api.kit.forhosting.com/enc/isin", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"code": "US037833100"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/isin",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"code": "US037833100"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/isin", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"code":"US037833100"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"code":"US037833100"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/isin", 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
{
"code": "US037833100"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.isin",
"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
Ingressi non alfanumerici, lunghezze errate e forme paese o NSIN malformate falliscono con invalid_input invece di un taglio silenzioso, così Lei non persiste mai un identificatore a metà. La stessa aritmetica pura gira gratis nel browser e al prezzo API pubblicato, senza consultazione di rete a basi di emittenti e senza affermare che un checksum valido significhi che il titolo sia quotato, liquidato o privo di operazioni societarie.
Contratto di ingresso, modalità e comportamento di errore
Spazi, trattini, simboli e punteggiatura sono respinti come ingresso non alfanumerico con invalid_input affinché un valore tagliato in silenzio non raggiunga mai lo storage. La modalità compute è quella predefinita: il motore richiede esattamente undici caratteri con un codice paese di due lettere seguito da un NSIN alfanumerico di nove, restituisce check_digit come stringa di un carattere, restituisce with_check come l'ISIN di dodici caratteri che Lei può stampare o persistere, e restituisce anche converted (la stringa di cifre espansa), country_code e nsin per le tracce di audit. La modalità validate richiede esattamente dodici caratteri il cui ultimo sia una cifra; la risposta indica valid true quando la cifra finale coincide con expected_check_digit ricalcolato, e include sempre payload (i primi undici caratteri), converted, check_digit, expected_check_digit e length dodici. Alias come isin, number e text sono accettati per lo stesso campo di carico, così le integrazioni che già parlano di «isin» non devono rinominare. Poiché il percorso è parse puro senza orologio, sorgente casuale né 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 ISIN si inseriscono nei flussi reali
I team di middle-office e dati statici ricalcolano expected_check_digit quando una controparte legge un codice al telefono o lo incolla da un PDF, catturando errori di digitazione prima di registrare l'operazione sul titolo sbagliato.
Casi di integrazione
Completare un corpo di 11 caratteri per i dati anagrafici
Chiami la modalità compute con il corpo paese+NSIN di undici caratteri, memorizzi with_check e pubblichi l'ISIN di dodici nel master strumenti, nei prospetti o negli avvisi di operazioni societarie.
Convalidare ISIN digitati o importati all'ingresso
Quando un form, un feed FIX o un file partner invia dodici caratteri, chiami la modalità validate e blocchi la registrazione se valid è false, mostrando expected_check_digit per correggere un solo errore di digitazione.
Domande tecniche
Come calcolare una cifra di controllo ISIN con questa API?
Invii un POST con code impostato a esattamente undici caratteri alfanumerici (codice paese di due lettere più NSIN di nove) e mode compute (oppure ometta mode). La risposta include check_digit e with_check (l'ISIN completo di dodici caratteri).
Come convalidare un ISIN completo di dodici caratteri?
Invii un POST con la stringa di dodici caratteri e mode validate. La risposta include valid, check_digit, expected_check_digit, payload (caratteri senza l'ultimo) e converted (la stringa di cifre espansa).