본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
글로벌 프로덕트 결제 가이드

전략·계약 구조

의사결정 맵국내 PG 해외결제 vs 해외 MoRMoR 계약 흐름계약·데이터 보정 워크시트온보딩 준비

결제 구현

상품·가격·세금 카탈로그한국 Checkout 현지화한국 Checkout QA 매트릭스구독 라이프사이클웹훅과 권한 동기화Webhook 구현 부록

운영·컴플라이언스

한국 세무·회계개인사업자 vs 법인 수익·수수료·과세 분석세무·법무 전달 패키지정산·대사정산 CSV·전표 템플릿약관·소비자·개인정보한국 B2B·Paddle Invoicing 청구 플로우CS·분쟁·리스크

사례·검증

사례·체크리스트검증 리포트업데이트 내역
핸드북›글로벌 프로덕트 결제 가이드›구독 라이프사이클

구독 라이프사이클

trial, renewal, past due, cancellation, customer portal 운영 기준

핵심 요약

  • 구독 운영의 기준은 결제 성공 여부가 아니라 구독 상태와 서비스 권한의 일관성이며, Paddle status를 내부 billing/entitlement state로 매핑한다.
  • 구독 상품은 subscription.created/updated snapshot으로 권한을 계산하고, 일회성 상품은 transaction.completed로 fulfillment한다. collection mode와 상품 정책을 섞지 않는다.
  • Paddle 자동 dunning은 저장 결제수단을 최대 30일 동안 최대 7회 재시도할 수 있으므로 제품 grace 정책을 이 기간과 명시적으로 조정한다.
  • 한국 고객의 무료체험·도입 할인 종료는 subscription.consent_requirements와 내부 명시적 동의 증빙을 저장한다. 가격 인상·좌석 증액은 별도 동의 정책을 적용한다.
  • 해지(미래 갱신 차단)와 환불(과거 결제 취소)을 코드·CS에서 분리하고, 해지 경로를 숨기면 다크패턴 리스크가 생긴다.

SaaS 구독 운영의 기준은 결제 성공 여부가 아니라 구독 상태와 서비스 권한의 일관성입니다. Paddle은 subscription과 transaction을 별도 엔티티로 다루므로 권한을 부여할 때 두 흐름을 함께 읽어야 합니다.

핵심 상태

상태의미서비스 권한
trialing무료 체험 중체험 권한 부여
active정상 결제/갱신 가능유료 권한 유지
past_due결제 실패 또는 수금 문제grace 정책에 따라 제한
paused일시정지신규 사용 제한 또는 읽기 전용
canceled해지 완료만료 시점 이후 권한 제거

Paddle 상태명과 내부 상태명을 1:1로 그대로 쓰기보다, 내부 제품 권한 상태를 별도로 둡니다.

Paddle status -> Billing state -> Entitlement state
active        -> paid          -> full_access
past_due      -> recovery      -> grace_access / limited_access
canceled      -> ended         -> no_paid_access

신규 구독

구독 상품은 Paddle의 현재 provisioning 가이드에 따라 subscription.created와 subscription.updated snapshot으로 권한을 계산합니다. 무료체험에는 결제 완료 transaction이 없을 수 있으므로 모든 구독 권한을 transaction 성공에 종속시키면 안 됩니다. 일회성 상품은 transaction.completed를 fulfillment 기준으로 사용합니다. 수동 청구 구독은 계약에 따라 invoice 발행 시점 또는 입금 완료 시점을 별도 정책으로 정합니다.

이벤트처리
subscription.createdsubscription ID 저장, 고객/워크스페이스 연결, trialing/active 권한 계산
subscription.updatedstatus, item, next billing date 동기화
transaction.completed일회성 상품 fulfillment, 구독 결제의 재무·영수증 상태 연결
adjustment.created/updated환불·chargeback·reversal 상태와 권한·credit 조정

갱신 실패, dunning과 grace

결제 실패는 고객 이탈이 아니라 회수 기회입니다. 제품 권한을 즉시 끊으면 회수율이 떨어지고 CS가 늘어납니다.

Paddle의 기본 automatic dunning은 저장된 결제수단을 최대 30일 동안 최대 7회 재시도하고 회수되지 않으면 구독을 자동 취소할 수 있습니다. sandbox에서는 같은 retry가 실행되지 않습니다. 아래는 제품 정책의 예이며 Paddle 재시도 기간을 그대로 의미하지 않습니다.

기간제품 정책 예시Paddle 상태와 확인
D0결제 실패 알림, 결제수단 업데이트 CTApast_due, 첫 실패 transaction
D1~D7앱 배너·이메일, 핵심 기능 유지Retain retry와 payment method update 추적
D8~D29읽기 전용·일부 기능 제한을 정책에 따라 적용재시도 중인 구독을 임의 canceled로 바꾸지 않음
D30 전후최종 알림, 데이터 보존·복구 경로 안내Paddle 자동 취소 결과와 webhook 확인

실제 grace 기간은 Paddle 설정, 상품 정책, 고객 유형에 맞춰 조정합니다. D8 잠금을 택한다면 Paddle이 계속 재시도하는 동안 제품만 제한하는 자체 정책임을 약관·CS·상태 모델에 명시합니다. Enterprise나 연간 고객은 자동으로 잠그기보다 운영자 검수 큐를 거칩니다. collection_mode: manual 구독에는 Retain 자동 dunning이 적용되지 않으므로 invoice due date와 영업·재무 회수 절차를 사용합니다.

업그레이드와 다운그레이드

변경권한 처리재무 처리
월간 Pro → Team즉시 권한 확대proration 확인
Team → Pro다음 갱신일부터 축소 권장남은 기간 credit 여부 확인
월간 → 연간성공 transaction 이후 연간 권한할인/환불 정책 확인
좌석 수 변경수량 기반 entitlement 재계산다음 청구액 preview 확인

무료 체험·가격 변경 동의

웹서비스 운영을 위한 약관 가이드와 맞춰, 무료 체험 후 유료 전환이나 정기결제 금액 증액은 결제 이벤트만으로 처리하지 않습니다. 고객에게 전환 일시, 변경 전후 가격, 결제 방법, 해지/취소 방법을 먼저 고지하고 명시적 동의 이력을 저장합니다.

상황Paddle 처리내부 증빙
한국 무료체험·도입 할인 종료consent_requirements의 pending/granted/voided전환 일시, 금액, 동의 버전·시각, reminder 로그
가격 인상price 변경 또는 subscription update변경 전후 가격, 적용일, 고객 동의/고지 이력
좌석 증액quantity update와 proration관리자 동의자, 시각, 변경 수량, 예상 청구액
해지Customer Portal 또는 내부 경로해지 경로, 처리 시점, 만료일까지 권한 유지 여부

해지 경로가 가입·결제보다 과도하게 복잡하면 다크패턴 리스크가 생깁니다. Paddle Customer Portal을 쓰더라도 제품 내부에서 해지/결제관리 진입점을 명확히 제공하고 이동 사실과 처리 결과를 로그로 남깁니다.

한국 subscription의 consent_requirements가 pending이면 자동 갱신 가능 상태라고 가정하지 않습니다. subscription.updated에서 상태 변화를 처리하고 granted_at 또는 voided_at을 내부 notice·terms version과 연결합니다. 이 Paddle 필드는 무료체험·introductory discount 종료를 위한 것이므로 일반 가격 인상 동의를 대체하지 않습니다.

해지와 환불의 분리

해지는 미래 갱신을 막는 것이고 환불은 과거 결제를 취소하는 것입니다. 고객센터와 코드에서 두 개념을 분리해야 합니다.

요청Paddle 처리내부 처리
다음 달부터 해지subscription cancellation만료일까지 권한 유지
즉시 해지cancellation + 권한 조정데이터/환불 정책 안내
환불adjustment/refund권한 회수, credit 제거
chargebackdispute계정 위험 플래그, 증빙 제출

Customer Portal 운영

Paddle-hosted customer portal을 쓰면 결제수단 변경, 인보이스 다운로드, 구독 관리 UX를 빠르게 제공할 수 있습니다. 2026년 1월부터 portal 자체 cancellation flow도 제공합니다. 다만 제품 안에서 결제 관리 버튼을 누르면 Paddle로 이동한다는 안내를 함께 보여줘야 합니다. API의 management_urls에는 임시 portal token이 포함되므로 DB나 로그에 장기 저장하지 말고 사용자 요청 시 생성·전달합니다. CS·감사에는 2026년 6월 추가된 subscription history를 함께 활용합니다.

운영 지표

지표의미
renewal success rate갱신 결제 성공률
past due recovery rate결제 실패 회수율
voluntary churn자발 해지
involuntary churn결제 실패 이탈
refund rate환불 비율
chargeback rate분쟁 비율

참고 자료

  • Paddle Developer - Subscription creation
  • Paddle Developer - Handle provisioning and fulfillment
  • Paddle Developer - Automatic dunning and payment recovery
  • Paddle Developer - Manually-collected subscriptions past due
  • Paddle Developer - Korean subscription consent requirements
  • Paddle Developer - Customer portal
  • Paddle Developer - Customer portal cancellation flows
  • Paddle Developer - Subscription history
  • 웹서비스 운영을 위한 약관 가이드 - 정기결제 증액·유료전환

관련 문서

약관·소비자·개인정보

Paddle MoR 결제에서도 남는 한국 법인의 약관·소비자·개인정보 책임을 정리한다. buyer terms와 자사 약관의 역할 분리, 전자상거래법 고지, 청약철회·환불, 국외이전·전자금융거래법 해당성 검토 기준을 다룬다.

검증 리포트

Paddle 글로벌 결제 가이드의 공식 문서 기준일, 검증 범위, 한계

결제 UX 설계

SaaS 유료 플랜 설계 · 가격 페이지 베스트 프랙티스, 인디해커 친화 결제 플랫폼, 구독 관리 셀프서브

템플릿 11) 정기결제 증액·무료→유료 전환 사전 동의 (구독형)

웹서비스 운영을 위한 약관 가이드 · 구독형 서비스에서 결제 금액 증액 또는 무료 제공 후 유료 전환 전 사전 동의를 받는 템플릿

구독·결제 운영

Android 앱 엔터프라이즈 운영 · grace period, account hold, offers, 가격 변경을 운영하는 기준

한국 Checkout QA 매트릭스

KRW, 한국 주소, 모바일 브라우저, 로컬 카드와 간편결제 노출을 검증하는 sandbox/live QA 표

웹훅과 권한 동기화

Paddle 이벤트 저장, 멱등성, 상태 전이, 한국 결제수단 타입 변경 대응

On this page

핵심 상태신규 구독갱신 실패, dunning과 grace업그레이드와 다운그레이드무료 체험·가격 변경 동의해지와 환불의 분리Customer Portal 운영운영 지표참고 자료