피드로 돌아가기
Dev.toBackend
원문 읽기
decline_code 기반의 5단계 분류 체계를 통한 결제 복구율 최적화
Every Stripe decline code, what it actually means, and whether retrying will help
AI 요약
Context
단순 code 필드에 의존한 일괄적인 Smart Retries 적용으로 인한 복구 기회 손실 발생. 무분별한 재시도가 카드 네트워크 페널티를 유발하거나 고객 액션이 필요한 케이스를 방치하는 아키텍처적 한계 노출.
Technical Solution
code대신 세분화된decline_code를 분석 지표로 채택한 의사결정 로직 설계- 결제 실패 원인을 Auto-recoverable, Customer Action, Lost Cause, Hard Decline, Structural 5개 버킷으로 분류하는 라우팅 체계 구축
- SCA(Strong Customer Authentication) 대응을 위해
authentication_required발생 시 재시도 대신 확인 링크를 전송하는 워크플로우 도입 - 카드 네트워크 페널티 방지를 위해
fraud및stolen_card코드 식별 시 즉시 재시도를 중단하는 Hard Stop 메커니즘 구현 currency_not_supported등 구조적 결함을 식별하여 개별 결제 처리 대신 체크아웃 설정 자체를 수정하는 피드백 루프 생성
실천 포인트
- 결제 실패 로그를 `decline_code` 기준으로 그룹화하여 실제 복구 가능한 비율 분석 - 재시도 로직에 `insufficient_funds` 등 특정 코드별 맞춤형 타이밍(예: 급여일 근처) 적용 - EU 지역 서비스의 경우 `authentication_required`에 대해 Retry가 아닌 3DS 인증 링크 전송 프로세스 검토 - 카드 네트워크 정책 준수를 위해 `lost_card`, `fraud` 코드에 대한 재시도 금지 필터링 구현