토스 심사 신청 + LS 거절 + Gumroad 전환
어제까지 "돈이 실제로 움직이는 영역"은 다음 세션으로 미뤄뒀으나, 오늘 드디어 그 핵심 영역에 진입했습니다. 계획은 단순했지만 결과는 예측 불허였습니다. 6시간의 치열한 세션 끝에 결제 시스템의 거대한 전환점을 맞이했습니다.
오늘의 주요 성과
- 토스페이먼츠: 실연동 심사 신청서 접수 완료 ✅
- Lemon Squeezy: 고위험 카테고리 분류로 인한 거절 → 탈퇴 요청 ❌
- Gumroad: 계정 생성 및 상품 런칭 → End-to-end 자동화 성공 ✅
- 인프라: DB 마이그레이션 2회, 배포 커밋 5개 완료
💳 1부: 토스페이먼츠 실연동 심사 신청
포트원 콘솔 → 전자결제 신청
한국 결제는 토스페이먼츠를 포트원 V2 SDK로 테스트해왔습니다. 실연동 전환을 위해 비즈니스 인증부터 서비스 정보 입력까지 모든 플로우를 통과했습니다. 이 과정에서 대표자 정보 오류(상호 중복) 및 판매 품목 설정(SaaS 단독 체크) 등 세밀한 데이터 교정 작업을 진행했습니다.
사전 점검 및 코드 작업
심사 제출 전 포트원 봇의 자동 검증에서 발견된 이슈들을 즉시 코드로 해결했습니다.
- 유선번호 누락: Footer에 고객 응대를 위한 전화번호(010-2680-0973) 노출
- 가격 페이지 탐색 불가: 로그인 없이 접근 가능한 /pricing 페이지 신규 생성
- 컴플라이언스 강화: 상호, 대표자, 사업자번호를 상시 노출하도록 Footer 구조 개편
🍋 2부: Lemon Squeezy 거절 — 예상치 못한 난관
"We cannot approve your store application"
해외 결제를 위해 준비했던 Lemon Squeezy로부터 거절 통보를 받았습니다. 원인은 명확히 공개되지 않았으나, 카드 네트워크 정책상 사주·점술 서비스가 고위험(High-risk) 카테고리로 분류된 것이 결정적이었을 것으로 분석됩니다.
회복 전략: Gumroad로의 빠른 피벗
Paddle, Stripe 직접 가입 등 여러 대안을 검토했으나, 소규모 크리에이터 친화적이고 점성술 카테고리가 정식 존재하는 Gumroad를 최종 선택했습니다.
🎯 3부: Gumroad 전환 — 전광석화 같은 실행
상품 구조의 효율화
여러 상품을 개별 생성하는 대신, 1개 상품 내 3개의 Versions(Starter, Popular, Deep Dive)를 구성하는 전략을 취했습니다. 이는 고객의 티어 비교를 용이하게 하고 유지관리 효율을 극대화합니다.
| Tier | Price (USD) | Credits | Readings |
|---|---|---|---|
| Starter | $4 | 40 | 2 |
| Popular ★ | $8 | 120 | 6 |
| Deep Dive | $20 | 400 | 20 |
⚙️ 4부: 코드 완전 자동화 및 예외 처리
Pending Credits 시스템 구축
Gumroad 링크로 직접 접근한 미가입자가 결제할 경우를 대비하여 pending_credits 테이블을 신설했습니다. 이를 통해 이메일 기반으로 크레딧을 임시 저장한 후, 유저가 가입하는 시점에 자동으로 지급되는 Lazy-matching 구조를 완성했습니다.
// Webhook 핵심 로직 예시
if (!user) {
await db.insert(pendingCredits).values({
email,
amount: credits,
provider: 'gumroad'
});
}
🔜 다음 할 일
현재 한국과 해외 결제 인프라 모두 기술적으로 작동 가능한 상태입니다. 이제 프로덕트는 진짜 "돈을 버는 단계"로 진입했습니다.
- 모니터링: 실결제 발생 시
USER_NOT_RESOLVED로그 추적 및 pending 처리 확인 - 심사 대기: 토스페이먼츠 심사 결과 확인 (1~3영업일 소요 예정)
- 마케팅 자동화: Threads 및 n8n을 활용한 유입 채널 확장