Cifra controllo SIN Canada
La base 04645428 riceve la cifra di controllo 6, quindi il SIN completo è 046454286. Inserisca otto cifre per calcolare la cifra Luhn o nove per convalidare un numero completo, e fermi i refusi prima che arrivino a un modulo fiscale o a una busta 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
- 04645428
- Modalità di calcolo
- Compute
- Input
- 04645428
- Cifra di controllo
- 6
- Con cifra di controllo
- 046454286
Il Social Insurance Number canadese (SIN) è un identificatore a nove cifre usato per dichiarazioni fiscali, lavoro, prestazioni e molti sistemi governativi e di paghe in Canada. Le prime otto cifre formano la base emessa alla persona; la nona è una cifra di controllo prodotta dall'algoritmo di Luhn per intercettare errori di una cifra e la maggior parte delle trasposizioni prima che il numero sia memorizzato o trasmesso. Questa capacità implementa solo quella regola Luhn ufficiale: la modalità compute accetta esattamente otto cifre base e restituisce la cifra di controllo più il SIN completo a nove; la modalità validate accetta un SIN completo a nove e indica se la cifra finale coincide con il valore atteso ricalcolato.
Come si calcola la cifra di controllo Luhn del SIN canadese
Secondo la regola in stile Service Canada per i Social Insurance Numbers, un SIN ha sempre nove cifre decimali. Le posizioni da uno a otto formano l'identificatore base; la posizione nove è la cifra di controllo. Per calcolarla, prenda la base di otto cifre e applichi l'algoritmo classico double-add-double di Luhn da destra di quella base: raddoppi ogni seconda cifra partendo dalla cifra base più a destra, perché una volta aggiunta la cifra di controllo quella base occupa la posizione due da destra della sequenza completa a nove.
Quando il doppio di una cifra è maggiore di nove, sottragga nove (in modo equivalente, sommi le decine e le unità del prodotto). Sommi ogni valore ponderato; la cifra di controllo è dieci meno quella somma modulo dieci, modulo dieci di nuovo, così la sequenza completa a nove inclusa la cifra di controllo ha un totale Luhn divisibile per dieci. La convalida ricalcola la cifra attesa dalle prime otto caratteri e la confronta con la nona cifra del SIN inviato.
L'algoritmo è deterministico e locale: nessuna chiamata a un registro governativo, nessun orologio e nessuna casualità. Rispetto agli strumenti Luhn generici di carte, NPI o IMEI, l'intento di ricerca qui è stretto: chi ha bisogno di un calcolatore di cifra di controllo del SIN canadese per basi di otto cifre o di un verificatore di Social Insurance Number a nove, non di uno strumento di pagamento, sanitario o di dispositivo.
Dove le cifre di controllo del SIN canadese si inseriscono nei flussi reali
I fornitori di paghe e HRIS ricevono basi interne di otto cifre nelle sandbox di onboarding e devono aggiungere la cifra di controllo Luhn ufficiale prima che un SIN compaia su ricevute fiscali, moduli di deposito diretto o anagrafiche dipendenti. Il software fiscale e gli amministratori di prestazioni convalidano SIN a nove cifre in ingresso affinché una sola trasposizione non crei un dipendente fantasma né un invio T4 o ROE respinto.
I job ETL che caricano i file anagrafici dipendenti scorrono ogni colonna SIN in un CSV o feed HR, chiamano la modalità validate e mettono in quarantena le righe in cui valid è false, intercettando sia modifiche umane sia bug dei generatori.
Non tratti un SIN che supera il controllo come prova che il numero sia attualmente assegnato da Service Canada, che il titolare sia eleggibile a una prestazione o che l'identità sia stata verificata; dimostra solo che la cifra Luhn è coerente con la base sotto i pesi usati per i Social Insurance Numbers canadesi. Tratti i SIN reali come informazioni personali sensibili: crittografi a riposo, limiti l'accesso e non registri mai i numeri completi nella telemetria applicativa.
Casi d'uso
Revisionare colonne SIN nei dati anagrafici dipendenti
Convalidi in batch ogni SIN a nove cifre in un CSV di paghe, prestazioni o tasse e metta in quarantena le righe la cui cifra di controllo non corrisponde più al valore atteso ricalcolato.
Domande frequenti
Cos'è la cifra di controllo di un SIN canadese?
È la nona cifra di un Social Insurance Number canadese, calcolata con l'algoritmo di Luhn sulle prime otto, così errori di digitazione e di scansione sono di solito intercettati prima che il numero sia memorizzato o presentato.
Cosa succede con lunghezza errata, lettere o trattini?
Le attività di convalida fallite non vengono addebitate.
Lo strumento di cifra di controllo del SIN canadese è gratuito?
Lo strumento nel browser è gratuito e gira in locale.
Come si calcola la cifra di controllo del SIN?
Partendo dall'ultima cifra della base, si raddoppia una cifra ogni due e a ogni risultato maggiore di 9 si sottrae 9. Si sommano tutti i valori e la cifra di controllo porta il totale a un multiplo di dieci. Per 04645428 è 6.
Un SIN valido significa che è stato davvero emesso?
No. Una cifra di controllo corretta indica solo che il numero è ben formato. Lo strumento non consulta alcun registro governativo, quindi non può sapere se il SIN è stato emesso, è attivo o appartiene a chi l'ha fornito.
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/sin-canada \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"04645428"}'const res = await fetch("https://api.kit.forhosting.com/enc/sin-canada", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "04645428"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/sin-canada",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "04645428"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/sin-canada", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"04645428"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"04645428"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/sin-canada", 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": "04645428"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.sin_canada",
"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 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 ai registri governativi e senza affermare che un checksum valido significhi che il SIN sia attivo, emesso o privo di frode.
Contratto di input, modalità e comportamento di errore
Invii un campo number che contenga solo caratteri da zero a nove. Una lunghezza errata è un errore esplicito che nomina la modalità e la lunghezza inviata —otto per compute, nove per validate— così i moduli client possono mostrare «servono otto cifre» senza indovinare. Stringhe vuote, number mancante e valori di mode non validi falliscono prima di qualsiasi somma Luhn e non vengono fatturati. Le attività di convalida che rifiutano una forma errata non sono addebitate; una stringa ben formata di nove cifre che ha semplicemente la cifra di controllo sbagliata restituisce valid false senza lanciare eccezioni. Non usi mai questo strumento per inventare SIN reali di persone viventi: usi solo basi sintetiche o autorizzate in sviluppo e conservi i SIN reali secondo le politiche di privacy e sicurezza della Sua organizzazione. Spazi, trattini, lettere e punti decimali sono rifiutati come input non numerico con invalid_input affinché un valore tagliato in silenzio non raggiunga mai l'archiviazione. La modalità validate richiede esattamente nove cifre; la risposta indica valid true quando la cifra finale coincide con l'expected_check_digit ricalcolato, e include sempre payload (le prime otto cifre), check_digit, expected_check_digit e length nove. Alias come digits, sin e code sono accettati per lo stesso campo di payload così le integrazioni che già parlano di «sin» non devono rinominare. Poiché il percorso è parse puro senza orologio, fonte 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 del SIN canadese si inseriscono nei flussi reali
I team di prestazioni e di assicurazione contro la disoccupazione ricalcolano expected_check_digit quando un cliente legge un numero al telefono o lo incolla da un PDF, intercettando errori di battitura prima dell'invio di un fascicolo di richiesta. In ogni flusso il contratto è lo stesso: solo cifre, lunghezza fissa per modalità, JSON strutturato che Lei può testare con goldens, comportamento identico tra browser gratuito e API prepagata, e invalid_input onesto quando la stringa non è una sequenza pura di cifre della lunghezza corretta.
Casi di integrazione
Completare una base SIN di 8 cifre per fixture di paghe
Chiami la modalità compute con la base di otto cifre, memorizzi with_check e usi il SIN a nove in anagrafiche di paghe di test, ricevute fiscali o dipendenti sandbox.
Convalidare SIN digitati o importati in ingresso
Quando un modulo, un file HRIS o un feed partner invia nove cifre, chiami la modalità validate e blocchi l'iscrizione se valid è false, mostrando expected_check_digit per correggere un errore di una sola cifra.
Domande tecniche
Come calcolo la cifra di controllo di un SIN con questa API?
Invii un POST con number impostato a esattamente otto cifre e mode compute (o ometta mode). La risposta include check_digit e with_check (il SIN completo a nove cifre).
Come convalidare un SIN completo a nove cifre?
Invii un POST con la stringa di nove cifre e mode validate. La risposta include valid, check_digit, expected_check_digit e payload (le cifre senza l'ultima).