NPIチェックディジット
基本番号123456789のチェックディジットは3で、NPI全体は1234567893になります。9桁を入れれば番号を完成でき、10桁を入れれば請求や提供者名簿に載せる前に最後の数字を確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 123456789
- 計算モード
- Compute
- 入力
- 123456789
- プレフィックス
- 80840
- 接頭辞付き
- 80840123456789
米国のNational Provider Identifierは、HIPAA下の請求・登録・ディレクトリで個人臨床医と組織プロバイダを識別する10桁の番号です。先頭9桁はNPPES経由で発行されるベース識別子で、10桁目は定数接頭辞80840をベースに付した後にLuhnアルゴリズムで算出されるチェックディジットです。この規則によりNPIはチェックサム目的ではISO様式の識別子のように振る舞いますが、支払いカードであるとは主張しません。本機能はそのCMS規則のみを実装します。computeモードはちょうど9桁のベースを受け取り、チェックディジットと完全な10桁NPIを返します。validateモードは完全な10桁NPIを受け取り、末尾桁が再計算した期待値と一致するかを報告します。
接頭辞80840によるNPIチェックディジットの計算方法
Centers for Medicare & Medicaid Servicesの仕様では、NPIは常に10桁の十進数です。1〜9桁目がベース識別子を形成します(個人は通常1で始まり組織は2ですが、本ツールは発行者種別を強制しません)。10桁目がチェックディジットです。
その14桁文字列の右から古典的なdouble-add-doubleのLuhnを適用します。右端のベース桁から1つおきに倍加します。チェックディジットを付けた後、その右端ベース桁は完全な15桁のISO様式列の右から2番目の位置になるためです。
ある桁の2倍が9を超える場合は9を引きます(同等に、積の十の位と一の位を足します)。重み付きの各値を合計し、チェックディジットは10からその和の10剰余を引いたもの(再び10剰余)とし、チェックディジットを含む完全列のLuhn合計が10で割り切れるようにします。
検証では同じ接頭辞80840の後の先頭9文字から期待桁を再計算し、提出されたNPIの10桁目と比較します。アルゴリズムは決定的でローカルです。NPPES登録簿への呼び出しもなく、時計もなく、乱数もありません。
よく知られたフィクスチャはベース123456789で、チェックディジット3と完全NPI 1234567893になります。本ツールはNPIを氏名に解決せず、タクソノミーや登録状態を証明せず、CMSにも接続しません。公式の80840 Luhn規則の下で桁列が整形式であることだけを証明します。
一般的なカードLuhnやIMEI Luhnツールと比べ、ここでの検索意図は狭いです。9桁ベース向けのNPIチェックディジット計算機や10桁のNational Provider Identifierチェッカーを求める利用者向けであり、支払いまたは機器ツールではありません。
入力契約、モード、エラー動作
computeモードが既定です。validateモードはちょうど10桁を要求します。長さ誤りはモードと送った長さを名指しする明示エラーです(computeは9、validateは10)。
クライアントフォームは推測なしに「9桁が必要」と表示できます。空文字列、number欠落、無効なmode値はLuhn合計の前に失敗し、課金されません。
すでに9桁を持つラベル、テストフィクスチャ、内部生成器のベース識別子を完成させるときはcomputeを、ユーザー・パートナーファイル・スキャナからの完全NPIで請求・名簿読込・ディレクトリ取込をゲートするときはvalidateを優先してください。
形状不良を拒否する検証タスクは課金されず、単にチェックディジットが誤った整形式の10桁列は例外を投げずにvalid falseを返します。
実際のヘルスケア業務でのNPIチェックディジットの位置づけ
診療管理とEHRベンダーはオンボーディングのサンドボックスで9桁の内部ベースを受け取り、請求・明細・プロバイダディレクトリにNPIが現れる前に公式のLuhnチェックディジットを付与する必要があります。クリアリングハウスと支払者は請求受付で10桁NPIを検証し、1回の転置で幽霊プロバイダや拒否された837トランザクションが生まれないようにします。
プロバイダマスタファイルを読み込むETLジョブはCSVまたはHL7フィードの各NPI列を走査し、validateモードを呼び、validがfalseの行を隔離します。人手編集と生成器のオフバイワンの両方を捉えます。どの業務でも契約は同じです。
合格したNPIチェックを、NPPESで稼働中・州で免許あり・支払者に登録済みの証明と見なさないでください。それはCMS 80840の重みの下でLuhn桁がベースと一致することだけを示します。
活用例
プロバイダマスタデータのNPI列を監査する
EHR・資格審査・クリアリングハウスのCSVにある各10桁NPIを一括検証し、チェックディジットが再計算の期待値と一致しなくなった行を隔離します。
よくある質問
NPIチェックディジットとは何ですか?
米国National Provider Identifierの10桁目で、先頭9桁に定数80840を接頭辞として付けた後にLuhnアルゴリズムで計算され、保存や請求の前に入力・読取の誤りを多く捕捉します。
NPIのチェックディジットはどう計算しますか?
9桁の基本番号の前に80840を付け、14桁にLuhn方式を使います。右から1つおきに数字を2倍し、9を超えたら9を引いてすべて足します。合計を10の倍数にする数字がチェックディジットです。
基本番号の前に80840を付けるのはなぜですか?
CMSの規則で決められた固定の接頭辞で、カード番号と同じLuhn方式のチェックディジットになるようにするためです。計算にだけ使い、印字するNPIは1234567893のように10桁のままです。
NPIが有効なら提供者は現役ですか?
いいえ。有効という結果は、最後の数字が計算と一致することを示すだけです。NPPESの登録簿は照会しないため、提供者が現役か、登録済みか、免許があるかは分かりません。
NPIの最初の数字には意味がありますか?
個人の医療者は1で、組織は2で始まることが一般的です。ただし、このツールはその点を確認せず、どの9桁の基本番号でもチェックディジットだけを計算します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"number": "123456789"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.npi",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
非数値入力と誤った長さは黙って除去せずinvalid_inputで失敗するため、半端に整形された識別子を永続化することはありません。同じ純粋な算術がブラウザでは無料で、公開API価格でも動作し、NPPES登録簿へのネットワーク照会はなく、有効なチェックサムがプロバイダの稼働・登録・免許を意味するとも主張しません。
接頭辞80840によるNPIチェックディジットの計算方法
計算するには、固定の5桁定数80840を9桁ベースの前に連結し、カード番号風のLuhn計算のペイロードを模した14桁の文字列を作ります。
入力契約、モード、エラー動作
0から9の文字だけを含むnumberフィールドを送ってください。空白、ハイフン、文字、小数点は非数値入力としてinvalid_inputで拒否され、黙って除去された値が保存に到達しないようにします。エンジンはちょうど9桁を要求し、check_digitを1文字の文字列で返し、印刷や永続化に使える10桁NPIとしてwith_checkを返し、CMS規則の監査とデバッグ用にprefix(常に80840)とprefixed(80840に9桁ベースを加えたもの)も返します。応答は末尾桁が再計算したexpected_check_digitと一致するときvalid trueを報告し、常にpayload(先頭9桁)、check_digit、expected_check_digit、prefix、prefixed、length 10を含みます。digits、npi、codeなどのエイリアスは同じペイロード欄として受け付けられ、すでに「npi」と呼ぶ統合はリネーム不要です。経路は時計・乱数源・ネットワークのない純粋なparseのため、同じJSON本文は無料ブラウザツールと成功リクエストあたり$0.002のAPIで常に同じJSON結果になります。
実際のヘルスケア業務でのNPIチェックディジットの位置づけ
資格審査と名簿チームは、クリニックが電話で番号を読み上げたりPDFから貼り付けたりするときにexpected_check_digitを再計算し、契約や登録ファイルを提出する前に打ち間違いを捕捉します。結合テストは1234567893のような既知フィクスチャでwith_checkを固定し、フォームライブラリ、ラベルプリンタ、本APIがずれないようにします。
連携の活用例
請求フィクスチャ用に9桁NPIベースを完成させる
9桁ベースでcomputeモードを呼び出し、with_checkを保存し、テスト請求・明細・サンドボックスのプロバイダ記録で10桁NPIを使います。
入力時に手入力・取込NPIを検証する
フォーム、名簿ファイル、パートナーフィードが10桁を送ったときはvalidateモードを呼び、validがfalseなら登録をブロックし、expected_check_digitを示して1桁の打ち間違い修正を助けます。
技術的な質問
このAPIでNPIチェックディジットを計算するには?
numberをちょうど9桁にしmode compute(またはmode省略)でPOSTします。応答にはcheck_digit、with_check(完全な10桁NPI)、CMS規則監査用のprefix 80840が含まれます。
完全な10桁NPIを検証するには?
10桁の文字列とmode validateでPOSTします。応答にはvalid、check_digit、expected_check_digit、payload(末尾を除く桁)が含まれます。
長さ誤り、文字、ハイフンではどうなりますか?
非数値入力と、computeの9桁・validateの10桁以外の長さはinvalid_inputで拒否されます。失敗した検証タスクは課金されません。
NPIチェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開の基本価格$0.002で前払いKIT残高を使い、無効入力は課金されません。