K-OTP

K-OTP 소개

SMS·알림톡으로 인증번호를 보내고 검증하는 OTP API

K-OTP는 휴대폰 인증번호(OTP)를 발급 → 발송 → 검증하는 과정을 API 두 번 호출로 끝낼 수 있게 해 주는 서비스입니다. 인증번호 생성, SMS·카카오 알림톡 발송, 만료·시도 횟수 관리, 중복 요청 방지, 크레딧 정산을 K-OTP가 처리합니다.

동작 방식

 서비스 서버/브라우저            K-OTP API                     최종 사용자 휴대폰
 ───────────────────            ─────────                     ─────────────────
 1. POST /v1/issue  ─────────▶  6자리 코드 생성 (해시만 저장)
    (Idempotency-Key)           크레딧 예약 + 발송 큐 등록
                     ◀───────── { issueId, expiresAt, ... }
                                2. SMS 또는 알림톡 발송 ─────▶  "[K-OTP] 인증번호는 123456..."
 3. POST /v1/verify ─────────▶  issueId + code 검증
    { issueId, code }           (만료·최대 시도·1회성 확인)
                     ◀───────── { verified: true }
  1. 발급(issue) — 서비스가 POST /v1/issue에 전화번호와 용도(purpose)를 보냅니다. K-OTP는 6자리 코드를 서버에서 생성하고, 크레딧을 예약한 뒤 발송을 큐에 넣습니다. 응답에는 코드가 아닌 issueId만 포함됩니다.
  2. 발송(deliver) — K-OTP가 SMS(기본값) 또는 알림톡으로 인증번호를 보냅니다. 발송 결과는 비동기로 추적되며 GET /v1/status로 확인할 수 있습니다.
  3. 검증(verify) — 사용자가 입력한 코드를 issueId와 함께 POST /v1/verify로 보냅니다. 결과는 항상 200이며 verified 값과 실패 사유(reasonCode)로 판단합니다.

핵심 개념

개념설명
앱(app)콘솔에서 만드는 단위입니다. 키, 크레딧 지갑, 발급 이력이 앱에 속합니다. 같은 앱의 키는 하나의 지갑을 공유합니다.
키pk_(브라우저용 공개 키, 발급·검증 전용)와 sk_(서버 전용 비밀 키) 두 종류가 있습니다. 인증 참고.
issue발급 한 건입니다. issueId로 식별하며 기본 3분 뒤 만료, 기본 5회까지 검증을 시도할 수 있습니다.
멱등 키모든 발급 요청에 필요한 Idempotency-Key입니다. 재시도 시 중복 발송·중복 차감을 막습니다. 멱등성과 재시도 참고.
채널SMS 또는 카카오 알림톡. 알림톡 발송이 실패하면 SMS로 자동 대체 발송됩니다. 채널과 대체 발송 참고.
크레딧선불로 충전하는 발송 단위입니다. 대체 발송을 포함해 발송 1건에 1 크레딧이며, 잔액이 부족하면 발급이 402로 거절됩니다. 크레딧과 결제 참고.

주요 주소

용도주소
API Base URLhttps://api.k-otp.dev/v1
대화형 API 레퍼런스https://api.k-otp.dev/docs
OpenAPI 스펙https://api.k-otp.dev/openapi/v1.json
콘솔https://app.k-otp.dev

다음 단계

이 페이지의 내용