Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
Entitlements는 성공적인 결제 또는 활성 구독을 실제 액세스로 전환합니다: 고객의 받은 편지함에 라이선스 키, Discord 역할, GitHub 저장소, Notion 템플릿, Framer 리믹스 링크, Telegram 채팅 초대 또는 다운로드 가능한 파일 번들로 제공됩니다. Dodo Payments는 결제 라이프사이클이 변경될 때 액세스를 자동으로 발급, 추적 및 취소합니다.

Entitlements란 무엇인가요?
Entitlement는 고객에게 제공하는 항목의 재사용 가능한 정의입니다: Pro 라이선스 키, “Patrons” Discord 역할, 프라이빗 GitHub 저장소에 대한 액세스, 다운로드 가능한 전자책 번들. Dodo Payments는 entitlements를 제품에 연결한 후 나머지를 처리합니다. 고객이 제품을 구매하면 Dodo Payments는 grant를 생성합니다. 이는 해당 entitlement의 단일 고객 발급을 의미합니다. Grant는 상태 변화를 겪습니다: 배송이 진행 중일 때는pending, 고객이 액세스할 수 있게 되면 delivered, 배송이 완료되지 않을 경우 failed, 액세스가 철회되면 revoked.
사용 가능한 통합
Dodo Payments는 각 entitlement를 전용 통합을 통해 제공합니다. 판매하는 항목에 맞는 통합을 선택하세요.License Keys
고유한 라이선스 키를 생성하고 활성화 제한 및 만료를 설정할 수 있습니다. 소프트웨어, 플러그인 및 CLI에 최적입니다.
Digital Files
사전 서명된 다운로드 URL과 선택적 지침을 통해 다운로드 가능한 파일(전자책, 템플릿, 미디어)을 제공합니다.
Discord
고객이 구매했을 때 Discord 서버에 역할을 부여합니다. 취소 시 자동으로 취소합니다.
GitHub
고객을 선택한 권한 수준으로 프라이빗 저장소의 협력자로 추가합니다.
Telegram
고객을 구매 후 개인 Telegram 채팅 또는 채널에 추가합니다.
Framer
결제한 고객을 위해 Framer 템플릿 리믹스 링크를 잠금 해제합니다.
Notion
구매 시 고객의 작업 공간에 Notion 템플릿을 복제합니다.
Grants 작동 방식
Grant는 웹훅으로 이미 수신되는 동일한 결제 및 구독 이벤트에 의해 구동됩니다. 구매를 위해 직접 grant API를 호출할 필요가 없습니다. Dodo Payments는 기본 결제 라이프사이클에 따라 grant를 자동으로 생성 및 취소합니다.Grant 라이프사이클
Created
결제가 완료되거나 구독이 활성화될 때 grant가 생성됩니다. 라이선스 키는 즉시
delivered로 이동합니다. 다른 모든 통합은 pending에서 시작됩니다. OAuth 기반 통합(Discord, GitHub, Notion)은 고객이 동의를 완료하기 위해 방문해야 하는 oauth_url를 포함합니다. 플랫폼 직접 통합(Telegram, Framer, Digital Files)은 배송이 준비되는 동안 잠깐만 pending에 머물러 있다가 delivered로 전환됩니다.Delivered
배달이 완료되면(라이선스 키 생성, 역할 할당, 저장소 액세스 부여, 파일 링크 해결, OAuth 완료) grant는
delivered로 이동하고 delivered_at가 설정됩니다.Failed
통합 호출이 재시도 불가능한 오류(OAuth 토큰 취소, 권한 거부, 파일이 더 이상 존재하지 않음)를 반환하면 grant는
failed로 이동합니다. error_code 및 error_message 필드는 이유를 캡처합니다.이벤트별 Grant 동작
| 이벤트 | 동작 |
|---|---|
payment.succeeded (단일 결제) | 연결 된 모든 entitlement에 대해 각 grant를 발급합니다. |
payment.succeeded (구독 연결 결제) | 무작위 동작. Grant는 아래의 구독 이벤트에 의해 구동됩니다. |
subscription.active | 아직 grant가 없는 모든 붙여진 entitlements에 대해 grant를 발급합니다. 동일한 구독의 경우 이전에 취소된 모든 grant를 재허용합니다. |
subscription.renewed | 무작위 동작. 기존 grant는 갱신을 통해 지속됩니다. |
subscription.on_hold | 모든 배달 및 대기 중인 grant를 취소합니다. revocation_reason: subscription_on_hold. |
subscription.cancelled | 모두 취소합니다. revocation_reason: subscription_cancelled. |
subscription.expired | 모두 취소합니다. revocation_reason: subscription_expired. |
subscription.plan_changed | 현재 grant를 모두 취소한 다음, 새 계획의 entitlements에 대한 grant를 발급합니다. revocation_reason: plan_changed. |
refund.succeeded (단일 결제) | 해당 결제에 대한 grant를 취소합니다. revocation_reason: refund. |
| Manual API revoke | revocation_reason: manual로 취소합니다. 수동 취소는 구독 갱신 시 자동으로 재허용되지 않습니다. |
| License key disabled | 라이선스 키 grant의 경우, 기본 키를 비활성화하면 revocation_reason: license_key_disabled로 grant가 취소됩니다. 키가 다시 활성화되면 grant는 자동으로 재활성화됩니다. |
| Platform drift detected | 통합의 플랫폼 측이 동기화에서 벗어난 경우 (Discord 역할 수동 제거, GitHub 앱이 저장소 액세스를 잃은 상태, 조정 패스가 누락된 대상을 감지하는 경우), grant는 revocation_reason: platform_external로 취소됩니다. 기본적인 플랫폼 문제가 해결되기 전까지는 구독 갱신 시 자동으로 재허용되지 않습니다. |
구독 기반 grant는
(entitlement, customer, subscription)마다 멱등성을 가집니다. 갱신 및 재활성화는 중복 grant를 생성하지 않습니다. 단발성 grant는 (entitlement, customer, payment)마다 멱등성을 가집니다.첫 번째 entitlement를 만드세요
Pick an integration
통합 유형을 선택하세요: License Key, Digital Files, Discord, GitHub, Telegram, Framer, Notion. 플랫폼 통합의 경우, 먼저 계정을 연결하세요.
Configure delivery
통합별 필드를 작성하세요. 예를 들어, GitHub는 저장소와 권한 수준을 요청하고, Discord는 서버와 선택적 역할을 요청하며, License Key는 활성화 제한 및 만료를 요청합니다.

Entitlements를 제품에 첨부하기
제품을 열고, 고급 설정 → Entitlements & Credits를 확장하고, 제품 구매 시 제공할 entitlements를 선택합니다. 단일 제품은 여러 entitlements를 동시에 제공합니다. 예를 들어, Pro 계획은 라이선스 키, GitHub 액세스 및 Discord 역할을 포함할 수 있습니다.
고객 경험
이메일 및 고객 포털
고객은 구매 후 라이선스 키, 다운로드 링크, OAuth 초대 링크 또는 플랫폼 초대가 포함된 배송 이메일을 수신합니다. 동일한 정보는 주문 내역 아래의 고객 포털에서 무기한으로 확인할 수 있습니다.OAuth 기반 배송
Discord, GitHub, Notion 구독자 액세스는 고객이 Dodo Payments에 액세스를 부여하도록 승인해야 합니다. 이러한 grant는 고객이 이메일 또는 고객 포털의 링크를 사용하여 OAuth 흐름을 완료할 때까지pending 상태에 머무릅니다. 승인이 완료되면 grant는 delivered로 이동하며 플랫폼 액세스가 즉시 제공됩니다.
취소
취소된 grant는 플랫폼 수준에서 제거됩니다: Discord 역할이 제거되고, GitHub 협력자가 제거되고, 라이선스 키가 비활성화됩니다. 고객 포털에 변화가 반영됩니다.Grant 관리
대시보드에서 임의의 entitlement를 열어 그에 대한 grants를 확인하세요. grant 세부 패널에서는 전체 grant, 상태 필터, 고객 정보, 배송 날짜 및 취소 작업을 표시합니다. 또한 프로그래밍 방식으로 grants를 관리할 수 있습니다:API 관리
Create Entitlement
모든 통합 유형의 새 entitlements 생성.
List Entitlements
통합 유형별로 필터링하여 entitlements 나열.
Get Entitlement
Entitlements 및 해석된 구성을 검색합니다.
Update Entitlement
이름, 설명 또는 통합 구성을 업데이트합니다.
Delete Entitlement
Entitlement를 소프트 삭제합니다. 기존 grant는 영향을 받지 않습니다.
Upload File
Digital Files entitlement에 파일 업로드 (최대 100 MB).
List Grants
상태 및 고객 필터를 사용하여 entitlement에 대한 모든 grant를 나열.
Revoke Grant
단일 grant를 수동으로 취소합니다.
Webhooks
Dodo Payments는 grant 라이프사이클을 위해 네 개의 웹훅 이벤트를 발생시킵니다. 이러한 이벤트를 구독하여 각 고객이 액세스 가능한 내용을 귀하의 애플리케이션과 동기화하세요.| 이벤트 | 발생 시기 |
|---|---|
entitlement_grant.created | 새로운 grant가 생성됩니다. 라이선스 키 grant는 delivered으로 도착합니다. 다른 모든 통합은 pending에 도착하며 플랫폼 호출이 성공한 후 delivered으로 전환됩니다(또는 OAuth 기반 통합의 경우 고객이 인증하면). |
entitlement_grant.delivered | grant가 전달됨 상태로 전환됩니다. 고객은 이제 액세스를 갖습니다. |
entitlement_grant.failed | grant를 전달할 수 없습니다. error_code 및 error_message를 확인합니다. |
entitlement_grant.revoked | 액세스가 철회되었습니다. revocation_reason를 확인합니다. |
Entitlement Grant Webhook Payloads
전체 페이로드 스키마, 샘플 이벤트 및
revocation_reason 참조를 봅니다.모범 사례
- 한 전달 채널에 한 entitlement를 사용하세요. 각기 다른 역할 의도를 가진 제품에 동일한 Discord entitlement를 공유하지 마세요. 깔끔한 취소를 위해 역할별로 하나씩 생성하세요.
- 테스트 모드에서 먼저 테스트하세요. Entitlement를 만든 후 테스트 제품에 첨부하고, 체크아웃을 실행한 다음 grant가
pending → delivered를 통해 전환되는 것을 지켜보세요. 테스트 구독을 취소하면 grant가 철회되는지 확인하세요. entitlement_grant.delivered을 청취하세요,payment.succeeded가 아닙니다. 결제가 성공했을 때 완성이 끝나기 전일 수 있습니다 (특히 OAuth 흐름의 경우). 귀하의 시스템에서 종속 기능을 해제하기 전에 전달된 이벤트를 기다리세요.entitlement_grant.failed를 실행 가능한 것으로 취급하세요. 실패한 grant는 고객이 결제했지만 액세스하지 못했다는 의미입니다. 이를 지원팀에 알리거나 재발급을 트리거하세요.revocation_reason을 귀하의 유지 흐름에 매핑하세요.subscription_on_hold취소는 복구 가능성있습니다 (고객이 카드 정보를 업데이트할 수 있습니다).manual취소는 의도적입니다. 고객 커뮤니케이션에서 이들을 다르게 취급하세요.