NPI-Prüfziffer
Die Basis 123456789 erhält die Prüfziffer 3, die vollständige NPI lautet also 1234567893. Geben Sie neun Ziffern ein, um die Kennung eines US-Leistungserbringers im Gesundheitswesen zu ergänzen, oder zehn, um die letzte Ziffer vor einer Abrechnung zu prüfen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Zahl
- 123456789
- Berechnungsmodus
- Compute
- Eingabe
- 123456789
- Präfix
- 80840
- Mit Präfix
- 80840123456789
Der National Provider Identifier der Vereinigten Staaten ist eine zehnstellige Nummer, die einzelne Kliniker und organisatorische Leistungserbringer in Ansprüchen, Einschreibungen und Verzeichnissen unter HIPAA identifiziert. Die ersten neun Ziffern sind die über NPPES vergebene Basis-Kennung; die zehnte ist eine Prüfziffer, die mit dem Luhn-Algorithmus erzeugt wird, nachdem das konstante Präfix 80840 an die Basis angehängt wurde. Diese Regel lässt eine NPI für Prüfsummenzwecke wie eine Kennung im ISO-Stil wirken, ohne sie als Zahlungskarte auszugeben. Diese Fähigkeit implementiert ausschließlich diese CMS-Regel: der Modus compute akzeptiert genau neun Basisziffern und liefert die Prüfziffer plus die vollständige zehnstellige NPI; der Modus validate akzeptiert eine vollständige zehnstellige NPI und meldet, ob die Schlussziffer mit dem neu berechneten Erwartungswert übereinstimmt.
So wird die NPI-Prüfziffer mit dem Präfix 80840 berechnet
Nach der Spezifikation der Centers for Medicare & Medicaid Services hat eine NPI stets zehn Dezimalziffern. Die Positionen eins bis neun bilden die Basis-Kennung (Einzelpersonen beginnen typischerweise mit eins, Organisationen mit zwei; dieses Werkzeug erzwingt den Ausstellertyp jedoch nicht). Position zehn ist die Prüfziffer.
Zur Berechnung konkatenieren Sie die feste fünfstellige Konstante 80840 vor die neunstellige Basis und erhalten eine vierzehnstellige Zeichenkette, die die Nutzlast einer kartenartigen Luhn-Berechnung nachbildet. Wenden Sie den klassischen double-add-double-Luhn-Algorithmus von rechts auf diese vierzehnstellige Zeichenkette an: verdoppeln Sie jede zweite Ziffer, beginnend mit der rechtesten Basisziffer, weil diese Basisziffer nach Anhängen der Prüfziffer auf Position zwei von rechts der vollständigen fünfzehnstelligen ISO-artigen Sequenz sitzt. Ist das Doppelte einer Ziffer größer als neun, subtrahieren Sie neun (gleichwertig: addieren Sie Zehner und Einer des Produkts).
Addieren Sie jeden gewichteten Wert; die Prüfziffer ist zehn minus diese Summe modulo zehn, erneut modulo zehn, sodass die vollständige Sequenz einschließlich Prüfziffer eine durch zehn teilbare Luhn-Summe hat. Die Validierung berechnet die erwartete Ziffer aus den ersten neun Zeichen nach demselben Präfix 80840 neu und vergleicht sie mit der zehnten Ziffer der eingereichten NPI. Der Algorithmus ist deterministisch und lokal: kein NPPES-Registeraufruf, keine Uhr und keine Zufälligkeit.
Gegenüber generischen Karten-Luhn- oder IMEI-Luhn-Werkzeugen ist die Suchintention hier eng: wer einen NPI-Prüfziffer-Rechner für neunstellige Basen oder einen zehnstelligen National-Provider-Identifier-Checker braucht, kein Zahlungs- oder Gerätewerkzeug.
Wo NPI-Prüfziffern in reale Healthcare-Workflows passen
Praxisverwaltungs- und EHR-Anbieter erhalten neunstellige interne Basen in Onboarding-Sandboxes und müssen die offizielle Luhn-Prüfziffer anhängen, bevor eine NPI auf Ansprüchen, Rechnungen oder Provider-Verzeichnissen erscheint. Clearinghouses und Zahler validieren zehnstellige NPIs bei der Anspruchseingangskontrolle, damit eine einzelne Transposition keinen Phantom-Provider und keine abgelehnte 837-Transaktion erzeugt. ETL-Jobs, die Provider-Stammdaten laden, durchlaufen jede NPI-Spalte in einer CSV- oder HL7-Zufuhr, rufen den Modus validate auf und stellen Zeilen mit valid false unter Quarantäne — sowohl menschliche Edits als auch Generator-Fehler.
Behandeln Sie eine bestandene NPI-Prüfung nicht als Beweis, dass der Provider in NPPES aktiv, in einem Staat lizenziert oder bei einem Zahler eingeschrieben ist; sie beweist nur, dass die Luhn-Ziffer unter den CMS-80840-Gewichten für National Provider Identifiers mit der Basis konsistent ist.
Anwendungsfälle
NPI-Spalten in Provider-Stammdaten auditieren
Validieren Sie jede zehnstellige NPI in einer EHR-, Credentialing- oder Clearinghouse-CSV stapelweise und stellen Sie Zeilen unter Quarantäne, deren Prüfziffer nicht mehr mit dem neu berechneten Erwartungswert übereinstimmt.
Häufige Fragen
Was ist eine NPI-Prüfziffer?
Es ist die zehnte Ziffer eines US-National Provider Identifier, berechnet mit dem Luhn-Algorithmus nach Voranstellen der Konstanten 80840 an die ersten neun Ziffern, sodass Tipp- und Scanfehler meist abgefangen werden, bevor die Nummer gespeichert oder abgerechnet wird.
Wie wird die NPI-Prüfziffer berechnet?
Man setzt 80840 vor die neunstellige Basis und wendet das Luhn-Verfahren auf diese vierzehn Ziffern an: Jede zweite Ziffer von rechts wird verdoppelt, von Ergebnissen über neun zieht man neun ab, dann wird alles addiert. Die Prüfziffer ergänzt die Summe zu einem Vielfachen von zehn.
Warum steht 80840 vor der Basis?
Das ist das feste Präfix der CMS-Regel, damit eine NPI dieselbe Prüfziffer erhält wie eine Kartennummer nach Luhn. Es dient nur der Berechnung, die gedruckte NPI bleibt zehnstellig, etwa 1234567893.
Bedeutet eine gültige NPI, dass der Leistungserbringer aktiv ist?
Nein. Ein gültiges Ergebnis zeigt nur, dass die letzte Ziffer zur Berechnung passt. Das Werkzeug fragt das NPPES-Register nicht ab und sagt nichts darüber, ob jemand aktiv, registriert oder zugelassen ist.
Was bedeutet die erste Ziffer einer NPI?
Einzelne Behandelnde haben meist eine NPI, die mit 1 beginnt, Organisationen eine mit 2. Das Werkzeug prüft das nicht: Es nimmt jede neunstellige Basis an und berechnet nur die Prüfziffer.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"number": "123456789"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.npi",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Nichtnumerische Eingaben und falsche Längen scheitern mit invalid_input statt stiller Bereinigung, sodass Sie niemals eine halb bereinigte Kennung speichern. Dieselbe reine Arithmetik läuft kostenlos im Browser und zum veröffentlichten API-Preis, ohne Netzabfrage von NPPES-Registern und ohne die Behauptung, eine gültige Prüfsumme bedeute, dass der Leistungserbringer aktiv, eingeschrieben oder lizenziert sei.
Eingabevertrag, Modi und Fehlerverhalten
Senden Sie ein number-Feld, das nur die Zeichen null bis neun enthält. Falsche Länge ist ein expliziter Fehler, der den Modus und die gesendete Länge nennt — neun für compute, zehn für validate —, sodass Client-Formulare „neun Ziffern nötig“ anzeigen können, ohne zu raten. Leere Strings, fehlendes number und ungültige mode-Werte scheitern vor jeder Luhn-Summe und werden nicht abgerechnet. Validierungsaufgaben, die schlechte Form ablehnen, werden nicht berechnet; eine wohlgeformte zehnstellige Zeichenkette mit einfach falscher Prüfziffer liefert valid false ohne Exception. Leerzeichen, Bindestriche, Buchstaben und Dezimalpunkte werden als nichtnumerische Eingabe mit invalid_input abgelehnt, damit ein still gestrippter Wert nie in den Speicher gelangt. Der Modus compute ist der Standard: die Engine verlangt genau neun Ziffern, liefert check_digit als Ein-Zeichen-String, liefert with_check als die zehnstellige NPI, die Sie drucken oder speichern können, und liefert außerdem prefix (stets 80840) und prefixed (80840 plus die neunstellige Basis) für Audit-Trails und Debugging der CMS-Regel. Der Modus validate verlangt genau zehn Ziffern; die Antwort meldet valid true, wenn die Schlussziffer mit der neu berechneten expected_check_digit übereinstimmt, und enthält stets payload (die ersten neun Ziffern), check_digit, expected_check_digit, prefix, prefixed und length zehn. Alias-Schlüssel wie digits, npi und code werden für dasselbe Payload-Feld akzeptiert, sodass Integrationen, die bereits „npi“ sprechen, nicht umbenennen müssen. Weil der Pfad reines Parse ohne Uhr, Zufallsquelle oder Netz ist, liefert derselbe JSON-Body auf dem kostenlosen Browser-Tool und auf der API zu $0.002 pro erfolgreicher Anfrage stets dasselbe JSON-Ergebnis.
Wo NPI-Prüfziffern in reale Healthcare-Workflows passen
Credentialing- und Roster-Teams berechnen expected_check_digit neu, wenn eine Praxis eine Nummer am Telefon vorliest oder aus einem PDF einfügt, und fangen Tippfehler ab, bevor ein Vertrag oder eine Einschreibedatei eingereicht wird.
Integrationsbeispiele
Eine 9-stellige NPI-Basis für Anspruchs-Fixtures vervollständigen
Rufen Sie den Modus compute mit der neunstelligen Basis auf, speichern Sie with_check und verwenden Sie die zehnstellige NPI in Testansprüchen, Rechnungen oder Sandbox-Providerdatensätzen.
Eingegebene oder importierte NPIs bei der Erfassung prüfen
Wenn ein Formular, eine Roster-Datei oder ein Partner-Feed zehn Ziffern sendet, rufen Sie den Modus validate auf und blockieren Sie die Einschreibung, wenn valid false ist; zeigen Sie expected_check_digit, um einen einzelnen Tippfehler zu korrigieren.
Technische Fragen
Wie berechne ich eine NPI-Prüfziffer mit dieser API?
Senden Sie POST mit number auf genau neun Ziffern und mode compute (oder lassen Sie mode weg). Die Antwort enthält check_digit, with_check (die vollständige zehnstellige NPI) und prefix 80840 zur Prüfung der CMS-Regel.
Wie validiere ich eine vollständige zehnstellige NPI?
Senden Sie POST mit der zehnstelligen Zeichenkette und mode validate. Die Antwort enthält valid, check_digit, expected_check_digit und payload (Ziffern ohne die letzte).
Was passiert bei falscher Länge, Buchstaben oder Bindestrichen?
Nichtnumerische Eingaben und Längen ungleich neun (compute) oder zehn (validate) werden mit invalid_input abgelehnt. Fehlgeschlagene Validierungsaufgaben werden nicht abgerechnet.
Ist das NPI-Prüfziffer-Werkzeug kostenlos?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Aufrufe nutzen das Prepaid-KIT-Guthaben zum veröffentlichten Basispreis $0.002; ungültige Eingaben werden nie berechnet.