한국형 OTP API
한국 사용자를 위한 휴대폰 인증번호 API
K-OTP로 일회용 인증코드를 생성하고, 카카오 알림톡으로 전달한 뒤 코드를 검증하세요.
가입하면 실제 발송용 100 크레딧 무료 (1년 유효)
테스트 키(pk_test_ / sk_test_)로 무료 연동: 실제 메시지를 보내지 않고 크레딧도 쓰지 않습니다.테스트 모드 가이드
[K-OTP] 인증번호는 482913입니다. 3분 내에 입력해주세요.
인증번호
- 대기
- 발송
- 도달
- 인증 완료
지금 바로 테스트해보기
인증번호를 직접 받아 보세요. 실제 발송도, 가입도 없이.
가상 휴대폰으로 실제 발급 → 검증 흐름을 그대로 체험합니다. 단계마다 내 서비스가 보낼 요청과 받을 응답을 함께 보여 드립니다.
데모: 실제 메시지는 발송되지 않습니다. 입력한 번호는 이 페이지 밖으로 나가지 않습니다.
- 인증번호가 여기에 도착합니다.
실제 API 호출
POST /v1/issue대기 중# 1단계: 인증번호 발급# 서버에서는 sk_ 키를 쓰고 Origin 헤더는 생략curl https://api.k-otp.dev/v1/issue \ -H "Authorization: Bearer pk_..." \ -H "Origin: https://your-app.example" \ -H "Idempotency-Key: signup-<uuid>" \ -H "Content-Type: application/json" \ -d '{ "phoneNumber": "01012345678", "purpose": "signup" }'# 응답: 데모 진행 대기 중…{ "issueId": "…", "expiresAt": "…", "attemptsRemaining": 5, "queuedAt": "…"}여기서는 번호를 가려서 보여 줍니다. 실제 요청에는 전체 번호가 들어갑니다. SDK는 npm i @k-otp/sdk로 설치합니다. SDK 없이 cURL로도 바로 쓸 수 있습니다.
실제 인증번호를 보낼 준비가 되셨나요?
계정을 만들고 pk_·sk_ 키를 복사하면 몇 분 안에 서비스에 붙일 수 있습니다.
가입하면 실제 발송용 100 크레딧 무료 (1년 유효)
테스트 키(pk_test_ / sk_test_)로 무료 연동: 실제 메시지를 보내지 않고 크레딧도 쓰지 않습니다.테스트 모드 가이드
제품
OTP에서 꼭 문제가 되는 부분을 위해
한국의 인증번호 발송에는 고유한 채널과 재시도 함정이 있습니다. K-OTP는 두 개의 엔드포인트 뒤에서 이를 처리합니다.
카카오 알림톡으로 전달
인증번호는 등록된 템플릿을 사용한 카카오 알림톡 메시지로 발송됩니다. 발급 API만 호출하면 메시지 발송 사업자 연동은 K-OTP가 처리합니다.
멱등키와 안전한 재시도
같은 키와 같은 요청은 첫 결과를 돌려줍니다. 결과가 불명확한 발송은 자동으로 다시 보내지 않습니다.
보여줄 수 있는 발송 상태
GET /v1/status는 발송 상태(대기·발송·도달)와 검증 상태를 따로 알려 주고, CS 대응용 overallStatus도 함께 돌려줍니다.
pk_ · sk_ 키 분리
퍼블릭 키는 허용한 Origin에서만, 브라우저에서 발급·검증만 호출합니다. 시크릿 키는 서버에만 두세요.
선불 크레딧
한 번 충전하고, OTP 발송 1건에 1 크레딧만 쓰세요. 인증번호 검증에는 추가 비용이 없습니다. 잔액과 원장은 API로 확인할 수 있습니다. 구독이 없습니다.
OpenAPI 기반 문서
서버가 실제로 강제하는 계약에서 생성한 OpenAPI 3.1 스펙과 API 레퍼런스를 제공합니다.
동작 방식
인증코드 발급부터 검증 결과까지
01
인증코드 발급
서버(sk_ 키) 또는 웹 앱(pk_ 키)에서 휴대폰 번호, 용도, 멱등키로 POST /v1/issue를 호출합니다. K-OTP가 6자리 코드를 생성하고 issueId를 돌려줍니다.
02
카카오 알림톡으로 전달
인증코드는 카카오 알림톡 메시지로 사용자에게 전달됩니다. 발송 상태는 대기 → 발송 → 도달 순으로 바뀝니다. 도달은 메시지가 도착했다는 뜻이지, 인증이 끝났다는 뜻이 아닙니다.
03
입력한 코드 검증
issueId와 사용자가 입력한 코드로 POST /v1/verify를 호출합니다. 코드가 일치할 때만 verified: true입니다. 기본값은 유효시간 3분, 시도 5회입니다.
04
결과 처리는 내 서비스에서
로그인 처리, 번호 확인 표시, 재요청 등 다음 단계는 내 서비스가 정합니다. 검증 완료는 그 번호로 발송된 인증코드를 사용자가 확인해 입력했다는 뜻이며, 실명 확인이나 법적 본인확인이 아닙니다.
보안 · 개인정보
최소한만, 최대한 짧게 보관합니다.
일회용 인증코드는 가입과 로그인을 지키는 장치입니다. 기본 설정은 침해 시도를 전제로 설계했습니다.
발급 기록에 휴대폰 번호 원문 미저장
발급 기록에는 휴대폰 번호의 해시만 남기며, 어떤 API 응답도 휴대폰 번호를 돌려주지 않습니다.
해시로 저장되는 일회용 코드
인증번호는 솔트를 더한 해시로만 저장되고, API로 반환되지 않으며, 검증에 성공하면 소진됩니다.
발송 개인정보는 암호화 후 파기
발송 기록의 수신자 정보는 암호화되어 저장되고, 최종 상태 후 약 24시간이 지나면 지워집니다.
브라우저 키는 허용 Origin에 고정
pk_ 키는 Origin이 정확히 일치해야 하며 발급과 검증만 할 수 있습니다.
자주 묻는 질문
도입 전에 자주 묻는 질문
오늘 내 서비스에 휴대폰 번호 인증을 붙여 보세요.
콘솔에서 키를 만들고 퀵스타트를 따라 하면 됩니다. 선불 크레딧, OTP 발송 1건에 1 크레딧, 구독 없음.
가입하면 실제 발송용 100 크레딧 무료 (1년 유효)
테스트 키(pk_test_ / sk_test_)로 무료 연동: 실제 메시지를 보내지 않고 크레딧도 쓰지 않습니다.테스트 모드 가이드