Verification Method 전이 규칙 통합
ADR-040 Verification Method 전이 규칙 통합
1. Metadata
- ADR ID: ADR-040
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
verification_method는none,location,qr로 고정한다.- 검증 기반 전이는
payment_method와 독립적으로 동일하게 적용한다. reserved + none은 즉시redeemed로 전이한다.reserved + location은 위치 검증 성공 시redeemed로 전이한다.reserved + qr은 QR 스캔 성공 시redeemed로 전이한다.on_site + location검증은 주기 배치가 아니라 사용/수령 이벤트 시점 검증으로 처리한다.- 위치 검증 실패 시
expired전까지 QR 폴백을 기본 경로로 제공한다. - 만료 시각 경과 후 미완료 건은
expired로 종료한다. - 파트너 보조 검증은 상태 전이를 추가하지 않고
redeemed이후 증적 기록으로만 처리한다. - 보조 검증 필드는
partner_verified,partner_verified_at,partner_verified_by_store_id로 고정한다.
3. Product Decision
- verification_method는 슬롯 발행 시점에 선택한다.
- 위치 검증 실패 시 만료 전 QR 폴백을 기본으로 제공한다.
- 결제 방식(payment_method)과 완료 조건(verification_method)의 역할을 분리한다.
- 검증 완료 시점의 사용자 안내 기준을 통일한다.
4. UX Decision
- Verification UX의 단일 SoT는
SPEC-000의 UX Rule Catalog를 따른다. - 검증 단계의 화면/CTA/실패 처리 상세는
UX-R-002/003/006/007/009/011을 참조한다. - 위치 실패 QR 폴백 및 멱등 재노출 기준은
UX-R-006/012로 관리한다.
5. Tech Decision
- 검증 이벤트는 방식별 공통 인터페이스로 처리한다.
- 위치 검증 호출은 주기 작업이 아닌 이벤트 트리거로 처리한다.
- 위치 실패 이벤트는 QR 폴백 이벤트로 연결한다.
- 검증 완료 이벤트는 상태 전이와 감사로그를 함께 기록한다.
6. Ops Decision
- 검증 실패 원인 분류와 대응 절차를 정의한다.
- 위치 실패-QR 폴백 문의 대응 스크립트를 운영한다.
- 반복 실패 파트너/사용자 모니터링을 수행한다.
7. Implementation Contract (Optional)
7.1 API Contract
- 검증 요청은
verification_method를 필수 입력으로 받는다. - 위치 검증 실패 응답은 QR 폴백 가능 여부(
fallback=qr)와 만료 전 잔여 시간(expires_in_sec)을 포함한다.
7.2 Data Contract
verification_method허용값은none|location|qr로 고정한다.- 보조 검증 필드는
partner_verified,partner_verified_at,partner_verified_by_store_id만 사용한다.
7.3 Error/Observability Contract
VERIFICATION_METHOD_MISMATCH,LOCATION_VERIFY_FAILED,VERIFICATION_EXPIRED코드를 분리한다.- 검증 완료/실패 이벤트를 상태 전이 이벤트와 함께 기록한다.
7.4 Test/Acceptance Contract
prepaid+none은 결제 성공 직후 즉시redeemed로 확정되어야 한다.prepaid+qr은 QR 성공 시점에만redeemed로 확정되어야 한다.on_site+location은 이벤트 시점 검증만 수행하고 주기 검증을 수행하지 않아야 한다.on_site+location실패 시 만료 전 QR 폴백 경로가 항상 노출되어야 한다.- UX 수용 기준 검증은
SPEC-000의UX-R-006/007/009/011/012준수 여부로 판정한다.
8. Validation
- Domain/Product/UX/Tech/Ops 결정이 충돌하지 않는다.
- 구현 기준은 SPEC과 정합성을 유지한다.
- 운영 절차는 RUNBOOK으로 연결된다.