고객이 결제할 때 라이선스 키, 다운로드 가능한 파일, 기능 플래그 및 Discord, GitHub, Telegram, Framer, Notion과 같은 플랫폼에 대한 액세스를 자동으로 제공합니다.
자격 승인으로 성공적인 결제 또는 활성 구독을 실제 접근 권한으로 바꾸세요: 고객의 받은 편지함에 있는 라이선스 키, 애플리케이션이 확인하는 기능 플래그, Discord 역할, GitHub 저장소, Notion 템플릿, Framer 리믹스 링크, Telegram 채팅 초대 또는 다운로드 가능한 파일 번들. Dodo Payments는 결제 생명주기가 변경될 때 자동으로 그 접근 권한을 발급, 추적, 취소합니다.
The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.
Entitlement는 고객에게 제공하는 항목의 재사용 가능한 정의입니다: Pro 라이선스 키, “Patrons” Discord 역할, 프라이빗 GitHub 저장소에 대한 액세스, 다운로드 가능한 전자책 번들. Dodo Payments는 entitlements를 제품에 연결한 후 나머지를 처리합니다.고객이 제품을 구매하면 Dodo Payments는 grant를 생성합니다. 이는 해당 entitlement의 단일 고객 발급을 의미합니다. Grant는 상태 변화를 겪습니다: 배송이 진행 중일 때는 pending, 고객이 액세스할 수 있게 되면 delivered, 배송이 완료되지 않을 경우 failed, 액세스가 철회되면 revoked.
Entitlements는 fulfillment(고객이 액세스 가능한가?)를 통제하고, Credits는 consumption(얼마나 사용할 수 있는가?)을 통제합니다. 둘 다 같은 제품에 첨부할 수 있습니다. 크레딧에 대한 자세한 내용은 Credit-Based Billing을 참조하세요.
결제가 완료되거나 구독이 활성화되면 승인이 생성됩니다. 라이선스 키와 기능 플래그는 즉시 delivered로 이동합니다. 다른 모든 통합은 pending에서 시작됩니다. OAuth 기반 통합(Discord, GitHub, Notion)은 고객이 동의를 완료하기 위해 방문해야 하는 oauth_url를 포함합니다. 플랫폼 직접 통합(Telegram, Framer, 디지털 파일)은 제공이 준비되는 동안에만 잠깐 pending에 있지만, 제공이 완료되면 delivered로 전환됩니다.
2
Delivered
전달이 완료되면(라이선스 키 생성, 역할 할당, 저장소 접근 허용, 파일 링크 해결, OAuth 완료) 승인은 delivered로 이동하고 delivered_at가 설정됩니다.
3
Failed
통합 호출이 재시도 불가 오류를 반환하면 (OAuth 토큰 취소, 권한 거부, 파일이 더 이상 존재하지 않음), 승인은 failed로 이동합니다. error_code와 error_message 필드가 이유를 기록합니다.
4
Revoked
접근이 철회될 때 (구독 취소, 환불 발행 또는 상인에 의한 철회), 승인은 revoked로 이동합니다. revocation_reason 필드는 트리거를 기록합니다.
아직 없는 첨부된 자격에 대한 승인을 발급합니다. 동일한 구독에 대해 이전에 취소된 승인도 재발급합니다.
subscription.renewed
작업 안 함. 기존 승인은 갱신을 통해 지속됩니다.
subscription.on_hold
모든 제공 및 대기 중인 승인을 취소합니다. revocation_reason: subscription_on_hold.
subscription.cancelled
모두 취소합니다. revocation_reason: subscription_cancelled.
subscription.expired
모두 취소합니다. revocation_reason: subscription_expired.
subscription.plan_changed
모든 현재 승인을 취소한 후 새로운 계획의 자격에 대한 승인을 발급합니다. revocation_reason: plan_changed.
refund.succeeded (일회성 결제)
해당 결제에 대한 승인을 취소합니다. revocation_reason: refund.
수동 API 취소
revocation_reason: manual로 취소합니다. 수동 취소는 구독 갱신 시 자동 재발급되지 않습니다.
라이선스 키 비활성화
라이선스 키 승인의 경우, 기본 키 비활성화는 revocation_reason: license_key_disabled로 승인을 취소합니다. 키가 재활성화되면 승인은 자동으로 재활성화됩니다.
플랫폼 드리프트 감지
통합의 플랫폼 측면이 동기화에서 이탈한 경우(수동으로 제거된 Discord 역할, GitHub 앱이 저장소 접근을 잃음, 또는 대조 패스가 누락된 대상을 감지함), 승인은 revocation_reason: platform_external로 취소됩니다. 플랫폼 문제가 해결되지 않은 상태에서 구독 갱신 시 자동 재발급되지 않습니다.
구독 기반 승인은 (entitlement, customer, subscription)마다 비절개적입니다; 갱신 및 재활성화로 인해 중복 승인이 생성되지 않습니다. 일회성 승인은 (entitlement, customer, payment)마다 비절개적입니다.
Discord, GitHub, Notion 구독자 접근은 고객이 Dodo Payments에 그들에게 접근을 제공하도록 승인해야 합니다. 이러한 승인들은 고객이 이메일이나 고객 포털의 링크를 사용하여 OAuth 흐름을 완료할 때까지 pending 상태로 유지됩니다. 고객이 승인하면, 승인은 delivered로 이동하고 플랫폼 접근이 즉시 제공됩니다.
대시보드에서 자격을 열면 해당 승인들을 볼 수 있습니다. 승인 세부 정보 패널에는 총 승인 수, 상태 필터, 고객 정보, 전달 날짜, 및 취소 조치가 표시됩니다.승인을 프로그래밍 방식으로 관리할 수 있습니다:
import DodoPayments from 'dodopayments';const client = new DodoPayments({ bearerToken: process.env['DODO_PAYMENTS_API_KEY'],});// List grants for an entitlementconst grants = await client.entitlements.grants.list('ent_abc123', { status: 'Delivered',});// Revoke a single grantawait client.entitlements.grants.revoke('grant_xyz789', { id: 'ent_abc123',});