For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/web/billing.md (or send Accept: text/markdown).
결제와 구독
Stripe 체크아웃, 플랜 관리, 엔타이틀먼트 경계.
결제 서비스 선택 및 테스트
Billing에서 결제를 처리합니다. 액세스 권한은 자격으로 별도로 저장됩니다. 지속형 계정 설정을 완료한 후 실행 중인 웹 앱에서 /billing을 열어 계획 인터페이스를 확인하세요. BILLING_PROVIDER=local를 사용하면 실제 돈을 모으기보다는 지역 행동을 탐색할 수 있습니다.
지원되는 결제 제공업체 하나를 선택하고 해당 설정 가이드에 따라 고유한 테스트 제품과 가격을 만들고 명명된 서버 설정을 apps/web/.env.local.에 복사합니다. 저장하고 웹 서버를 다시 시작합니다. 해당 공급자의 샌드박스 지침을 사용하여 한 번의 체크아웃을 완료한 다음 공급자의 웹후크가 도착한 후 작업공간의 액세스 상태를 검사합니다. 웹훅은 결제 이벤트에 대해 공급자가 서버에 서명한 메시지입니다.
성공 페이지만으로는 기능의 잠금을 해제할 수 없습니다. 결제가 완료되었으나 액세스가 계속 비활성화된 경우 결제를 반복하기 전에 공급자의 웹훅 전달 및 서버의 이벤트 처리를 확인하세요. 취소 및 만료된 액세스도 테스트합니다. 전화 구매는 이 웹 결제가 아닌 별도의 RevenueCat/스토어 설정을 사용합니다.
웹 결제
웹 애플리케이션은 BILLING_PROVIDER로 선택한 청구 서비스 제공업체를 지원합니다. 스트라이프는 하나의 옵션입니다. 웹 요금제 및 구독 관리를 위한 공개/청구. 일치하는 테스트 또는 라이브 환경에서 서버 전용 자격 증명, 제품 또는 가격 ID 및 웹훅 확인 설정을 지정하려면 선택한 공급자의 가이드를 따르세요.
권한으로 인가
체크아웃 리디렉션은 활성 액세스의 증거가 아닙니다. 서버 권한이 워크스페이스가 유료 기능을 사용할 수 있는지 결정합니다. 인터페이스가 이미 액션을 숨기고 있어도 액션 경계에서 그 권한을 확인하세요.
라이프사이클 검증
샌드박스 이벤트로 활성화, 업데이트, 취소, 웹훅 처리를 검증하세요. 반복된 이벤트를 안전하게 유지하고 비활성 권한이 유료 작업을 차단하는지 확인하세요. 네이티브 모바일 구매는 별도의 RevenueCat 통합 경계로 남아 있습니다.
설치 및 설정
플랜 카탈로그는 src/product-plans.ts에 있으며 /billing 표면과 /choose-plan 온보딩 단계를 구동합니다. 빌링은 BILLING_PROVIDER=stripe, STRIPE_SECRET_KEY, 플랜·인터벌별 price id, STRIPE_WEBHOOK_SECRET으로 서버 사이드에 구성합니다. Lemon Squeezy는 대체 어댑터로 사용할 수 있습니다.
좌석 기반 요금제는 편집 가능한 좌석 스테퍼(src/seat-count.ts)를 사용하며, 수량이 결제 세션과 함께 전달되어 청구 좌석과 워크스페이스가 일치합니다. 또한 src/product-plans.ts에서 meteredUsage를 선언하면 매시간 실행되는 billing.usage-report 작업이 usage_counter 증분을 Stripe 청구 미터로 보고하며, 워크스페이스 소유자는 설정 → 사용량(src/usage-meters.ts의 USAGE_METERS)에서 월간 AI 예산과 미터별 상한선을 설정할 수 있습니다.
Checkout: POST /api/billing/checkout
Portal: POST /api/billing/portal
Webhook: POST /api/billing/webhook (signature-verified)구현 워크플로
체크아웃 리다이렉트는 보류 중인 의도일 뿐입니다 — 서명된 웹훅이 도착하고 서버 소유 엔타이틀먼트가 업데이트될 때 접근이 바뀝니다. UI가 이미 숨기고 있어도 유료 액션은 서버 경계의 엔타이틀먼트 체크(entitlement-gate.tsx / entitlement-check.ts)로 게이트하세요.
고객 포털이 플랜 변경, 해지, 결제 수단을 관리합니다. 구독 상태는 워크스페이스 멤버가 읽을 수 있게 유지하고 네이티브 모바일 구매는 별도의 RevenueCat 경계 뒤에 두세요.