Chiffre de contrôle CUSIP
Saisissez les huit premiers caractères d'un CUSIP et obtenez le neuvième : 03783310 reçoit le chiffre de contrôle 0 et devient 037833100. Si vous avez déjà le code complet de neuf caractères, vérifiez son dernier chiffre avant de passer une opération. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Numéro CUSIP
- 03783310
- Mode de calcul
- Compute
- Entrée
- 03783310
- Chiffre de contrôle
- 0
- Numéro CUSIP
- 037833100
Les identifiants CUSIP étiquettent les actions, obligations et autres titres nord-américains afin que les systèmes de compensation, les tickets d’ordre et les fichiers de portefeuille s’accordent sur le même code de neuf caractères. Les huit premiers identifient l’émetteur et l’émission ; le neuvième est un chiffre de contrôle calculé à partir du corps, de sorte qu’une faute de frappe ou une transposition échoue souvent avant qu’une opération ne soit passée sur le mauvais instrument. Cette capacité met en œuvre cet algorithme standard : elle mappe chiffres et lettres en valeurs, double les positions alternées, somme les chiffres décimaux et renvoie le chiffre qui rend le total multiple de dix. Utilisez le mode compute lorsque vous ne disposez que du corps de huit caractères et avez besoin du chiffre final, ou le mode validate lorsque vous recevez un CUSIP complet de neuf caractères et avez besoin d’un booléen plus le chiffre attendu pour les messages d’erreur.
Comment le chiffre de contrôle CUSIP est calculé
Un CUSIP comporte neuf caractères selon la disposition familière de type ANSI X9.6 : six pour l’émetteur, deux pour l’émission et un chiffre de contrôle final. Chaque caractère du corps est mappé à un nombre : les chiffres de zéro à neuf restent tels quels, les lettres de A à Z deviennent de dix à trente-cinq, et les symboles spéciaux astérisque, arobase et dièse valent trente-six, trente-sept et trente-huit lorsqu’ils apparaissent.
En parcourant les huit caractères du corps de gauche à droite, les valeurs des positions deuxième, quatrième, sixième et huitième sont doublées. Chaque nombre résultant est réduit en sommant ses chiffres décimaux — par exemple quatorze devient cinq — afin que les grandes valeurs de lettres ne dominent pas le total. Ces sommes de chiffres sont additionnées.
Le chiffre de contrôle est dix moins le total modulo dix, et ce résultat à nouveau modulo dix, ce qui produit un seul chiffre de zéro à neuf. L’ajout de ce chiffre produit un CUSIP complet de neuf caractères dont la somme pondérée de chiffres est congruente à zéro modulo dix.
Par rapport aux chiffres de contrôle des codes-barres de détail tels qu’EAN-13 ou au Luhn des cartes de paiement, le CUSIP est alphanumérique et de longueur fixe, c’est pourquoi il relève des utilitaires d’encodage d’identifiants de titres plutôt que des validateurs de codes produits.
Mode compute versus mode validate
Envoyez un champ cusip ne contenant que des caractères autorisés après suppression optionnelle des espaces et tirets. Le mode validate attend exactement neuf caractères, le neuvième étant un chiffre de zéro à neuf. Les chaînes vides, le cusip manquant, une longueur incorrecte pour le mode choisi, un neuvième caractère non numérique en validate et des valeurs de mode invalides échouent avant toute somme pondérée et ne sont pas facturés.
Les lettres sont acceptées sans distinction de casse et normalisées en majuscules dans l’entrée renvoyée, afin que les traitements par lots puissent coller du texte mixte depuis des tableurs. Préférez compute lorsque vous complétez un corps provenant d’un fournisseur de données qui omet le chiffre de contrôle ; préférez validate lorsqu’un utilisateur, un fichier partenaire ou un scanner soumet un CUSIP complet et que vous avez besoin d’une porte booléenne avant de rechercher l’instrument.
Où les chiffres de contrôle CUSIP s’insèrent dans les flux réels
Les courtiers et les équipes d’opérations côté acheteur ingèrent des fichiers de positions et de transactions de fin de journée où un seul caractère transposé peut comptabiliser le risque sur la mauvaise obligation ou action. Valider chaque CUSIP à l’import et mettre en quarantaine les lignes où valid est false empêche la pollution silencieuse du référentiel.
Les desks d’agents de transfert et d’événements corporatifs recalculent les chiffres de contrôle lorsque les codes émetteur et émission sont assemblés à partir de flux séparés, en mode compute afin que le code de neuf caractères stocké respecte la convention du secteur.
Les tests d’intégration et les jobs de qualité des données recalculent le chiffre de contrôle attendu pour chaque ligne d’un export CSV et signalent les lignes dont le CUSIP complet stocké ne correspond plus, ce qui détecte à la fois les modifications humaines et les bugs de décalage dans les générateurs.
Ne traitez pas un contrôle CUSIP réussi comme une preuve que le titre existe, est liquide ou est autorisé à la négociation — cela prouve seulement que la chaîne de neuf caractères est bien formée sous cet algorithme, le même critère d’honnêteté que pour tout checksum.
Cas d’usage
Compléter un corps CUSIP de huit caractères
Lorsqu’un flux ou un tableur ne fournit que le corps de huit caractères émetteur plus émission, appelez le mode compute et stockez le cusip complet renvoyé afin que chaque système en aval reçoive un identifiant standard de neuf caractères.
Auditer les exports du référentiel de titres
Validez par lots chaque colonne CUSIP d’un export de portefeuille, de conservation ou d’événements corporatifs et mettez en quarantaine les lignes dont le chiffre de contrôle final ne correspond plus à la valeur attendue recalculée.
Questions fréquentes
Qu’est-ce qu’un chiffre de contrôle CUSIP ?
C’est le neuvième caractère d’un CUSIP, un chiffre unique 0–9 calculé à partir du corps de huit caractères afin que les fautes de frappe courantes échouent souvent à un checksum modulaire avant d’utiliser le mauvais titre.
Quels caractères sont autorisés ?
Chiffres 0–9, lettres A–Z (insensibles à la casse) et, en option, * @ #. Les espaces et tirets sont supprimés.
Comment se calcule le chiffre de contrôle CUSIP ?
Chacun des huit caractères devient un nombre : les chiffres gardent leur valeur et les lettres de A à Z valent dix et plus. Les valeurs des positions paires sont doublées, on additionne les chiffres de chaque résultat, et le chiffre de contrôle complète le total jusqu'au multiple de dix suivant.
Comment vérifier un CUSIP complet de neuf caractères ?
Choisissez l'option de validation et saisissez les neuf caractères. L'outil indique si le dernier chiffre correspond et, sinon, quel chiffre était attendu, ce qui permet de corriger une faute de frappe avant qu'elle n'entre dans un fichier.
Un CUSIP valide prouve-t-il que le titre existe ?
Non. Un chiffre de contrôle correct montre seulement que les neuf caractères sont bien formés selon la règle CUSIP. L'outil ne consulte aucun référentiel, il ne confirme donc ni l'existence du titre, ni sa cotation, ni son autorisation.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/cusip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cusip":"03783310"}'const res = await fetch("https://api.kit.forhosting.com/enc/cusip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cusip": "03783310"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cusip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cusip": "03783310"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cusip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cusip":"03783310"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cusip":"03783310"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cusip", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"cusip": "03783310"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cusip",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les caractères non CUSIP et les longueurs incorrectes échouent avec une erreur invalid_input claire au lieu d’une corruption silencieuse. Exécutez-la gratuitement dans le navigateur ou appelez l’API KIT au prix publié ; les deux chemins utilisent la même arithmétique pure, sans consultation réseau d’un référentiel de titres.
Comment le chiffre de contrôle CUSIP est calculé
Cet outil applique exactement ce parcours standard ; il n’invente pas de variante maison et nomme toujours l’algorithme cusip dans le JSON afin que les journaux en aval puissent enregistrer quel schéma a protégé le champ.
Mode compute versus mode validate
Le mode compute est le mode par défaut et exige exactement huit caractères : le moteur mappe et pondère le corps, renvoie check_digit sous forme de chaîne d’un caractère, et renvoie cusip comme l’identifiant complet de neuf caractères afin que vous puissiez le stocker ou l’imprimer en une seule chaîne. La réponse indique valid true lorsque le chiffre final stocké correspond à l’expected_check_digit recalculé, et inclut toujours body sans le dernier caractère pour que les interfaces mettent en évidence ce qui a été saisi par rapport à ce que l’algorithme attend. Comme le chemin est purement parse, sans horloge, source aléatoire ni réseau, la même entrée produit toujours le même JSON sur l’outil gratuit du navigateur et sur l’API. À $0.002 par requête réussie, vous pouvez protéger les imports massifs de référentiels de titres, les formulaires d’onboarding et les écrans de saisie d’ordres sans négocier un niveau personnalisé.
Où les chiffres de contrôle CUSIP s’insèrent dans les flux réels
Les systèmes de portefeuille et de performance qui acceptent la saisie manuelle de titres peuvent afficher expected_check_digit à côté d’un champ en échec pour que le personnel corrige une faute de frappe au lieu d’ouvrir un ticket de recherche. Les équipes produit qui construisent des tickets d’ordre ou des listes de suivi peuvent conditionner l’envoi au mode validate avant d’appeler une API de données de marché ou de trading qui rejetterait autrement le symbole avec une erreur moins claire. Dans chaque flux, le contrat est le même : caractères autorisés uniquement, compute ou validate, JSON structuré testable par goldens, comportement identique gratuit dans le navigateur ou via le solde prépayé KIT, et échec honnête lorsque l’entrée n’est pas un corps CUSIP ou un code complet bien formés.
Cas d'intégration
Valider les CUSIP saisis ou importés à l’entrée
Lorsqu’un utilisateur ou un fichier partenaire soumet un CUSIP complet de neuf caractères, appelez le mode validate et bloquez la recherche si valid est false, en affichant expected_check_digit pour aider à corriger une seule faute de frappe.
Questions techniques
Comment calculer un chiffre de contrôle CUSIP avec cette API ?
Envoyez un POST avec cusip égal au corps de huit caractères et mode compute (ou omettez mode). La réponse inclut check_digit et cusip (corps plus chiffre de contrôle).
Comment valider un CUSIP complet de neuf caractères ?
Envoyez un POST avec la chaîne complète de neuf caractères et mode validate. La réponse inclut valid, check_digit, expected_check_digit et body sans le dernier chiffre.
L’outil de chiffre de contrôle CUSIP est-il gratuit ?
L’outil navigateur est gratuit et s’exécute localement. Les appels API utilisent le solde prépayé KIT au prix de base publié $0.002 ; les entrées invalides ne sont jamais facturées.