Cifra di controllo NPI
La base 123456789 riceve la cifra di controllo 3, quindi l'NPI completo è 1234567893. Inserisca nove cifre per completare l'identificativo di un fornitore sanitario statunitense, oppure dieci per confermarne l'ultima cifra prima di una richiesta di rimborso o di un elenco. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Numero
- 123456789
- Modalità di calcolo
- Compute
- Input
- 123456789
- Prefisso
- 80840
- Con prefisso
- 80840123456789
Il National Provider Identifier degli Stati Uniti è un numero di dieci cifre che identifica clinici individuali e fornitori organizzativi in richieste di rimborso, iscrizioni e elenchi sotto HIPAA. Le prime nove cifre sono l’identificatore base emesso tramite NPPES; la decima è una cifra di controllo prodotta dall’algoritmo di Luhn dopo l’applicazione del prefisso costante 80840 alla base. Tale regola fa sì che un NPI si comporti come un identificatore in stile ISO ai fini del checksum, senza pretendere che sia una carta di pagamento. Questa capacità implementa solo quella regola CMS: la modalità compute accetta esattamente nove cifre base e restituisce la cifra di controllo più l’NPI completo a dieci cifre; la modalità validate accetta un NPI completo a dieci cifre e indica se la cifra finale coincide con il valore atteso ricalcolato.
Come si calcola la cifra di controllo NPI con il prefisso 80840
Secondo la specifica dei Centers for Medicare & Medicaid Services, un NPI ha sempre dieci cifre decimali. Le posizioni da uno a nove formano l’identificatore base (gli individui di solito iniziano con uno, le organizzazioni con due, sebbene questo strumento non imponga il tipo di emittente). La posizione dieci è la cifra di controllo.
Applica l’algoritmo classico double-add-double di Luhn da destra di quella stringa di quattordici: raddoppia ogni seconda cifra a partire dalla cifra base più a destra, perché una volta aggiunta la cifra di controllo quella cifra base occupa la posizione due da destra della sequenza completa di quindici in stile ISO. Quando il doppio di una cifra è maggiore di nove, sottrai nove (in modo equivalente, somma le decine e le unità del prodotto).
Somma ogni valore ponderato; la cifra di controllo è dieci meno quella somma modulo dieci, di nuovo modulo dieci, così che la sequenza completa inclusa la cifra di controllo abbia un totale Luhn divisibile per dieci. La convalida ricalcola la cifra attesa dalle prime nove caratteri dopo lo stesso prefisso 80840 e la confronta con la decima cifra dell’NPI inviato. L’algoritmo è deterministico e locale: nessuna chiamata al registro NPPES, nessun orologio e nessuna casualità.
Rispetto agli strumenti Luhn generici per carte o IMEI, l’intento di ricerca qui è stretto: chi ha bisogno di una calcolatrice della cifra di controllo NPI per basi a nove cifre o di un verificatore di National Provider Identifier a dieci, non di uno strumento di pagamento o di dispositivo.
Dove le cifre di controllo NPI si inseriscono nei flussi sanitari reali
I fornitori di practice management e EHR ricevono basi interne a nove cifre durante i sandbox di onboarding e devono aggiungere la cifra di controllo Luhn ufficiale prima che un NPI compaia su richieste, fatture o elenchi di fornitori. Clearinghouse e pagatori convalidano NPI a dieci cifre all’ingresso delle richieste affinché una sola trasposizione non crei un fornitore fantasma e una transazione 837 rifiutata.
I job ETL che caricano file master dei fornitori scandiscono ogni colonna NPI in un CSV o feed HL7, chiamano la modalità validate e mettono in quarantena le righe in cui valid è false, intercettando sia modifiche umane sia bug di generatori. Non tratti un NPI che passa il controllo come prova che il fornitore sia attivo in NPPES, abilitato in uno Stato o iscritto presso un pagatore; dimostra solo che la cifra Luhn è coerente con la base secondo i pesi CMS 80840 usati per i National Provider Identifiers.
Casi d'uso
Auditare le colonne NPI nei master data dei fornitori
Convalidi in batch ogni NPI a dieci cifre in un CSV di EHR, credentialing o clearinghouse e metta in quarantena le righe la cui cifra di controllo non coincide più con il valore atteso ricalcolato.
Domande frequenti
Cos’è una cifra di controllo NPI?
È la decima cifra di un National Provider Identifier statunitense, calcolata con l’algoritmo di Luhn dopo aver prefissato la costante 80840 alle prime nove cifre, così errori di digitazione e di scansione vengono di solito intercettati prima di memorizzare o fatturare il numero.
Cosa succede con lunghezza errata, lettere o trattini?
Le attività di convalida fallite non vengono addebitate.
Lo strumento di cifra di controllo NPI è gratuito?
Lo strumento del browser è gratuito e viene eseguito in locale.
Come si calcola la cifra di controllo dell'NPI?
Si mette 80840 davanti alla base di nove cifre e si applica il metodo di Luhn alle quattordici cifre: si raddoppia una cifra ogni due partendo da destra, si toglie nove a ogni risultato oltre nove e si somma tutto. La cifra di controllo porta il totale a un multiplo di dieci.
Un NPI valido significa che il fornitore è attivo?
No. Un risultato valido indica solo che l'ultima cifra coincide con il calcolo. Lo strumento non consulta il registro NPPES e non dice se il fornitore è attivo, iscritto o abilitato.
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/npi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"123456789"}'const res = await fetch("https://api.kit.forhosting.com/enc/npi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "123456789"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/npi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "123456789"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/npi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"123456789"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"123456789"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/npi", 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": "123456789"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.npi",
"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 uno stripping silenzioso, così Lei non persiste mai un identificatore a metà. La stessa aritmetica pura viene eseguita gratis nel browser e al prezzo pubblicato dell’API, senza consultazione di rete ai registri NPPES e senza affermare che un checksum valido significhi che il fornitore sia attivo, iscritto o abilitato.
Come si calcola la cifra di controllo NPI con il prefisso 80840
Per calcolarla, concatena la costante fissa di cinque cifre 80840 davanti alla base di nove, producendo una stringa di quattordici cifre che imita il payload di un calcolo Luhn in stile numero di carta.
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 —nove per compute, dieci per validate— così i form client possono mostrare «servono nove 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 forma errata non vengono addebitate; una stringa ben formata di dieci cifre che ha semplicemente la cifra di controllo sbagliata restituisce valid false senza lanciare errori. Spazi, trattini, lettere e punti decimali vengono rifiutati come input non numerico con invalid_input affinché un valore silenziosamente troncato non raggiunga mai l’archiviazione. La modalità compute è quella predefinita: il motore richiede esattamente nove cifre, restituisce check_digit come stringa di un carattere, restituisce with_check come l’NPI a dieci cifre che Lei può stampare o persistere, e restituisce anche prefix (sempre 80840) e prefixed (80840 più la base di nove) per audit trail e debug della regola CMS. La modalità validate richiede esattamente dieci cifre; la risposta indica valid true quando la cifra finale coincide con expected_check_digit ricalcolato, e include sempre payload (le prime nove cifre), check_digit, expected_check_digit, prefix, prefixed e length dieci. Alias come digits, npi e code sono accettati per lo stesso campo di payload, così le integrazioni che già parlano di «npi» non devono rinominare. Poiché il percorso è parse puro senza orologio, fonte casuale o 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 NPI si inseriscono nei flussi sanitari reali
I team di credentialing e di roster ricalcolano expected_check_digit quando una clinica legge un numero al telefono o lo incolla da un PDF, intercettando errori di battitura prima dell’invio di un contratto o di un file di iscrizione.
Casi di integrazione
Completare una base NPI a 9 cifre per fixture di richieste
Chiami la modalità compute con la base di nove cifre, memorizzi with_check e usi l’NPI a dieci in richieste di test, fatture o record sandbox di fornitori.
Convalidare NPI digitati o importati all’ingresso
Quando un form, un file di roster o un feed partner invia dieci cifre, chiami la modalità validate e blocchi l’iscrizione se valid è false, mostrando expected_check_digit per correggere un solo errore di battitura.
Domande tecniche
Come si calcola una cifra di controllo NPI con questa API?
Invii un POST con number impostato a esattamente nove cifre e mode compute (oppure ometta mode). La risposta include check_digit, with_check (l’NPI completo a dieci cifre) e prefix 80840 per l’audit della regola CMS.
Come si convalida un NPI completo a dieci cifre?
Invii un POST con la stringa di dieci cifre e mode validate. La risposta include valid, check_digit, expected_check_digit e payload (cifre senza l’ultima).