신용카드 검증기 | 신용카드 정보를 빠르게 검증하세요
신용카드 검증기는 카드 번호의 유효성을 즉시 확인하여 형식을 판단합니다. 이 도구는 카드 정보의 정확성을 검증하고 결제 오류를 방지합니다.
테스트용 카드 번호
결제 대행사가 공개한 표준 테스트 번호입니다. Luhn 검사는 통과하지만 어떤 계좌·은행·개인과도 연결되어 있지 않아 결제가 발생할 수 없습니다.
| 카드 종류 | 테스트 번호 | |
|---|---|---|
| Visa | 4111 1111 1111 1111 | |
| Mastercard | 5555 5555 5555 4444 | |
| American Express | 3714 496353 98431 | |
| Discover | 6011 1111 1111 1117 | |
| Diners Club | 3056 930902 5904 | |
| JCB | 3530 1113 3330 0000 | |
| UnionPay(은련) | 6212 3456 7890 1232 | |
| Maestro | 6759 6498 2643 8453 | |
| 체크섬 오류 | 4111 1111 1111 1112 |
마지막 줄은 체크섬 실패 화면을 볼 수 있도록 일부러 잘못된 번호로 넣었습니다.
카드사별 번호 형식
카드사마다 사용할 수 있는 앞자리 범위와 정해진 자릿수가 있습니다. 이 도구는 바로 그 규칙으로 카드사를 판별합니다.
| 카드사 | 시작 숫자 | 자릿수 | 보안 코드 |
|---|---|---|---|
| Visa | 4 | 13, 16, 19 | 3 자리 |
| Mastercard | 51-55, 2221-2720 | 16 | 3 자리 |
| American Express | 34, 37 | 15 | 4 자리 |
| Discover | 6011, 644-649, 65 | 16, 19 | 3 자리 |
| Diners Club | 36, 38, 300-305 | 14, 16, 19 | 3 자리 |
| JCB | 3528-3589, 2131, 1800 | 16, 17, 18, 19 | 3 자리 |
| UnionPay(은련) | 62 | 16, 17, 18, 19 | 3 자리 |
| Maestro | 5018, 5020, 5038, 6304, 6759, 6761-6763 | 12, 13, 14, 15, 16, 17, 18, 19 | 3 자리 |
| Mir | 2200-2204 | 16 | 3 자리 |
| Elo | 4011, 4312, 4389, 4514, 4573, 5041, 5066, 6277, 6362, 6363 | 16 | 3 자리 |
| Hipercard | 606282, 3841 | 16, 19 | 3 자리 |
| RuPay | 6521, 6522, 8172-8175, 5081-5089 | 16 | 3 자리 |
| Troy | 9792 | 16 | 3 자리 |
| Dankort | 5019 | 16 | 3 자리 |
| Verve | 5060, 5078, 6500 | 16, 18, 19 | 3 자리 |
| InstaPayment | 637-639 | 16 | 3 자리 |
| UATP | 1 | 15 | 3 자리 |
신용카드 검증이란?
신용카드 검증은 번호가 제대로 만들어졌는지 확인하는 과정입니다. 자릿수가 맞는지, 앞자리가 실제 카드 네트워크의 것인지, 마지막 검증 숫자가 Luhn(모듈로 10) 공식과 맞는지를 봅니다. 결제 폼은 은행에 아무것도 보내기 전에 이 검사를 먼저 수행합니다. 오타를 즉시, 비용 없이 잡아낼 수 있기 때문입니다. 어디까지나 구조 검사이므로 카드가 실제로 존재하는지, 잔액이 있는지, 정지되었는지는 알 수 없습니다.
신용카드 검증은 어떻게 이루어지나요?
카드 네트워크 판별
앞자리(IIN 또는 BIN)가 네트워크를 나타냅니다. 4는 Visa, 51~55와 2221~2720은 Mastercard, 34와 37은 American Express 같은 식입니다.
자릿수 확인
네트워크마다 자릿수가 정해져 있습니다. American Express는 15자리, Mastercard는 16자리, Visa는 13·16·19자리입니다. 앞자리와 자릿수가 맞지 않으면 오타입니다.
Luhn 알고리즘 검사
오른쪽에서 두 번째 자리마다 2를 곱하고 모든 숫자를 더한 뒤 합계가 10으로 나누어떨어지는지 봅니다. 한 자리 오타는 거의 전부, 인접한 두 자리를 바꿔 친 실수도 대부분 잡아냅니다.
유효기간과 CVV 선택 검사
유효기간을 입력하면 오늘 날짜와 비교하고, 보안 코드는 해당 네트워크가 쓰는 자릿수(American Express 4자리, 그 외 3자리)와 대조합니다.
카드 숫자가 의미하는 것
카드 번호는 무작위가 아닙니다. ISO/IEC 7812에 따라 발급사 식별 번호, 개별 계좌 번호, 한 자리 검증 숫자의 세 부분으로 나뉩니다.
- 첫째 자리 - 주요 산업 식별자. 카드를 발급한 산업을 나타냅니다. 4와 5는 은행·금융, 3은 여행·엔터테인먼트, 1과 2는 항공사입니다.
- 1~6번째 자리(2022년 이후 최대 8자리) - 발급사 식별 번호. 네트워크와 발급 은행을 특정합니다. 가맹점은 이를 이용해 결제를 라우팅하고 카드 발급 국가를 추정합니다.
- 가운데 자리 - 개별 계좌 번호. 발급사가 해당 계좌를 관리하는 고유 번호로, 카드마다 다릅니다.
- 마지막 자리 - 검증 숫자. 나머지 모든 자리에서 Luhn 공식으로 계산되어, 한 자리만 잘못 입력해도 합계가 어긋납니다.
유효한 번호가 실제 카드는 아닙니다
Luhn 검사를 통과했다는 것은 숫자들이 서로 앞뒤가 맞는다는 뜻일 뿐입니다. 그 카드가 발급된 적이 있는지, 사용 가능한지, 잔액이 얼마인지, 누구 것인지는 알 수 없습니다. 그것은 발급 은행만 알고 있으며 실제 승인 요청이 결제 네트워크를 통과할 때만 확인됩니다. 번호만으로 카드 잔액이나 상태를 확인해 준다는 사이트는 잘못 알고 있거나 카드 정보를 노리는 것입니다.
이 도구의 쓰임새
- 안심하고 입력할 수 있는 번호로 결제 폼과 결제 흐름을 테스트합니다.
- 결제가 거절됐을 때 고객센터에 연락하기 전에 오타를 확인합니다.
- Luhn 알고리즘과 BIN 범위가 실제로 어떻게 작동하는지 배우거나 가르칩니다.
- 폼이나 CSV 파일에서 가져온 데이터의 형식이 맞는지 점검합니다.
CVV(카드 검증 값)에 대하여
CVV, CVC, CID는 카드에 인쇄된 짧은 코드입니다. Visa, Mastercard, Discover를 비롯한 대부분은 뒷면 3자리, American Express는 앞면 4자리입니다. 마그네틱 띠나 IC칩에 저장되지 않고 가맹점이 보관해서도 안 되며, 그래서 카드를 실제로 소지하고 있다는 증거가 됩니다. 카드 번호의 일부가 아니며 Luhn 체크섬 대상도 아닙니다.
보안 팁
- 실제 카드 번호는 정말로 결제하는 사이트에서만, 반드시 HTTPS로 입력하세요.
- 개발할 때는 아래 공개 테스트 번호를 쓰고 실제 카드는 절대 사용하지 마세요.
- 정상적인 서비스는 이메일·채팅·전화로 카드 번호를 "확인"하거나 "재활성화"해 달라고 요구하지 않습니다.
- 거래 알림을 켜고 매달 명세서를 확인하세요.
- 구독 서비스나 처음 이용하는 쇼핑몰에는 가상 카드나 일회용 번호를 사용하세요.
- CVV는 어디에도 저장하지 마세요. 가맹점도 보관할 수 없습니다.
AI 에이전트에서 이 도구를 사용하세요
무료 JSON API와 Model Context Protocol (MCP) 서버. 가입 불필요, API 키 불필요, CORS 개방. Claude, ChatGPT, Cursor, 스크립트, 프런트엔드 앱을 위해 설계되었습니다.
curl -X POST https://mate.tools/api/v1/credit-card-validate.php \
-H "Content-Type: application/json" \
-d '{"number":"4111 1111 1111 1111"}' import urllib.request, json
req = urllib.request.Request(
"https://mate.tools/api/v1/credit-card-validate.php",
data=json.dumps({"number":"4111 1111 1111 1111"}).encode(),
headers={"Content-Type": "application/json"},
)
with urllib.request.urlopen(req) as r:
print(json.load(r)) const r = await fetch("https://mate.tools/api/v1/credit-card-validate.php", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({"number":"4111 1111 1111 1111"}),
});
console.log(await r.json()); claude_desktop_config.json(Claude Desktop), ~/.cursor/mcp.json(Cursor) 또는 다른 MCP 호환 클라이언트에 추가하세요:
{
"mcpServers": {
"mate-tools": {
"command": "npx",
"args": ["-y", "@mate-tools/mcp-server"]
}
}
} 자주 묻는 질문
함께 자주 사용되는 도구: 안전한 비밀번호 생성기 · 비밀번호 강도 검사기