체크 디지트(check digit) 또는 검사 숫자는 식별 번호에 대한 오류 감지에 사용되는 중복 검사의 한 형태이다. 은행 계좌 번호, 바코드, ISBN, 신용카드 번호 등 수동으로 입력되거나 전송되는 일련의 숫자 데이터에서 오류를 확인하기 위해 사용된다. 컴퓨터 데이터의 오류를 확인하는 데 사용되는 이진수 패리티 비트(parity bit)와 유사한 원리로 작동한다.
체크 디지트는 일련의 입력된 다른 숫자(또는 문자)를 이용하여 일정한 알고리즘에 의해 계산되는 하나 이상의 숫자(또는 문자)로 구성되며, 일반적으로 식별 코드의 맨 마지막에 위치한다. 체크 디지트를 사용하면 하나의 잘못 입력된 숫자 또는 두 개의 연속된 숫자의 순열과 같은 간단한 입력 오류를 감지할 수 있다.
체크 디지트 알고리즘은 일반적으로 사람의 필기 오류를 포착하도록 설계되었으며, 포착 대상 오류에는 문자/숫자 오류(l→1, O→0), 한 자리 오류(1→2), 바꿔쓰기 오류(12→21), 쌍 오류(11→22), 점프 전치 오류(132→231), 점프 트윈 오류(131→232), 발음 오류(60→16) 등이 포함된다.
대표적인 체크 디지트 알고리즘으로는 룬 알고리즘(Luhn algorithm, 1954), 베어호프 알고리즘(Verhoeff algorithm, 1969), 담 알고리즘(Damm algorithm, 2004)이 있다. 널리 사용되는 방식으로는 UPC 코드의 3-1-3-1 가중치, EAN 숫자의 1-3-1-3 가중치(GS1 알고리즘), 미국 은행 라우팅 전송 번호에서 사용되는 3-7-1-3-7-1 가중치 등이 있다. ISBN-10 코드에서는 소수인 모듈로 11을 사용하여 모든 숫자 위치에 서로 다른 가중치(1부터 10까지)를 부여하며, 검사 숫자가 10이 될 경우 문자 X로 표시한다.
체크 디지트는 GS1 표준 식별코드(UPC, EAN, GTIN, GLN), ISBN, 신용카드 번호(Modulo 10/Luhn 알고리즘), IMEI, 미국 NHS 번호, 차량 식별 번호(VIN), 중국 시민 ID 번호, 인도 Aadhaar 번호 등 전 세계 다양한 식별 체계에서 활용되고 있다.