Cifra di controllo CNP rumeno
Inserisca 180010122114 e otterrà la cifra di controllo 4, quindi il CNP completo è 1800101221144; oppure incolli le tredici cifre per vedere se l'ultima rispetta la ponderazione ufficiale. Utile per risorse umane, buste paga e anagrafiche clienti. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Cnp
- 180010122114
- Modalità di calcolo
- Compute
- Input
- 180010122114
- Cifra di controllo
- 4
- Con cifra di controllo
- 1800101221144
- Formattato
- 1-800101-22-114-4
Il codice numerico personale rumeno (CNP, Cod Numeric Personal) è un identificatore a tredici cifre usato su registri di stato civile, contratti di lavoro, dichiarazioni fiscali, KYC bancario e moduli dei servizi pubblici in Romania. L'ultima cifra è una cifra di controllo derivata da una ponderazione fissa delle prime dodici cifre secondo la regola modulare ufficiale del layout CNP. Una sola cifra digitata male o una coppia scambiata spesso interrompe quella somma di controllo, quindi convalidare il CNP prima di salvare un record HR, aprire un profilo cliente o accettare un file partner intercetta molti errori di digitazione per tempo. Questa capacità calcola la cifra di controllo CNP rumeno per un carico di dodici cifre (con o senza spazi e trattini comuni), oppure convalida un numero completo a tredici cifre che include già la cifra finale, e segnala l'input non valido invece di inventare una cifra in silenzio.
Che cos'è la cifra di controllo CNP rumeno e come funzionano i pesi
Un CNP codifica sesso e secolo, data di nascita, contea di emissione e un numero di serie in un layout fisso a tredici cifre usato dai sistemi amministrativi, fiscali e commerciali rumeni. I moduli a volte inseriscono spazi o trattini per la leggibilità, ma il valore sottostante è sempre di tredici cifre decimali. Le prime dodici formano il corpo; la tredicesima è interamente determinata da un algoritmo di controllo pubblico e non viene scelta liberamente.
La ponderazione ufficiale moltiplica quelle dodici cifre, da sinistra a destra, per la sequenza costante due, sette, nove, uno, quattro, sei, tre, cinque, otto, due, sette e nove — la stringa di pesi 279146358279. I prodotti vengono sommati e il resto di quella somma modulo undici è la cifra di controllo candidata. Quando il resto è da zero a nove, quel valore è la cifra di controllo e completa una stringa CNP ben formata.
Quando il resto è dieci, la cifra di controllo è definita come uno, non dieci, così ogni corpo di dodici cifre mappa esattamente a una cifra finale da zero a nove. Rispetto ai pesi del NIP polacco o alle due cifre mod-undici del fødselsnummer norvegese, la regola CNP rumena è specifica di questo layout a tredici cifre e di questa stringa a dodici posizioni.
Non interroga portali governativi, non dimostra che una persona esista, non decodifica genere o contea né assegna uno stato legale — solo che la stringa di cifre è coerente con l'algoritmo di controllo pubblicato.
Dove le cifre di controllo CNP si inseriscono nei flussi HR, bancari e amministrativi
I sistemi di risorse umane e paghe memorizzano il CNP del dipendente su ogni documento di lavoro rumeno legale; una sola cifra digitata male in onboarding può far fallire i successivi invii a previdenza o fisco. I flussi KYC bancari e fintech che raccolgono un codice numerico personale rumeno possono ricalcolare la cifra di controllo senza chiamare un registro esterno, filtrando presto rumore OCR e catture parziali.
I team di prodotto che già espongono strumenti generali Luhn o ISO 7064 devono comunque usare questa capacità specifica CNP per i campi di identità personale rumena affinché pesi, limiti di lunghezza e gestione del resto dieci corrispondano al dominio. Le landing educative e SEO che si posizionano su frasi come cifra di controllo CNP rumeno o validatore CNP Romania necessitano di uno strumento gratuito live il cui percorso browser coincida con l'automazione così gli screenshot dei tutorial restano accurati.
Non tratti una cifra di controllo CNP corretta come prova che la persona sia correttamente identificata, viva, autorizzata o presente in un registro ufficiale — dimostra solo che la stringa di cifre è coerente con l'algoritmo di controllo CNP rumeno.
Casi d'uso
Revisionare colonne CNP in file partner e paghe
Convalidi in batch ogni CNP di un import CSV e isoli le righe la cui cifra di controllo non coincide più con il valore atteso ricalcolato.
Domande frequenti
Come si calcola la cifra di controllo del CNP rumeno?
Moltiplichi le prime dodici cifre per i pesi 2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7 e 9 (la stringa costante 279146358279), sommi i prodotti e prenda il resto modulo 11. Se il resto è 0–9 quella è la cifra di controllo; se è 10 la cifra di controllo è 1.
Qual è la differenza tra le modalità compute e validate?
Compute prende dodici cifre e restituisce la cifra di controllo e il CNP completo a tredici cifre. Validate prende tredici cifre inclusa quella finale e indica se coincide con la cifra di controllo ricalcolata.
Sono ammessi spazi e trattini?
Sì. I separatori comuni vengono rimossi prima dell'analisi.
Cosa succede se la cifra di controllo è sbagliata?
In modalità validate la risposta include ancora la cifra attesa e valid è false.
Cosa succede se il resto della somma ponderata è 10?
In quel caso la cifra di controllo è 1, non 10. Questa regola speciale fa sì che ogni corpo di dodici cifre abbia esattamente una cifra finale compresa tra 0 e 9.
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/cnp-romania \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cnp":"180010122114"}'const res = await fetch("https://api.kit.forhosting.com/enc/cnp-romania", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cnp": "180010122114"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cnp-romania",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cnp": "180010122114"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cnp-romania", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cnp":"180010122114"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cnp":"180010122114"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cnp-romania", 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
{
"cnp": "180010122114"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cnp_romania",
"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
La usi gratis nel browser o chiami l'API KIT al prezzo pubblicato; entrambi i percorsi eseguono la stessa aritmetica deterministica senza consultazione di rete e senza registro di persone reali.
Che cos'è la cifra di controllo CNP rumeno e come funzionano i pesi
Rispetto al Luhn mod-dieci delle carte di pagamento, lo schema CNP usa un vettore di pesi fisso da sinistra a destra e il modulo undici con una regola speciale per il resto dieci, quindi non deve riutilizzare un validatore Luhn sui campi di identità personale rumena. Sapere quale schema Le serve evita una falsa fiducia quando un'utilità generica di cifra di controllo accetta una stringa che non è un CNP ben formato. Questo strumento applica la ponderazione standard su cifre pure dopo la rimozione opzionale di spazi e trattini.
Come calcolare una cifra di controllo o convalidare un CNP completo
Invii un campo cnp con cifre da zero a nove, opzionalmente separate da spazi o trattini. La modalità validate si aspetta un numero completo a tredici cifre inclusa la cifra di controllo finale (ad esempio 1800101221144 o una forma con trattini a tredici cifre). Stringhe vuote, cnp mancante, valori di mode non validi e lunghezze errate falliscono prima di qualsiasi somma ponderata e non vengono fatturati. Preferisca compute quando assembla un CNP da un corpo di dodici cifre noto; preferisca validate quando un utente, un file partner o un'etichetta scansionata fornisce un numero completo e Le serve un filtro booleano prima di una consultazione a un registro o a dati anagrafici. Lettere, altra punteggiatura, trattini doppi o trattini iniziali o finali vengono rifiutati come input malformato con invalid_input così non accetta mai un valore ripulito in silenzio. La modalità compute è predefinita: fornisca esattamente dodici cifre senza la cifra di controllo (ad esempio 180010122114) e il motore restituisce check_digit come stringa di un carattere, with_check come stringa completa a tredici cifre inclusa quella cifra, e formatted nel raggruppamento leggibile S-YYMMDD-JJ-NNN-C. La risposta riporta valid true quando la cifra ricalcolata coincide con l'ultima, e include sempre check_digit, expected_check_digit, payload senza l'ultima cifra, weighted_sum_mod11 e formatted per una visualizzazione coerente. Poiché il percorso è parse puro, senza orologio, fonte casuale o rete, lo stesso input produce sempre lo stesso JSON sullo strumento gratuito del browser e sull'API. A $0.002 per richiesta riuscita può filtrare import HR massivi, moduli di onboarding e job ETL senza negoziare un livello personalizzato.
Dove le cifre di controllo CNP si inseriscono nei flussi HR, bancari e amministrativi
La modalità validate in ingresso blocca il salvataggio quando valid è false e può mostrare expected_check_digit così l'operatore corregge il modulo prima di scrivere il record. I portali di assicurazioni, sanità e servizi pubblici ricevono CNP da moduli e file partner dove una cifra finale errata rifiuterebbe un intero lotto; un oracolo deterministico che restituisce valid e with_check consente di segnalare le righe prima della produzione.
Casi di integrazione
Filtrare i campi CNP su moduli HR e di onboarding
Quando un utente invia un CNP rumeno completo, chiami la modalità validate e blocchi il salvataggio se valid è false, mostrando expected_check_digit per correggere un solo errore di digitazione prima di scrivere il record dipendente.
Calcolare la cifra finale nel completare gli identificatori
Da un corpo di dodici cifre, chiami la modalità compute e memorizzi with_check o formatted affinché ogni nuova stringa CNP porti la cifra finale corretta prima di stampa, export o generazione di pratiche.
Domande tecniche
Quanto costa la calcolatrice della cifra di controllo CNP rumeno?
Lo strumento browser è gratuito. Le richieste API usano il saldo KIT prepagato a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.