K-OTP를 소개합니다

K-OTP 팀
2026. 9. 28.

휴대폰 본인 인증은 거의 모든 서비스에 필요하지만, 제대로 만들기는 생각보다 번거롭습니다. 인증번호를 만들고, 문자나 알림톡으로 보내고, 만료와 시도 횟수를 관리하고, 네트워크가 흔들릴 때 같은 문자가 두 번 가지 않도록 막아야 합니다. K-OTP는 이 과정을 두 개의 엔드포인트로 정리했습니다.

발급하고, 검증하면 끝

POST /v1/issue에 전화번호와 용도(purpose), 그리고 멱등키를 보내면 6자리 인증번호가 서버에서 생성되어 SMS 또는 카카오 알림톡으로 발송됩니다. 알림톡 발송에 실패하면 SMS로 자동 대체 발송되며, 어느 경우든 1 크레딧입니다. 응답으로 받은 issueId와 사용자가 입력한 코드를 POST /v1/verify로 보내면 검증이 끝납니다. 기본 유효시간은 3분, 시도 횟수는 5회입니다.

재시도해도 한 번만

모든 발급 요청에는 멱등키가 필요합니다. 요청이 타임아웃되면 같은 키로 다시 보내면 됩니다. 같은 키와 같은 요청이면 첫 결과를 그대로 돌려주고, 크레딧도 다시 차감하지 않습니다. 발송 결과가 불명확한 경우에는 중복 발송을 막기 위해 자동으로 다시 보내지 않습니다.

남기지 않는 설계

발급 기록에는 전화번호의 해시만 저장합니다. 인증번호도 해시로만 보관하고 API 응답에 넣지 않습니다. 발송 기록의 수신자 정보는 암호화해 두었다가 최종 상태 후 약 24시간이 지나면 지웁니다.

브라우저와 서버, 두 종류의 키

서버에서는 sk_ 시크릿 키를, 브라우저에서는 pk_ 퍼블릭 키를 사용합니다. 퍼블릭 키는 미리 등록한 Origin에서만, 발급과 검증에만 쓸 수 있습니다.

시작하기

문서의 퀵스타트와 API 레퍼런스에서 자세한 내용을 확인하세요. 요금은 선불 크레딧 방식이며, 자세한 구성은 요금 페이지에서 안내합니다.