문서 목차

문서/API

인증 생성

인증 생성 요청·응답과 Idempotency-Key 사용 규칙

Markdown

요청#

http
POST https://api.sendwich.kr/v1/verifications
Authorization: Bearer YOUR_LIVE_SECRET_KEY
Idempotency-Key: attempt_93a7_create
Content-Type: application/json
json
{
  "mode": "discover",
  "client_reference": "attempt_93a7",
  "state": "SERVER_GENERATED_RANDOM_STATE"
}
필드 기본값·조건 설명
mode discover discover 또는 match
expected_phone match 전용·필수 일치 여부를 확인할 010 휴대폰 번호
client_reference 빈 문자열 서비스의 시도 식별자, 최대 160자
state 빈 문자열 서버에서 생성한 무작위 연결 값, 최대 256자
parent_origin 선택 팝업 알림을 받을 출처. 프로젝트 등록값과 일치해야 함
return_url 선택 인증 후 돌아갈 URL. 프로젝트 등록값과 일치해야 함

프로젝트와 환경은 API 키로 결정됩니다. 코드 형식과 유효시간은 프로젝트 설정을 따릅니다. 정의되지 않은 필드는 거절합니다.

응답#

최초 생성은 201, 동일 요청의 재시도는 200을 반환합니다.

json
{
  "id": "vrf_EXAMPLE",
  "status": "pending",
  "environment": "live",
  "mode": "discover",
  "phone": null,
  "carrier": null,
  "client_reference": "attempt_93a7",
  "state": "SERVER_GENERATED_RANDOM_STATE",
  "created_at": "2026-09-16T03:00:00.000Z",
  "expires_at": "2026-09-16T03:05:00.000Z",
  "verified_at": null,
  "server_time": "2026-09-16T03:00:00.000Z",
  "verification_url": "https://id.it.kr/#/verify/SESSION_TOKEN",
  "destination": "16661629",
  "sms_text": "하늘바다"
}
필드 설명
id 인증 ID. 서버에서 사용자·시도와 연결해 저장
status 최초 생성 시 pending
environment 실제 SMS 프로젝트는 live, 기존 테스트 프로젝트는 test
mode, client_reference, state 요청한 인증 모드와 연결 값
phone, carrier, verified_at 최초 생성 시 null
created_at, expires_at, server_time UTC ISO 8601 시각
verification_url sendwich 인증 창 URL
destination 인증 문자를 보낼 수신 번호
sms_text 사용자가 보낼 전체 문자

사용자에게 안내할 번호와 문자는 응답값을 사용합니다. 인증 창을 사용하는 경우 verification_url을 엽니다.

중복 생성 방지#

Idempotency-Key는 영문, 숫자, _, ., :, -로 구성한 8~128자의 필수 헤더입니다. 응답을 받지 못했을 때는 같은 키와 같은 본문으로 재시도합니다. 같은 키로 본문을 변경하면 409 idempotency_conflict를 반환합니다.

재시도 응답에는 Idempotent-Replayed: true 헤더와 최초 생성 응답이 포함됩니다. 인증 ID, 코드, URL, 만료 시각이 유지되며 유효시간은 연장되지 않습니다.

생성 응답은 24시간 보존됩니다. 보존 기간 이후에는 같은 키로 새 인증이 생성될 수 있습니다. 별도의 인증 시도를 시작할 때는 새 키를 사용합니다.

현재 상태는 조회 API로 확인합니다. 이미 완료된 인증도 생성 요청을 재시도하면 최초의 pending 응답을 반환합니다. 재시도 요청도 API 사용량에 포함됩니다.

웹훅 적용 시점#

인증을 생성할 때 프로젝트의 웹훅 설정이 저장됩니다. 알림을 받으려면 생성 전에 웹훅 수신 설정을 완료해야 합니다.