ForHosting KIT · 検証・チェック

カード番号のチェックディジットを検証

支払い画面に進む前に、打ち間違えたカード番号を見つけられます。4242 4242 4242 4242はルーンの検査を通り、Visaと判定されます。1桁でも違えばほぼ必ず不合格になります。番号は保存されません。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
数
4242 4242 4242 4242
結果
カードブランド
Visa

クレジットカード番号の末尾にあるチェックディジットをLuhnアルゴリズムで検証し、桁の入力ミスがないかを確認する機能です。番号は当方のサーバーへ送信されず、保存も記録もされません。

ルーンの検査とは

ルーンアルゴリズムは、カード番号の右から数えて2桁ごとに数字を2倍し、その結果を2倍しなかった数字と足し合わせて、合計が10の倍数になるかを確かめる方法です。正しく発行されたカード番号は、すべてこの計算が合うように作られています。名前は、1954年にこの方法の特許を取ったIBMの技術者ハンス・ピーター・ルーンに由来します。手計算や当時の機械式計算機でも扱えるほど単純に作られており、表を調べる必要もありません。結果には、番号の先頭の数字と桁数から判断したカードブランド(Visa、Mastercard、Amexなど)も表示されます。

役立つ場面と限界

通販サイトでは、お客様がカード番号の欄から次へ移った時点で検査し、明らかな打ち間違いを支払いの前に知らせられます。電話注文を受ける窓口でも、聞き間違えたり打ち間違えたりした数字を、送信してからではなく入力しているその場で見つけられます。ただし、検査に通ることは番号の形が計算上正しいという意味にすぎません。カードが実在するか、有効か、残高があるか、入力した本人のものかは確認しません。見つけられるのは書き写しの誤りであって不正ではなく、決済会社による承認の代わりにはなりません。

検証している内容

クレジットカード番号にはLuhnアルゴリズムというチェックディジットの計算方法が使われており、この機能はその計算が合っているかを検証します。実際に有効なカードかどうかは確認しません。

番号を送信・保存しない設計

入力されたカード番号はお使いのブラウザの中だけで計算され、外部への送信は一切行いません。当方のサーバーに番号が届くことも、記録として残ることもありません。

実在確認とは別の機能

この機能はあくまで桁の入力ミスを見つけるための計算チェックです。カードが実際に有効かどうか、利用限度額があるかどうかは、決済処理を行う会社側で確認される内容です。

決済フォーム開発時の確認

合同会社みどりデザインは決済フォームの開発中に、テスト用カード番号のチェックディジットをこの機能で確認している。

手入力されたカード情報の一次確認

電話注文で聞き取ったカード番号を入力する際、桁の聞き間違いがないかをこの機能で確認している。

入力フォームの補助チェック

自社の決済フォームに同じ計算ロジックを組み込む前に、この機能で挙動を確認している。

入力したカード番号は保存されますか?

いいえ。 処理はブラウザ内で完結し、番号が当方のサーバーに送信されることも、保存・記録されることもありません。

カードが実際に使えるかまでわかりますか?

いいえ。 桁のチェックディジットの計算のみを確認します。利用限度額や有効期限は決済処理を行う会社側の確認が必要です。

処理は無料ですか?

はい。 ブラウザ内で完結する処理のため、無料・登録不要でご利用いただけます。

ルーンアルゴリズムはどのように計算しますか?

右から数えて2桁ごとに数字を2倍し、そのまま残した数字と合計して、合計が10の倍数かどうかを調べます。正しく発行されたカード番号は、この計算が合うように作られています。

どのような入力ミスを見つけられますか?

1桁の打ち間違い、隣り合う2桁の入れ替わり、1桁の入れ忘れは、ほとんどの場合に検査を通らなくなります。スマートフォンの小さな画面で長いカード番号を入力するときに起きやすいミスなので、その場で知らせることができます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/verify/card-luhn

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/verify/card-luhn \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"4111111111111111"}'
{
  "number": "4111111111111111"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "verify.card_luhn",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

開発時のテストデータ確認

決済フォームの開発中に、テスト用のカード番号がチェックディジットとして成立しているかを確認する用途にも使えます。

会員登録は必要ですか

不要です。登録なしでそのままお使いいただけます。

APIから呼び出す場合も番号は保存されませんか

APIでも同様に、検証結果を返すのみでカード番号を保存することはありません。

KITの完全なドキュメントを見る →