고객 포털은 고객이 지원팀에 연락하지 않고도 구독을 관리하고, 청구서를 확인하며, 라이선스 키 세부 정보를 볼 수 있는 안전한 호스팅된 영역입니다.
Create Portal Session (API)
프로그래밍 방식으로 안전한 시간 제한 포털 세션을 생성합니다.
Subscriptions
정기 플랜, 업그레이드, 다운그레이드 및 추가 기능을 관리합니다.

고객 포털이란?
포털은 고객이 다음을 수행할 수 있는 신뢰할 수 있는 브랜드의 셀프 서비스 경험을 제공합니다:- 청구 내역 확인: 인보이스를 확인하고 영수증을 다운로드합니다.
- 구독 관리: 구독 세부 정보를 확인하고, 구독을 일시 중지 및 재개하거나 즉시 또는 다음 청구일에 구독을 취소합니다.
- 결제 수단 업데이트: 활성 구독의 결제 수단을 변경하거나 보류된 구독을 재활성화합니다.
- 라이선스 키 확인: 구매 항목에 연결된 모든 키에 액세스합니다.
- 간편한 탐색: 뒤로 가기 버튼을 사용해 현재 위치를 유지한 채 포털 섹션 간에 이동합니다.
주요 이점
- 지원 요청 감소: 고객이 일반적인 청구 요청을 스스로 해결합니다.
- 가치 실현 속도 향상: 청구서와 키에 즉시 접근합니다.
- 이탈 위험 감소: 갱신 및 요금제 세부정보에 대한 명확한 가시성 제공
- 설계상 안전: 만료되는 링크로 토큰화된 접근 제공
접근 방법
고객은 정적 링크 또는 일회성 동적 링크를 사용하여 포털에 접근할 수 있습니다.정적 링크 (이메일 기반 접근)
고객은 만료되지 않는 정적 링크에 이메일을 입력하여 포털 접근을 요청할 수 있습니다. 정적 포털 링크 형식은 환경에 따라 다릅니다: 테스트 모드 (테스트 및 개발용):{business_id}을 실제 비즈니스 식별자로 교체한 다음 적절한 링크를 고객과 공유하여 이메일을 입력하고 포털에 안전하게 액세스할 수 있도록 합니다.

1
Merchant flow
- Sales → Customer로 이동합니다.
- Share invite를 클릭합니다.
- Static link를 복사하여 고객에게 공유합니다.
2
Customer flow
- 정적 링크를 엽니다.
- 구매에 사용한 이메일을 입력합니다.
- 포털에 액세스할 수 있는 안전한 로그인 링크를 받습니다.
기존 고객은 자동으로 인식됩니다.
동적 링크 (매직 링크)
고객을 포털로 직접 보내는 개인화된 일회성 매직 링크입니다. 링크는 24시간 후에 만료됩니다.
1
Merchant flow
- 동적 링크를 엽니다.
- 고객에게 포털에 바로 액세스할 수 있도록 동적 링크를 공유합니다.
2
Customer flow
- 동적 링크를 엽니다.
- 이메일을 입력하지 않고도 고객 포털에 바로 액세스합니다.
포털 기능
개편된 고객 포털은 왼쪽 사이드바와 계정 관리 요구 사항을 위한 정리된 섹션을 갖춘 깔끔하고 통합된 인터페이스를 제공합니다.Active Subscriptions
요금제 이름, 가격, 갱신일, 유효 기간과 함께 모든 활성 구독을 확인합니다. 세부 정보를 확인하거나 청구 정보를 수정하거나 일시 중지 또는 취소하려면 “구독 관리”를 클릭합니다.
Payment Methods
저장된 모든 결제 수단(카드, UPI 등)을 한눈에 확인할 수 있습니다. 구독 세부 정보에서 직접 결제 수단을 편집할 수 있습니다.
Billing History
날짜, 상태, 가격 유형, 권한 및 다운로드 가능한 청구서가 포함된 자세한 표에서 모든 거래를 확인합니다.
Billing Information
구독 세부 정보 페이지에서 이름, 이메일, 전화번호 및 청구 주소를 확인하고 편집합니다.
포털 개요
메인 포털 페이지에는 모든 활성 구독, 저장된 결제 수단 및 청구 내역이 하나의 스크롤 가능한 뷰에 표시됩니다.
결제 수단 및 청구 내역
아래로 스크롤하여 저장된 결제 수단과 상태 표시기 및 다운로드 가능한 청구서를 포함한 전체 청구 내역을 확인합니다.
요금제 변경(업그레이드/다운그레이드)
제품이 Product Collections로 구성되어 있을 때 고객은 고객 포털에서 플랜 간 업그레이드 또는 다운그레이드를 직접 수행할 수 있습니다.사용 가능한 작업
요금제 변경 작동 방식
- 고객이 포털에서 현재 구독을 확인합니다.
- 제품 컬렉션을 기반으로 이용 가능한 업그레이드/다운그레이드 옵션이 표시됩니다.
- 고객이 새 플랜을 선택합니다.
- 비례 계산이 수행되고 결제가 즉시 처리됩니다(해당되는 경우).
- 구독이 새 플랜으로 업데이트됩니다.
요금제 변경은 동일한 컬렉션 내의 제품 간에서만 가능합니다. 제품은 구독 또는 사용량 기반 청구 유형이어야 합니다.
비즈니스 제어
비즈니스는 구독 설정에서 요금제 변경 동작을 구성할 수 있습니다:- Allow Subscription Updates: 고객이 구독을 업그레이드하거나 다운그레이드할 수 있는 기능을 활성화하거나 비활성화합니다
Product Collections
제품 컬렉션을 설정하고 업그레이드/다운그레이드 경로를 구성하는 방법을 알아보세요.
- 고객이 구독 세부 정보 페이지에서 Change Plan을 클릭합니다.
- 제품 컬렉션을 기준으로 이용 가능한 업그레이드/다운그레이드 옵션이 표시됩니다.
- 고객이 새 플랜을 선택합니다. Confirm Plan Change 패널에 현재 플랜과 변경된 플랜, 항목별 내역(기존 플랜에 대한 크레딧, 새 플랜에 대한 청구 금액), 세금 및 현재 결제해야 할 금액이 표시됩니다. 고객은 여기에서 할인 코드도 추가할 수 있습니다.
- 고객이 **Pay ${amount}**를 클릭하여 확인합니다.
- 일할 계산이 적용되고 결제가 처리됩니다. 저장된 결제 수단으로 처리되거나, 비즈니스에서 payment link를 통해 플랜 변경 결제를 수집하는 경우 호스팅된 checkout 페이지를 통해 처리됩니다(아래 참조).
- 구독이 새 플랜으로 업데이트됩니다. 업데이트가 즉시 적용되는지, 아니면 결제가 완료된 후에만 적용되는지는 payment failure handling에 따라 달라집니다. payment link로 결제한 플랜 변경은 항상 결제가 완료될 때까지 대기합니다.


플랜 변경은 동일한 컬렉션 내 제품 간에만 가능합니다. 제품의 billing type은 subscription 또는 usage-based여야 합니다.
Payment Link를 통한 플랜 변경 결제 수집
기본적으로 즉시 플랜 변경을 진행하면 고객의 저장된 결제 수단으로 직접 청구됩니다. Collect Plan Change Payments by Payment Link를 활성화하면 동작이 변경됩니다. 저장된 카드로 청구하는 대신 고객이 결제를 위해 Dodo Checkout 페이지로 이동합니다. 이는 청구 금액이 발생하는 업그레이드와 다운그레이드 모두에 적용됩니다.

checkout 결제가 성공할 때까지 구독은 current plan을 유지합니다. 결제가 실패하거나 중단되면 구독은 변경되지 않으므로 고객은 동일한 checkout session에서 다시 시도할 수 있습니다. 예약된 다운그레이드(
effective_at: next_billing_date)는 영향을 받지 않으며 checkout을 거치지 않고 다음 billing date에 계속 적용됩니다.Plan Change via Payment Link (API)
collect_via_payment_link로 payment link를 요청하고 응답을 처리하는 방법입니다.비즈니스 제어
비즈니스는 Subscription Settings에서 포털의 구독 동작을 구성할 수 있습니다.- Allow Subscription Updates: 고객이 구독을 업그레이드하거나 다운그레이드할 수 있는 기능을 활성화하거나 비활성화합니다.
- Allow Subscription Cancellation: 고객이 직접 구독을 취소할 수 있는 기능을 활성화하거나 비활성화합니다.
- Allow Subscription Pause: 고객이 직접 구독을 일시 중지하고 재개할 수 있는 기능을 활성화하거나 비활성화합니다.
- Collect Plan Change Payments by Payment Link: 저장된 결제 수단으로 청구하는 대신 즉시 플랜 변경 비용을 결제할 checkout 페이지로 고객을 이동합니다. 기본값은 비활성화입니다.
Product Collections
제품 컬렉션을 설정하고 업그레이드/다운그레이드 경로를 구성하는 방법을 알아보세요.
구독 세부 정보
고객이 활성 상태인 구독에서 “Manage subscription”을 클릭하면 구독 세부 정보 페이지로 이동합니다. 이 페이지에는 다음 정보가 표시됩니다.- 플랜 세부 정보: 구독 이름, 가격, 갱신일 및 유효 기간
- 결제 수단: 구독에 연결된 카드 또는 결제 수단과 “Edit” 버튼
- 청구 정보: 이름, 이메일, 전화번호 및 청구 주소와 “Edit” 버튼
- 청구 내역: 해당 구독의 모든 결제 내역을 보여주는 상세 표
- Pause: 셀프서비스 일시 중지를 허용한 경우 표시되는 구독 일시 중지 옵션
- Cancel Subscription: 구독을 취소하는 눈에 띄는 버튼

구독 취소
고객은 구독 세부 정보 페이지에서 직접 구독을 취소할 수 있습니다. “Cancel Subscription”을 클릭하면 두 가지 옵션이 있는 확인 대화 상자가 열립니다.- 다음 billing date에 취소: 현재 billing period가 종료될 때까지 구독이 활성 상태로 유지된 후 자동으로 취소됩니다.
- 지금 취소: 구독이 즉시 취소됩니다.
셀프서비스 취소는 Settings → Subscriptions 아래의 Allow Subscription Cancellation 설정으로 제어되며, 기본적으로 활성화되어 있습니다. 이 설정을 끄면 Cancel Subscription 버튼이 비활성화되고 고객에게 문의하라는 툴팁이 표시되며, 포털에서 제공되는 두 가지 취소 경로(지금 취소 및 다음 billing date에 취소)가 모두 거부됩니다. 이미 예약된 취소가 있는 고객은 이를 철회할 수 있는 옵션을 계속 사용할 수 있으므로 구독을 유지하도록 선택할 수 있습니다. 직접 수행하는 취소에는 영향을 주지 않습니다.

취소 사유
취소를 확인하기 전에 고객에게 **“Why are you cancelling?”**이라고 묻고, 엄선된 목록에서 사유를 선택하도록 요청합니다. 사유는 구독에 저장되고 webhook payload 및 API에 표시되므로, 이탈 원인을 분석하고 고객 재유치 플로우를 맞춤 설정할 수 있습니다.
선택한 값은 구독의
cancellation_feedback 필드에 기록됩니다. 선택 사항으로 자유 형식 텍스트 cancellation_comment도 수집할 수 있습니다.
subscription.cancelled webhook payload에도 포함되며, API를 통해 취소를 예약하거나 실행할 때 PATCH /subscriptions/{subscription_id}에서 프로그래밍 방식으로 값을 입력할 수 있습니다.
구독 일시 중지
일시 중지는 구독을 계속 유지하는 것과 완전히 취소하는 것 사이에서 고객에게 중간 선택지를 제공합니다. 일시 중지된 구독은 청구를 중단하지만 플랜과 내역은 유지하므로, 고객은 처음부터 다시 시작하지 않고 나중에 구독을 재개할 수 있습니다. 고객은 구독 세부 정보 페이지에서 일시 중지 대화 상자를 엽니다. 대화 상자에는 현재 플랜이 표시되고, 액세스가 즉시 종료된다는 경고와 청구 날짜가 어떻게 변경되는지에 대한 설명이 표시됩니다. 고객은 Pause subscription을 클릭하여 확인합니다.
- 액세스가 즉시 중단됩니다. 구독에 포함된 기능, 다운로드 및 라이선스 키는 구독이 재개될 때까지 작동하지 않습니다.
- 일시 중지 종료일은 없습니다. 고객이 재개할 때까지 구독은 일시 중지 상태로 유지됩니다.
- 시간이 손실되지 않습니다. 다음 billing date와 renewal date가 모두 일시 중지 기간만큼 뒤로 이동합니다.
active로 돌아가고 액세스가 복원됩니다.
셀프서비스 일시 중지는 Settings → Subscriptions 아래의 Allow Subscription Pause 설정으로 제어되며, 기본적으로 비활성화되어 있습니다. 이 설정이 꺼져 있는 동안 고객은 새로 일시 중지를 시작할 수 없습니다. 그러나 이미 일시 중지된 고객은 자신이 시작한 일시 중지를 계속 재개할 수 있습니다. 대시보드에서 직접 수행하는 일시 중지에는 영향을 주지 않습니다.
How Pausing Works
청구 영향, 사용량 정산 및 webhook을 포함한 전체 일시 중지 동작입니다.
결제 수단 업데이트
고객은 결제 수단 옆의 “Edit”를 클릭하여 구독 세부 정보 페이지에서 직접 결제 수단을 업데이트할 수 있습니다. 이 기능은 결제 실패로 보류 상태가 된 구독을 재활성화할 때 특히 중요합니다.보류 상태의 구독 재활성화
결제 실패로 인해 구독이on_hold 상태가 되면 고객은 구독을 재활성화하기 위해 결제 수단을 업데이트해야 합니다. 업데이트 프로세스는 자동으로 다음을 수행합니다.
- 미결제 잔액에 대한 청구를 생성합니다.
- 청구서(invoice)를 생성합니다.
- 새 결제 수단을 사용하여 결제를 처리합니다.
- 결제가 성공하면 구독을
active상태로 재활성화합니다.
on_hold 구독의 결제 수단을 성공적으로 업데이트하면 고객에게 확인 페이지가 표시되고 결제 성공 및 구독 재활성화에 대한 이메일 알림이 전송됩니다.결제 수단 업데이트 플로우
1
Access subscription details
포털 홈 페이지에서 활성 상태인 구독의 “Manage subscription”을 클릭합니다.
2
Click Edit on payment method
결제 수단 옆의 “Edit” 버튼을 클릭하여 결제 수단 업데이트 인터페이스를 엽니다.
3
Select or add payment method
기존에 저장된 결제 수단을 선택하거나 카드 정보를 안전하게 입력하여 새 결제 수단을 추가합니다.
4
Confirm changes
업데이트를 확인합니다.
on_hold 구독의 경우 미결제 잔액에 대한 청구가 자동으로 생성됩니다.5
Complete payment (if on hold)
구독이 보류 상태인 경우 고객은 미결제 잔액을 결제하는 단계로 리디렉션됩니다. 결제가 성공하면 구독이 자동으로 재활성화됩니다.
6
Confirmation
고객은 결제 수단이 업데이트되었다는 확인을 받으며, 해당하는 경우 구독이 재활성화되었다는 안내도 받습니다.
통합 예시
API를 통해 특정 고객에 대한 기간 제한 Customer Portal session을 생성한 다음 사용자를 session URL로 리디렉션합니다.통합 Customer Portal
비즈니스별 고객 포털 외에도 Dodo Payments는 customer.dodopayments.com에서 Unified Customer Portal을 제공합니다. 고객은 이 포털에서 Dodo Payments를 사용하는 여러 비즈니스의 모든 구매 내역과 구독을 확인하고 관리할 수 있습니다.
통합 포털 기능
- 비즈니스 간 가시성: 모든 Dodo Payments merchant의 구매 내역과 구독을 한곳에서 확인합니다.
- 중앙 집중식 관리: 하나의 대시보드에서 여러 비즈니스의 구독을 관리합니다.
- 통합 청구 내역: 모든 구매의 invoice와 결제 내역에 액세스합니다.
- Single sign-on: 이메일로 한 번 로그인하여 모든 Dodo Payments merchant의 구매 내역에 액세스합니다.
문제 해결
- 링크 만료: 새 동적 링크를 생성하여 전송합니다.
- 이메일을 인식할 수 없음: 고객에게 구매에 연결된 이메일을 사용하도록 안내합니다.
- 구독 보류: 구독이 보류 상태인 경우 고객은 포털에서 결제 수단을 업데이트하여 미결제 잔액을 정산하고 구독을 재활성화해야 합니다. 업데이트 프로세스에서 미결제 잔액이 자동으로 청구됩니다.
- 결제 수단 업데이트 실패:
on_hold구독의 업데이트 과정에서 결제가 실패하면 구독은 보류 상태로 유지됩니다. 고객은 다른 결제 수단으로 다시 시도할 수 있습니다.
Design & Theme Customization
Design 페이지에서 미리 구성된 테마, 타이포그래피, 색상 및 실시간 미리보기를 사용하여 고객 포털의 모양을 맞춤 설정하세요.