선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.
Discord entitlement는 결제 고객을 Discord 서버에 추가하고 역할을 부여할 수 있습니다. 고객은 구독이 활성화되거나 일회성 결제가 성공한 후 Discord 계정을 연결합니다. 취소 또는 환불 등으로 grant가 취소되면 Dodo Payments가 역할을 제거하고 서버에서 고객을 제거합니다.
Discord가 새 탭에서 열립니다. 로그인하고 액세스를 제한할 서버를 선택한 다음 해당 서버에서 bot의 권한을 승인합니다: Manage Roles, Kick Members 및 Create Invite.
Discord OAuth: pick the server to add the bot to.
Discord OAuth: confirm the bot's permissions on the server.
Discord가 다시 리디렉션하면 확인 페이지에 서버가 연결되었다는 메시지가 표시됩니다.
Server connected. Return to the Dodo Payments dashboard to continue.
3
Pick a Server and Role
대시보드로 돌아와 연결한 Server를 선택합니다. 전달 시 역할을 부여하려면 Role에서 역할을 선택합니다. 서버 멤버십만 부여하려면 Role을 No specific role로 둡니다. entitlement의 Name을 입력하고 Create Entitlement를 클릭합니다.
Dodo Payments가 Pending 상태로 grant를 생성합니다. Dodo Payments는 즉시 Discord authorization URL을 생성하려고 시도하고 이를 oauth_url에 저장합니다. 이 작업이 실패하면 고객이 accept flow를 시작할 때까지 oauth_url는 null 상태로 유지됩니다.
고객이 Discord에서 Dodo Payments를 authorize합니다. 봇이 고객을 서버에 추가하고 구성된 role을 할당하면 grant가 Delivered 상태로 전환됩니다.
grant가 revoked되면(구독이 cancelled, paused, put on hold 상태가 되거나 만료된 경우, 일회성 결제가 refunded된 경우 또는 사용자가 grant를 revoke한 경우) 봇이 role을 제거하고 서버에서 고객을 제거합니다. grant가 Revoked 상태로 전환됩니다.
인증 링크는 생성 후 30분이 지나면 만료됩니다. 이후 고객이 Customer Portal로 돌아오면 Dodo Payments가 새 링크를 생성합니다. 고객이 직접 서버를 나가면 Dodo Payments가 revocation_reason: platform_external와 함께 해당 grant를 취소합니다.
Dodo Payments bot의 역할을 부여하려는 역할보다 위에 배치하세요. Discord에서는 bot이 자체 최고 역할과 같거나 그보다 높은 역할을 부여할 수 없습니다. bot 및 통합 역할과 같은 관리형 역할은 부여할 수 없습니다.
// client is a *dodopayments.Client, for example from// dodopayments.NewClient(option.WithEnvironmentTestMode()); ctx is a context.Context.client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{ Name: dodopayments.F("Patrons Discord Role"), IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeDiscord), IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam]( dodopayments.IntegrationConfigDiscordConfigParam{ GuildID: dodopayments.F("123456789012345678"), RoleID: dodopayments.F("987654321098765432"), }, ),})
entitlement_grant.created가 status: "Pending"와 함께 발생합니다. oauth_url에 authorization URL이 이미 저장되어 있을 수 있습니다. 값이 null인 경우 고객이 Customer Portal에서 accept flow를 시작하면 값이 채워집니다.
고객이 서버에 참여하고 role이 할당되면 entitlement_grant.delivered가 발생합니다.
고객이 Discord 인증을 완료할 때까지 grant는 Pending 상태로 유지됩니다. 대시보드에서 entitlement를 열고 고객의 grant를 확인하세요. 여전히 Pending라면 고객에게 Customer Portal을 열고 Discord entitlement에서 Connect를 클릭하도록 안내하세요.
Grant moves to failed with permission errors
Dodo Payments 봇이 여전히 서버에 있고 Manage Roles 권한을 보유하며, 할당되는 role보다 상위에 있는지 확인하세요. 봇이 서버에서 제거되면 Dodo Payments는 해당 서버의 pending 및 delivered grant를 revoke합니다. entitlement를 다시 저장해도 봇의 권한이 아니라 entitlement의 설정만 확인합니다. 권한을 수정한 후 고객에게 Customer Portal을 열고 Discord entitlement의 Connect를 클릭하여 grant를 다시 시도하도록 안내하세요.
Customer cancelled but still has the role
취소하면 역할이 제거되고 서버에서 고객이 제거됩니다. grant에 Revoked가 표시되지만 고객이 여전히 서버에 있다면 bot에 Manage Roles 및 Kick Members 권한이 있고 해당 역할보다 위에 있는지 확인하세요. 고객의 Discord 앱에 여전히 역할이 표시되면 새로 고치도록 안내하세요. 서버 측 상태를 기준으로 판단합니다.
마지막 수정일 2026년 9월 28일
이 페이지가 도움이 되었나요?
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Dodo Payments Documentation","description":"Documentation for Dodo Payments — the all-in-one payments, billing, and merchant of record platform for SaaS, AI, and digital products.","colors":{"primary":"#779812","light":"#C6FE1E","dark":"#166534"},"logo":{"light":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97","dark":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/dark.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=cd6c20238a54526436f21c43fee51b26"},"favicon":"https://mintcdn.com/dodopayments/doYQc9oUE-WNz0cs/favicon.svg?fit=max\u0026auto=format\u0026n=doYQc9oUE-WNz0cs\u0026q=85\u0026s=271c6cc8ce7d6bf4d7f2b9cca029e004","background":{"color":{"light":"#FFFFFF","dark":"#0D0D0D"}},"navbar":{"links":[{"icon":"link","href":"https://docs.dodopayments.com/llms-full.txt","label":"llms-full.txt"},{"icon":"discord","href":"https://discord.gg/bYqAp4ayYh","label":"Community"},{"icon":"house","href":"https://app.dodopayments.com/","label":"Dashboard"}]},"footer":{"socials":{"x":"https://x.com/dodopayments","linkedin":"https://linkedin.com/company/dodopayments","website":"https://dodopayments.com","discord":"https://discord.gg/bYqAp4ayYh","github":"https://github.com/dodopayments","instagram":"https://www.instagram.com/dodo.payments","facebook":"https://www.facebook.com/profile.php?id=61565515607280"}},"seo":{"metatags":{"og:site_name":"Dodo Payments Documentation","twitter:card":"summary_large_image"},"indexing":"navigable"},"fonts":{"heading":{"family":"ApfelGrotezk","weight":400,"source":"fonts/ApfelGrotezk-Regular.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"fonts/Inter-Variable.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"es","href":"es/introduction"},{"language":"ar","href":"ar/introduction"},{"language":"fr","href":"fr/introduction"},{"language":"de","href":"de/introduction"},{"language":"id","href":"id/introduction"},{"language":"ja","href":"ja/introduction"},{"language":"ko","href":"ko/introduction"},{"language":"pt-BR","href":"pt-BR/introduction"},{"language":"vi","href":"vi/introduction"},{"language":"cn","href":"cn/introduction"},{"language":"hi","href":"hi/introduction"},{"language":"it","href":"it/introduction"},{"language":"sv","href":"sv/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dodopayments","hasAudioNarration":false,"actualSubdomain":"dodopayments","customDomains":["docs.dodopayments.com"],"gitSource":{"type":"github","owner":"dodopayments","repo":"dodo-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af61516aad23a11c9aa58ca","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"en","tag":"API Reference","count":181},{"language":"en","tag":"Docs","count":178},{"language":"ar","tag":"Docs","count":153},{"language":"cn","tag":"Docs","count":153},{"language":"de","tag":"Docs","count":153},{"language":"es","tag":"Docs","count":153},{"language":"fr","tag":"Docs","count":153},{"language":"hi","tag":"Docs","count":153},{"language":"id","tag":"Docs","count":153},{"language":"it","tag":"Docs","count":153},{"language":"ja","tag":"Docs","count":153},{"language":"ko","tag":"Docs","count":153},{"language":"pt-BR","tag":"Docs","count":153},{"language":"sv","tag":"Docs","count":153},{"language":"vi","tag":"Docs","count":153},{"language":"ar","tag":"API Reference","count":151},{"language":"cn","tag":"API Reference","count":151},{"language":"de","tag":"API Reference","count":151},{"language":"es","tag":"API Reference","count":151},{"language":"fr","tag":"API Reference","count":151},{"language":"hi","tag":"API Reference","count":151},{"language":"id","tag":"API Reference","count":151},{"language":"it","tag":"API Reference","count":151},{"language":"ja","tag":"API Reference","count":151},{"language":"ko","tag":"API Reference","count":151},{"language":"pt-BR","tag":"API Reference","count":151},{"language":"sv","tag":"API Reference","count":151},{"language":"vi","tag":"API Reference","count":151},{"language":"en","tag":"Features","count":87},{"language":"ar","tag":"Features","count":81},{"language":"cn","tag":"Features","count":81},{"language":"de","tag":"Features","count":81},{"language":"es","tag":"Features","count":81},{"language":"fr","tag":"Features","count":81},{"language":"hi","tag":"Features","count":81},{"language":"id","tag":"Features","count":81},{"language":"it","tag":"Features","count":81},{"language":"ja","tag":"Features","count":81},{"language":"ko","tag":"Features","count":81},{"language":"pt-BR","tag":"Features","count":81},{"language":"sv","tag":"Features","count":81},{"language":"vi","tag":"Features","count":81},{"language":"en","tag":"Integrate","count":75},{"language":"en","tag":"Changelog","count":66},{"language":"ar","tag":"Changelog","count":65},{"language":"cn","tag":"Changelog","count":65},{"language":"de","tag":"Changelog","count":65},{"language":"es","tag":"Changelog","count":65},{"language":"fr","tag":"Changelog","count":65},{"language":"hi","tag":"Changelog","count":65},{"language":"id","tag":"Changelog","count":65},{"language":"it","tag":"Changelog","count":65},{"language":"ja","tag":"Changelog","count":65},{"language":"ko","tag":"Changelog","count":65},{"language":"pt-BR","tag":"Changelog","count":65},{"language":"sv","tag":"Changelog","count":65},{"language":"vi","tag":"Changelog","count":65},{"language":"ar","tag":"Integrate","count":59},{"language":"cn","tag":"Integrate","count":59},{"language":"de","tag":"Integrate","count":59},{"language":"es","tag":"Integrate","count":59},{"language":"fr","tag":"Integrate","count":59},{"language":"hi","tag":"Integrate","count":59},{"language":"id","tag":"Integrate","count":59},{"language":"it","tag":"Integrate","count":59},{"language":"ja","tag":"Integrate","count":59},{"language":"ko","tag":"Integrate","count":59},{"language":"pt-BR","tag":"Integrate","count":59},{"language":"sv","tag":"Integrate","count":59},{"language":"vi","tag":"Integrate","count":59},{"language":"en","tag":"External Integrations","count":33},{"language":"ar","tag":"External Integrations","count":30},{"language":"cn","tag":"External Integrations","count":30},{"language":"de","tag":"External Integrations","count":30},{"language":"es","tag":"External Integrations","count":30},{"language":"fr","tag":"External Integrations","count":30},{"language":"hi","tag":"External Integrations","count":30},{"language":"id","tag":"External Integrations","count":30},{"language":"it","tag":"External Integrations","count":30},{"language":"ja","tag":"External Integrations","count":30},{"language":"ko","tag":"External Integrations","count":30},{"language":"pt-BR","tag":"External Integrations","count":30},{"language":"sv","tag":"External Integrations","count":30},{"language":"vi","tag":"External Integrations","count":30},{"language":"en","tag":"Webhooks","count":24},{"language":"ar","tag":"Webhooks","count":23},{"language":"cn","tag":"Webhooks","count":23},{"language":"de","tag":"Webhooks","count":23},{"language":"es","tag":"Webhooks","count":23},{"language":"fr","tag":"Webhooks","count":23},{"language":"hi","tag":"Webhooks","count":23},{"language":"id","tag":"Webhooks","count":23},{"language":"it","tag":"Webhooks","count":23},{"language":"ja","tag":"Webhooks","count":23},{"language":"ko","tag":"Webhooks","count":23},{"language":"pt-BR","tag":"Webhooks","count":23},{"language":"sv","tag":"Webhooks","count":23},{"language":"vi","tag":"Webhooks","count":23},{"language":"en","tag":"Guides","count":22},{"language":"ar","tag":"Guides","count":22},{"language":"cn","tag":"Guides","count":22},{"language":"de","tag":"Guides","count":22},{"language":"es","tag":"Guides","count":22},{"language":"fr","tag":"Guides","count":22},{"language":"hi","tag":"Guides","count":22},{"language":"id","tag":"Guides","count":22},{"language":"it","tag":"Guides","count":22},{"language":"ja","tag":"Guides","count":22},{"language":"ko","tag":"Guides","count":22},{"language":"pt-BR","tag":"Guides","count":22},{"language":"sv","tag":"Guides","count":22},{"language":"vi","tag":"Guides","count":22},{"language":"en","tag":"Entitlements","count":20},{"language":"ar","tag":"Entitlements","count":20},{"language":"cn","tag":"Entitlements","count":20},{"language":"de","tag":"Entitlements","count":20},{"language":"es","tag":"Entitlements","count":20},{"language":"fr","tag":"Entitlements","count":20},{"language":"hi","tag":"Entitlements","count":20},{"language":"id","tag":"Entitlements","count":20},{"language":"it","tag":"Entitlements","count":20},{"language":"ja","tag":"Entitlements","count":20},{"language":"ko","tag":"Entitlements","count":20},{"language":"pt-BR","tag":"Entitlements","count":20},{"language":"sv","tag":"Entitlements","count":20},{"language":"vi","tag":"Entitlements","count":20},{"language":"en","tag":"Invoices","count":17},{"language":"ar","tag":"Customers","count":16},{"language":"cn","tag":"Customers","count":16},{"language":"de","tag":"Customers","count":16},{"language":"es","tag":"Customers","count":16},{"language":"fr","tag":"Customers","count":16},{"language":"hi","tag":"Customers","count":16},{"language":"id","tag":"Customers","count":16},{"language":"it","tag":"Customers","count":16},{"language":"ja","tag":"Customers","count":16},{"language":"ko","tag":"Customers","count":16},{"language":"pt-BR","tag":"Customers","count":16},{"language":"sv","tag":"Customers","count":16},{"language":"vi","tag":"Customers","count":16}]},"assistantConfig":{"deflection":{"enabled":false,"email":"support@dodopayments.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#content-area{max-width:60rem}h1,h2,h3,h4,h5,h6{letter-spacing:0.05em!important}.welcome-page .card-group{margin:3rem auto 8rem;max-width:70rem;padding-left:1.25rem;padding-right:1.25rem}.welcome-page .card-group .card{padding:1rem}.welcome-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:20vh;text-align:center;margin-top:3rem;margin-bottom:2.5rem}.welcome-hero h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;line-height:1.2;color:#fff}.welcome-hero p{font-size:1.25rem;max-width:600px;margin:0 auto}.welcome-hero h1{color:rgb(41 42 37 / 1)}.dark .welcome-hero h1{color:rgb(255 255 255 / 1)}.welcome-hero p{color:rgb(83 85 79 / 1)}.dark .welcome-hero p{color:rgb(162 164 158 / 1)}"}],"page":{"pagePath":"ko/features/entitlements/discord","slug":"/ko/features/entitlements/discord","pageMetadata":{"title":"Discord Entitlement","sidebarTitle":"Discord","description":"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.","icon":"discord","keywords":["Dodo Payments","Discord","entitlement","Discord 역할","커뮤니티 액세스"],"href":"/ko/features/entitlements/discord"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,CodeGroup,Frame,Heading,Info,OptimizedImage,Step,Steps,Table,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsx(_components.p,{children:`Discord entitlement는 결제 고객을 Discord 서버에 추가하고 역할을 부여할 수 있습니다. 고객은 구독이 활성화되거나 일회성 결제가 성공한 후 Discord 계정을 연결합니다. 취소 또는 환불 등으로 grant가 취소되면 Dodo Payments가 역할을 제거하고 서버에서 고객을 제거합니다.`})}),`\n`,_jsx(Heading,{level:`2`,id:`제공되는-기능`,children:`제공되는 기능`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`고객은 Customer Portal에서 Discord 계정을 연결합니다. 결제 확인 이메일에는 entitlement가 `,_jsx(_components.strong,{children:`Action Required`}),`로 표시되고 포털 링크가 포함됩니다.`]}),`\n`,_jsx(_components.li,{children:`고객이 인증하면 Dodo Payments bot이 고객을 서버에 추가하거나 기존 멤버십을 찾아 구성한 역할을 부여합니다.`}),`\n`,_jsx(_components.li,{children:`역할을 선택하지 않으면 고객에게 서버 멤버십만 부여됩니다.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`유료 커뮤니티, 후원자 혜택 및 등급별 액세스 채널에 사용하세요.`}),`\n`,_jsx(Heading,{level:`2`,id:`discord-연결`,children:`Discord 연결`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Entitlements`,children:_jsxs(_components.p,{children:[`Dodo Payments 대시보드에서 `,_jsx(_components.strong,{children:`Entitlements`}),`로 이동한 다음 **+**를 클릭하여 새 entitlement를 시작합니다.`]})}),_jsxs(Step,{title:`Pick Discord`,children:[_jsxs(_components.p,{children:[`통합으로 `,_jsx(_components.strong,{children:`Discord Access`}),`를 선택합니다. 아직 비즈니스에 Discord가 연결되지 않았다면 `,_jsx(_components.strong,{children:`Connect Discord`}),`를 클릭합니다.`]}),_jsx(Frame,{caption:`Connect Discord prompt before the OAuth handoff.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8a34c436dd7510942db2a9221f623938`,alt:`Discord 연결을 요청하는 새 entitlement 패널`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2844`,width:`2844`,\"data-og-height\":`1622`,height:`1622`,\"data-path\":`images/entitlements/discord/connect-prompt.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=80a90ce4a602bf3a2019f76c57f76571 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=315a0a9625630a619dd064bfc3d46495 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=b019dbe6d66630ba1f3d459f487d6100 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=aeb49ba303909dde28dbf66d26793cc9 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8c7714357bca9cfc57054e053a442dce 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connect-prompt.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=fb0074b7cd6da4cee8ec266b5727e558 2500w`})}),_jsxs(_components.p,{children:[`Discord가 새 탭에서 열립니다. 로그인하고 액세스를 제한할 서버를 선택한 다음 해당 서버에서 bot의 권한을 승인합니다: `,_jsx(_components.strong,{children:`Manage Roles`}),`, `,_jsx(_components.strong,{children:`Kick Members`}),` 및 `,_jsx(_components.strong,{children:`Create Invite`}),`.`]}),_jsx(Frame,{caption:`Discord OAuth: pick the server to add the bot to.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=b57bf306fa15aa3f49b528f803cc625e`,alt:`Dodo Payments bot을 추가할 서버를 묻는 Discord OAuth 화면`,style:{maxHeight:`420px`,width:`auto`},\"data-og-width\":`1026`,width:`1026`,\"data-og-height\":`1362`,height:`1362`,\"data-path\":`images/entitlements/discord/oauth-add-bot.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=9ebcc6e8114f87ae174af644cf0a1b2c 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=bb923e0614d18c6dd4327a175e24d13b 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=52cd505c2e813e71c8ad6132ac8aeb19 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=df921f9a89d1bb54ed1cc1bf6e141880 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=90a5fc68c07ed2f7a325b78d1e1e2707 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-add-bot.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=17ad7ee8524aeb04a7760f99038e3cc9 2500w`})}),_jsx(Frame,{caption:`Discord OAuth: confirm the bot's permissions on the server.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=438c0b04177e3a4863fb90986f5b95e0`,alt:`Discord bot 권한 확인 화면`,style:{maxHeight:`420px`,width:`auto`},\"data-og-width\":`1038`,width:`1038`,\"data-og-height\":`1472`,height:`1472`,\"data-path\":`images/entitlements/discord/oauth-permissions.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8bd22223c7f709512277dc11fce14ec8 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=634d113e4795203dc04e70478223cc21 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=65ae6681480c271ffed0f81f2024921c 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=158738713e43c63ad505c4a762d81c92 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=ab39fe821dd603c70ae839b1b2097295 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/oauth-permissions.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=768b68192d05254982789bf68dc8cca3 2500w`})}),_jsx(_components.p,{children:`Discord가 다시 리디렉션하면 확인 페이지에 서버가 연결되었다는 메시지가 표시됩니다.`}),_jsx(Frame,{caption:`Server connected. Return to the Dodo Payments dashboard to continue.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=bd1cbb3f9960e4eb1881d7a818dc6f16`,alt:`Discord Access 연결 성공 확인 페이지`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1140`,height:`1140`,\"data-path\":`images/entitlements/discord/connected.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=7c6bfc974529187857b6c5848bf1c8c5 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=1920933e2dcba6fdf8ea125303e608be 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=d24c947223c229d68e4838372d8ca2d6 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=c8872cc7aec50f631e0a794fd35e5d2c 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=0927f0cf9cf44aa5c44d3258855ef58e 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/connected.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=d8d0a32d0e704213fa0dd4c0383460ef 2500w`})})]}),_jsxs(Step,{title:`Pick a Server and Role`,children:[_jsxs(_components.p,{children:[`대시보드로 돌아와 연결한 `,_jsx(_components.strong,{children:`Server`}),`를 선택합니다. 전달 시 역할을 부여하려면 `,_jsx(_components.strong,{children:`Role`}),`에서 역할을 선택합니다. 서버 멤버십만 부여하려면 `,_jsx(_components.strong,{children:`Role`}),`을 `,_jsx(_components.strong,{children:`No specific role`}),`로 둡니다. entitlement의 `,_jsx(_components.strong,{children:`Name`}),`을 입력하고 `,_jsx(_components.strong,{children:`Create Entitlement`}),`를 클릭합니다.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=79e95041881d2925e58fc752280d508e`,alt:`연결된 서버, 서버 선택기, 역할 드롭다운 및 이름 필드가 있는 New Entitlement - Discord Access 양식`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`1196`,width:`1196`,\"data-og-height\":`1564`,height:`1564`,\"data-path\":`images/entitlements/discord/create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=c59e5ef956446f5ac2f51cf547299987 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=cc24d359cfda5807265319b7cd96e2d0 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=3abd4fa942e351c9cc76cf6be0032554 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8630de37a9f57fc183f6f25b75c15dc7 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=bb34bffe7f18f75563f6788158b82881 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/discord/create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=4a93adc16ad9b235641066e294583a1d 2500w`})})]}),_jsx(Step,{title:`Attach It to a Product`,children:_jsxs(_components.p,{children:[`entitlement가 저장되며 모든 제품에 연결할 수 있습니다. `,_jsx(_components.a,{href:`/features/entitlements/introduction#attach-entitlements-to-products`,children:`제품에 Entitlements 연결하기`}),`를 참고하세요.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`고객-플로우`,children:`고객 플로우`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`고객이 결제를 완료합니다.`}),`\n`,_jsxs(_components.li,{children:[`Dodo Payments가 `,_jsx(_components.code,{children:`Pending`}),` 상태로 grant를 생성합니다. Dodo Payments는 즉시 Discord authorization URL을 생성하려고 시도하고 이를 `,_jsx(_components.code,{children:`oauth_url`}),`에 저장합니다. 이 작업이 실패하면 고객이 accept flow를 시작할 때까지 `,_jsx(_components.code,{children:`oauth_url`}),`는 `,_jsx(_components.code,{children:`null`}),` 상태로 유지됩니다.`]}),`\n`,_jsxs(_components.li,{children:[`결제 확인 이메일에는 entitlement가 `,_jsx(_components.strong,{children:`Action Required`}),`로 표시되고 Customer Portal 링크가 포함됩니다. 포털에서 고객은 entitlement의 `,_jsx(_components.strong,{children:`Connect`}),`를 클릭합니다.`]}),`\n`,_jsxs(_components.li,{children:[`고객이 Discord에서 Dodo Payments를 authorize합니다. 봇이 고객을 서버에 추가하고 구성된 role을 할당하면 grant가 `,_jsx(_components.code,{children:`Delivered`}),` 상태로 전환됩니다.`]}),`\n`,_jsxs(_components.li,{children:[`grant가 revoked되면(구독이 cancelled, paused, put on hold 상태가 되거나 만료된 경우, 일회성 결제가 refunded된 경우 또는 사용자가 grant를 revoke한 경우) 봇이 role을 제거하고 서버에서 고객을 제거합니다. grant가 `,_jsx(_components.code,{children:`Revoked`}),` 상태로 전환됩니다.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`인증 링크는 생성 후 30분이 지나면 만료됩니다. 이후 고객이 Customer Portal로 돌아오면 Dodo Payments가 새 링크를 생성합니다. 고객이 직접 서버를 나가면 Dodo Payments가 `,_jsx(_components.code,{children:`revocation_reason: platform_external`}),`와 함께 해당 grant를 취소합니다.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Dodo Payments bot의 역할을 부여하려는 역할보다 `,_jsx(_components.strong,{children:`위에`}),` 배치하세요. Discord에서는 bot이 자체 최고 역할과 같거나 그보다 높은 역할을 부여할 수 없습니다. bot 및 통합 역할과 같은 관리형 역할은 부여할 수 없습니다.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`필수-구성`,children:`필수 구성`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`필드`}),_jsx(_components.th,{children:`필수 여부`}),_jsx(_components.th,{children:`설명`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`guild_id`})}),_jsx(_components.td,{children:`예`}),_jsx(_components.td,{children:`Discord 서버(guild) ID입니다. 대시보드의 서버 선택기가 이 값을 자동으로 입력합니다.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`role_id`})}),_jsx(_components.td,{children:`아니요`}),_jsxs(_components.td,{children:[`전달 시 부여할 역할입니다. 서버 멤버십만 제공하려면 생략하거나 `,_jsx(_components.code,{children:`null`}),`를 전달합니다.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`api를-통해-생성`,children:`API를 통해 생성`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,expandable:`true`,numberOfLines:`15`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'dodopayments'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` bearerToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'DODO_PAYMENTS_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` environment:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'test_mode'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` entitlement`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Patrons Discord Role'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` integration_type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'discord'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` integration_config:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` guild_id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '123456789012345678'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` role_id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '987654321098765432'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,expandable:`true`,numberOfLines:`16`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dodopayments `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` DodoPayments`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` DodoPayments(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` bearer_token`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`os.environ.get(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DODO_PAYMENTS_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` environment`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"test_mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`entitlement `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.entitlements.create(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Patrons Discord Role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` integration_type`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"discord\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` integration_config`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"guild_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"123456789012345678\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"role_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"987654321098765432\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,expandable:`true`,numberOfLines:`12`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// client is a *dodopayments.Client, for example from`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// dodopayments.NewClient(option.WithEnvironmentTestMode()); ctx is a context.Context.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`New`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`EntitlementNewParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Patrons Discord Role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` IntegrationType`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`EntitlementIntegrationTypeDiscord`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` IntegrationConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IntegrationConfigUnionParam`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`](`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`IntegrationConfigDiscordConfigParam`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` GuildID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"123456789012345678\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` RoleID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"987654321098765432\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`webhooks`,children:`Webhooks`}),`\n`,_jsxs(_components.p,{children:[`Discord grant를 추적하려면 `,_jsxs(_components.a,{href:`/developer-resources/webhooks/intents/entitlement-grant`,children:[_jsx(_components.code,{children:`entitlement_grant.*`}),` webhook events`]}),`를 구독하세요:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`entitlement_grant.created`}),`가 `,_jsx(_components.code,{children:`status: \"Pending\"`}),`와 함께 발생합니다. `,_jsx(_components.code,{children:`oauth_url`}),`에 authorization URL이 이미 저장되어 있을 수 있습니다. 값이 `,_jsx(_components.code,{children:`null`}),`인 경우 고객이 Customer Portal에서 accept flow를 시작하면 값이 채워집니다.`]}),`\n`,_jsxs(_components.li,{children:[`고객이 서버에 참여하고 role이 할당되면 `,_jsx(_components.code,{children:`entitlement_grant.delivered`}),`가 발생합니다.`]}),`\n`,_jsxs(_components.li,{children:[`role이 제거되고 고객이 서버에서 제거되면 `,_jsx(_components.code,{children:`entitlement_grant.revoked`}),`가 발생합니다.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`문제-해결`,children:`문제 해결`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Customer never sees the role assigned`,id:`customer-never-sees-the-role-assigned`,children:_jsxs(_components.p,{children:[`고객이 Discord 인증을 완료할 때까지 grant는 `,_jsx(_components.code,{children:`Pending`}),` 상태로 유지됩니다. 대시보드에서 entitlement를 열고 고객의 grant를 확인하세요. 여전히 `,_jsx(_components.code,{children:`Pending`}),`라면 고객에게 Customer Portal을 열고 Discord entitlement에서 `,_jsx(_components.strong,{children:`Connect`}),`를 클릭하도록 안내하세요.`]})}),_jsx(Accordion,{title:`Grant moves to failed with permission errors`,id:`grant-moves-to-failed-with-permission-errors`,children:_jsxs(_components.p,{children:[`Dodo Payments 봇이 여전히 서버에 있고 `,_jsx(_components.strong,{children:`Manage Roles`}),` 권한을 보유하며, 할당되는 role보다 상위에 있는지 확인하세요. 봇이 서버에서 제거되면 Dodo Payments는 해당 서버의 pending 및 delivered grant를 revoke합니다. entitlement를 다시 저장해도 봇의 권한이 아니라 entitlement의 설정만 확인합니다. 권한을 수정한 후 고객에게 Customer Portal을 열고 Discord entitlement의 `,_jsx(_components.strong,{children:`Connect`}),`를 클릭하여 grant를 다시 시도하도록 안내하세요.`]})}),_jsx(Accordion,{title:`Customer cancelled but still has the role`,id:`customer-cancelled-but-still-has-the-role`,children:_jsxs(_components.p,{children:[`취소하면 역할이 제거되고 서버에서 고객이 제거됩니다. grant에 `,_jsx(_components.code,{children:`Revoked`}),`가 표시되지만 고객이 여전히 서버에 있다면 bot에 `,_jsx(_components.strong,{children:`Manage Roles`}),` 및 `,_jsx(_components.strong,{children:`Kick Members`}),` 권한이 있고 해당 역할보다 위에 있는지 확인하세요. 고객의 Discord 앱에 여전히 역할이 표시되면 새로 고치도록 안내하세요. 서버 측 상태를 기준으로 판단합니다.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Discord Entitlement","sidebarTitle":"Discord","description":"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.","icon":"discord","keywords":["Dodo Payments","Discord","entitlement","Discord 역할","커뮤니티 액세스"],"href":"/ko/features/entitlements/discord"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"제공되는 기능","slug":"제공되는-기능","depth":2,"children":[]},{"title":"Discord 연결","slug":"discord-연결","depth":2,"children":[]},{"title":"고객 플로우","slug":"고객-플로우","depth":2,"children":[]},{"title":"필수 구성","slug":"필수-구성","depth":2,"children":[]},{"title":"API를 통해 생성","slug":"api를-통해-생성","depth":2,"children":[]},{"title":"Webhooks","slug":"webhooks","depth":2,"children":[]},{"title":"문제 해결","slug":"문제-해결","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/dodopayments/0ee82a08f7b65bcb/seo.js","/_mintlify/custom/dodopayments/6f88c9bbee313616/assistant-loader.js"],"subdomain":"dodopayments","siteName":"Dodo Payments Documentation","title":"Discord Entitlement - Dodo Payments Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/entitlements/discord","matchLevel":1},"es":{"href":"/es/features/entitlements/discord","matchLevel":1},"ar":{"href":"/ar/features/entitlements/discord","matchLevel":1},"fr":{"href":"/fr/features/entitlements/discord","matchLevel":1},"de":{"href":"/de/features/entitlements/discord","matchLevel":1},"id":{"href":"/id/features/entitlements/discord","matchLevel":1},"ja":{"href":"/ja/features/entitlements/discord","matchLevel":1},"ko":{"href":"/ko/features/entitlements/discord","matchLevel":0},"pt-BR":{"href":"/pt-BR/features/entitlements/discord","matchLevel":1},"vi":{"href":"/vi/features/entitlements/discord","matchLevel":1},"cn":{"href":"/cn/features/entitlements/discord","matchLevel":1},"hi":{"href":"/hi/features/entitlements/discord","matchLevel":1},"it":{"href":"/it/features/entitlements/discord","matchLevel":1},"sv":{"href":"/sv/features/entitlements/discord","matchLevel":1}}},"lastModified":"2026-09-28T05:12:06.695Z","gitLastModified":"2026-09-28T05:10:45.000Z","originalFileLocation":"ko/features/entitlements/discord.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Discord Entitlement - Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dodopayments.com/ko/features/entitlements/discord\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Discord+Entitlement\u0026amp;description=%EC%84%A0%ED%83%9D%EC%A0%81%EC%9C%BC%EB%A1%9C+%EC%97%AD%ED%95%A0%EC%9D%84+%EB%B6%80%EC%97%AC%ED%95%98%EC%97%AC+Discord+%EC%84%9C%EB%B2%84%EC%97%90+%EA%B2%B0%EC%A0%9C+%EA%B3%A0%EA%B0%9D%EC%9D%84+%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0%2C+%EC%95%A1%EC%84%B8%EC%8A%A4+%EA%B6%8C%ED%95%9C%EC%9D%B4+%EC%A2%85%EB%A3%8C%EB%90%98%EB%A9%B4+%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C+%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=49f307670894d9814fd4207c08da4946e0a1d9bcf93edfc2c8f23eca7905b297\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Discord Entitlement - Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Discord+Entitlement\u0026amp;description=%EC%84%A0%ED%83%9D%EC%A0%81%EC%9C%BC%EB%A1%9C+%EC%97%AD%ED%95%A0%EC%9D%84+%EB%B6%80%EC%97%AC%ED%95%98%EC%97%AC+Discord+%EC%84%9C%EB%B2%84%EC%97%90+%EA%B2%B0%EC%A0%9C+%EA%B3%A0%EA%B0%9D%EC%9D%84+%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0%2C+%EC%95%A1%EC%84%B8%EC%8A%A4+%EA%B6%8C%ED%95%9C%EC%9D%B4+%EC%A2%85%EB%A3%8C%EB%90%98%EB%A9%B4+%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C+%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=49f307670894d9814fd4207c08da4946e0a1d9bcf93edfc2c8f23eca7905b297\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#779812\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dodopayments.com/ko/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ko/features/entitlements/discord.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.dodopayments.com/ko/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.dodopayments.com/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.dodopayments.com/es/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.dodopayments.com/ar/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.dodopayments.com/fr/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.dodopayments.com/de/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.dodopayments.com/id/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.dodopayments.com/ja/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.dodopayments.com/pt-BR/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://docs.dodopayments.com/vi/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.dodopayments.com/cn/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.dodopayments.com/hi/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.dodopayments.com/it/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"sv\" href=\"https://docs.dodopayments.com/sv/features/entitlements/discord\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.dodopayments.com/features/entitlements/discord\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dodopayments.com/#organization\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dodopayments.com#website\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dodopayments.com/ko/features/entitlements/discord#webpage\",\"url\":\"https://docs.dodopayments.com/ko/features/entitlements/discord\",\"name\":\"Discord Entitlement\",\"description\":\"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\",\"dateModified\":\"2026-09-28T05:10:45.000Z\",\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dodopayments.com/ko/features/entitlements/discord#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dodopayments.com/ko/features/entitlements/discord#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.dodopayments.com/ko/features/products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entitlements\",\"item\":\"https://docs.dodopayments.com/ko/features/entitlements/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Discord Entitlement\",\"item\":\"https://docs.dodopayments.com/ko/features/entitlements/discord\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dodopayments.com/ko/features/entitlements/discord#article\",\"headline\":\"Discord Entitlement\",\"name\":\"Discord Entitlement\",\"description\":\"선택적으로 역할을 부여하여 Discord 서버에 결제 고객을 추가하고, 액세스 권한이 종료되면 자동으로 제거합니다.\",\"url\":\"https://docs.dodopayments.com/ko/features/entitlements/discord\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dodopayments.com/ko/features/entitlements/discord#webpage\"},\"dateModified\":\"2026-09-28T05:10:45.000Z\",\"keywords\":\"Dodo Payments, Discord, entitlement, Discord 역할, 커뮤니티 액세스\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dodo Payments Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dodo Payments Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/ko/features/entitlements/discord.md","siteName":"Dodo Payments Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/features/entitlements/discord"}]},{"language":"es","pages":[{"title":"es","href":"/es/features/entitlements/discord"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/features/entitlements/discord"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/features/entitlements/discord"}]},{"language":"de","pages":[{"title":"de","href":"/de/features/entitlements/discord"}]},{"language":"id","pages":[{"title":"id","href":"/id/features/entitlements/discord"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/features/entitlements/discord"}]},{"language":"ko","tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"Dodo Payments에 오신 것을 환영합니다","sidebarTitle":"소개","icon":"rocket","href":"/ko/introduction"},{"title":"AI 코딩 에이전트와 함께 구축하기","sidebarTitle":"AI 코딩 에이전트","icon":"robot","href":"/ko/developer-resources/build-with-ai-coding-agents"},{"title":"Dodo Payments로 마이그레이션하기","icon":"arrow-right-arrow-left","href":"/ko/migrate-to-dodo"},{"title":"계정 인증","icon":"id-card","href":"/ko/miscellaneous/verification-process"}]},{"group":"Features","pages":[{"sidebarTitle":"제품","title":"제품","icon":"box","href":"/ko/features/products"},{"sidebarTitle":"제품 컬렉션","title":"제품 컬렉션","icon":"layer-group","href":"/ko/features/product-collections"},{"sidebarTitle":"일회성 결제","title":"일회성 결제","icon":"credit-card","href":"/ko/features/one-time-payment-products"},{"group":"Subscriptions","icon":"infinity","pages":[{"sidebarTitle":"Subscriptions","title":"Subscriptions","icon":"repeat","href":"/ko/features/subscription"},{"sidebarTitle":"추가 기능","title":"구독을 위한 추가 기능","icon":"puzzle","href":"/ko/features/addons"},{"title":"주문형 구독","icon":"bolt","href":"/ko/developer-resources/ondemand-subscriptions"}]},{"group":"Usage Based Billing","icon":"arrow-trend-up","pages":[{"sidebarTitle":"소개","title":"사용량 기반 결제","icon":"box","href":"/ko/features/usage-based-billing/introduction"},{"sidebarTitle":"미터","title":"미터","icon":"sliders","href":"/ko/features/usage-based-billing/meters"},{"sidebarTitle":"이벤트 수집","title":"이벤트 수집","icon":"bolt","href":"/ko/features/usage-based-billing/event-ingestion"},{"group":"Ingestion Blueprints","icon":"copy","pages":[{"sidebarTitle":"소개","title":"수집 청사진","icon":"box","href":"/ko/features/usage-based-billing/ingestion-blueprints"},{"title":"LLM Blueprint","icon":"brain-circuit","href":"/ko/developer-resources/ingestion-blueprints/llm"},{"title":"API Gateway Blueprint","icon":"cloud","href":"/ko/developer-resources/ingestion-blueprints/api-gateway"},{"title":"객체 저장소 청사진","icon":"box-archive","href":"/ko/developer-resources/ingestion-blueprints/object-storage"},{"title":"스트림 블루프린트","icon":"tower-broadcast","href":"/ko/developer-resources/ingestion-blueprints/stream"},{"title":"시간 범위 청사진","icon":"clock","href":"/ko/developer-resources/ingestion-blueprints/time-range"}]}]},{"sidebarTitle":"Credit-Based Billing","title":"Credit-Based Billing","icon":"coins","tag":"NEW","href":"/ko/features/credit-based-billing"},{"sidebarTitle":"좌석 기반 청구","title":"좌석 기반 청구","icon":"users","href":"/ko/features/seat-based-billing"},{"sidebarTitle":"하이브리드 결제","title":"하이브리드 결제 모델","icon":"layer-group","href":"/ko/features/hybrid-billing"},{"title":"업셀 \u0026 다운셀","icon":"arrow-up-right-dots","href":"/ko/features/upsells-and-downsells"},{"group":"Customers","icon":"user-group","pages":[{"title":"Customer Management","icon":"user-group","href":"/ko/features/customers"},{"sidebarTitle":"고객 포털","title":"고객 포털","icon":"id-card","href":"/ko/features/customer-portal"},{"title":"고객 지갑","icon":"wallet","tag":"NEW","href":"/ko/features/customer-wallet"},{"sidebarTitle":"발송된 이메일","title":"고객 이메일 로그","icon":"envelope","tag":"NEW","href":"/ko/features/email-logs"},{"sidebarTitle":"Customer Blocklist","title":"Customer Blocklist","icon":"user-slash","tag":"NEW","href":"/ko/features/customer-blocklist"}]},{"sidebarTitle":"할인","title":"할인","icon":"percent","href":"/ko/features/discount-codes"},{"group":"Recovery","icon":"rotate","tag":"NEW","pages":[{"sidebarTitle":"개요","title":"수익 회복","icon":"rotate","href":"/ko/features/recovery/overview"},{"sidebarTitle":"장바구니 복구","title":"장바구니 복구","icon":"cart-shopping","href":"/ko/features/recovery/abandoned-cart-recovery"},{"sidebarTitle":"구독 추심","title":"구독 추심","icon":"repeat","href":"/ko/features/recovery/subscription-dunning"},{"sidebarTitle":"구독 결제 재시도","title":"구독 결제 재시도","icon":"arrow-rotate-right","href":"/ko/features/recovery/payment-retries"},{"sidebarTitle":"수동 재시도","title":"수동 결제 재시도","icon":"hand-pointer","tag":"NEW","href":"/ko/features/recovery/manual-retry"}]},{"group":"Transactions","icon":"credit-card","pages":[{"title":"결제","icon":"money-bill-transfer","href":"/ko/features/transactions/payments"},{"title":"환불","icon":"rotate-left","href":"/ko/features/transactions/refunds"},{"title":"분쟁","icon":"circle-exclamation","href":"/ko/features/transactions/disputes"}]},{"group":"Entitlements","icon":"gift","tag":"NEW","pages":[{"title":"소개","sidebarTitle":"소개","icon":"box-archive","href":"/ko/features/entitlements/introduction"},{"title":"License Keys","icon":"key","href":"/ko/features/license-keys"},{"title":"Digital Product Delivery","sidebarTitle":"Digital Products","icon":"download","href":"/ko/features/digital-product-delivery"},{"title":"기능 플래그 권한","sidebarTitle":"기능 플래그","description":"구매를 기반으로 자체 애플리케이션에서 기능을 활성화하거나 비활성화하세요. Feature flag entitlement는 결제 시 boolean capability를 제공하고 취소 시 자동으로 회수합니다.","icon":"flag","tag":"NEW","href":"/ko/features/entitlements/feature-flags"},{"title":"Discord Entitlement","sidebarTitle":"Discord","icon":"discord","href":"/ko/features/entitlements/discord"},{"title":"GitHub Entitlement","sidebarTitle":"GitHub","description":"고객에게 선택한 권한 수준으로 비공개 GitHub repository에 collaborator 액세스 권한을 부여하고, 취소 시 자동으로 권한을 철회합니다.","icon":"github","href":"/ko/features/entitlements/github"},{"title":"Telegram 자격 부여","sidebarTitle":"Telegram","icon":"telegram","href":"/ko/features/entitlements/telegram"},{"title":"Framer 권한","sidebarTitle":"Framer","icon":"puzzle-piece","href":"/ko/features/entitlements/framer"},{"title":"Notion 권한","sidebarTitle":"Notion","icon":"book","href":"/ko/features/entitlements/notion"}]},{"group":"Payouts and Balances","icon":"wallet","pages":[{"title":"지급 프로세스","icon":"money-bill","href":"/ko/features/payouts/payout-structure"},{"title":"잔액","icon":"file-invoice-dollar","href":"/ko/features/account-summary-payout-wallet"}]},{"group":"Account Management","icon":"user","pages":[{"sidebarTitle":"비즈니스 보관","title":"비즈니스 보관","icon":"box-archive","tag":"NEW","href":"/ko/features/archive-business"},{"title":"다중 브랜드 설정","icon":"building-columns","href":"/ko/features/multi-brands"},{"title":"청구서 관리","icon":"file-invoice-dollar","href":"/ko/features/invoice-generation"},{"title":"팀 구성원","icon":"user-gear","href":"/ko/features/team"},{"title":"커뮤니케이션 환경설정","sidebarTitle":"커뮤니케이션 환경설정","icon":"bell","tag":"NEW","href":"/ko/features/communication-preferences"},{"title":"내 계정","icon":"user-gear","href":"/ko/miscellaneous/accounts"}]},{"group":"Pricing","icon":"dollar-sign","pages":[{"sidebarTitle":"세금 포함 가격","title":"세금 포함 가격","icon":"file-invoice","href":"/ko/features/tax-inclusive-pricing"},{"sidebarTitle":"원하는 만큼 지불하기","title":"원하는 만큼 지불하기 가격 책정","icon":"dollar-sign","href":"/ko/features/pay-what-you-want"},{"title":"B2B 결제","icon":"money-bills","href":"/ko/features/b2b-payments"},{"title":"현지화된 가격","sidebarTitle":"현지화된 가격","icon":"earth-americas","href":"/ko/features/localized-pricing"},{"sidebarTitle":"구매력 평가 (PPP)","title":"구매력 평형","tag":"NEW","icon":"money-bill-trend-up","href":"/ko/features/purchasing-power-parity"},{"sidebarTitle":"Charm Pricing","title":"Charm Pricing","tag":"NEW","icon":"tag","href":"/ko/features/charm-pricing"}]},{"sidebarTitle":"결제","title":"결제 기능","icon":"cart-shopping","href":"/ko/features/checkout"},{"sidebarTitle":"디자인","title":"디자인 및 테마 커스터마이징","icon":"palette","tag":"NEW","href":"/ko/features/design"},{"group":"Payment Methods","icon":"money-bill-wave","pages":[{"title":"Payment Methods","sidebarTitle":"Overview","icon":"layer-group","href":"/ko/features/payment-methods"},{"title":"신용카드 및 직불카드","sidebarTitle":"카드","icon":"credit-card","href":"/ko/features/payment-methods/cards"},{"title":"Digital Wallets","sidebarTitle":"Digital Wallets","icon":"wallet","href":"/ko/features/payment-methods/digital-wallets"},{"title":"지금 구매 나중에 결제 (BNPL)","sidebarTitle":"BNPL","icon":"calendar-days","href":"/ko/features/payment-methods/bnpl"},{"title":"ACH Direct Debit","sidebarTitle":"ACH Direct Debit","icon":"building-columns","href":"/ko/features/payment-methods/ach"},{"title":"인도 결제 방법","sidebarTitle":"인도","icon":"indian-rupee-sign","href":"/ko/features/payment-methods/india"},{"title":"유럽 결제 수단","sidebarTitle":"유럽","icon":"euro-sign","href":"/ko/features/payment-methods/europe"},{"title":"대한민국 결제 방법","sidebarTitle":"대한민국","icon":"won-sign","href":"/ko/features/payment-methods/south-korea"},{"title":"아시아 태평양 결제 수단","sidebarTitle":"아시아 태평양","icon":"earth-asia","href":"/ko/features/payment-methods/asia-pacific"},{"title":"Pix","sidebarTitle":"Pix","icon":"brazilian-real-sign","href":"/ko/features/payment-methods/pix"},{"title":"스테이블코인","sidebarTitle":"스테이블코인","icon":"dollar-sign","href":"/ko/features/payment-methods/stablecoins"},{"title":"WeChat Pay","sidebarTitle":"WeChat Pay","icon":"comment-dollar","href":"/ko/features/payment-methods/wechat"}]},{"title":"타사 분석","sidebarTitle":"타사 분석","icon":"chart-line","tag":"NEW","href":"/ko/features/analytics"},{"sidebarTitle":"적응형 통화","title":"적응형 통화","icon":"money-bill-transfer","href":"/ko/features/adaptive-currency"},{"group":"BYOP","icon":"shuffle","tag":"BETA","pages":[{"title":"Bring Your Own Processor (BYOP)","sidebarTitle":"개요","tag":"BETA","icon":"boxes-stacked","href":"/ko/features/byop"},{"title":"Stripe - Connect \u0026 Raw Card API Access","sidebarTitle":"Stripe","icon":"stripe","href":"/ko/features/byop/stripe"},{"title":"Adyen - 연결 및 Raw Card API 접근","sidebarTitle":"Adyen","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/adyen.svg","href":"/ko/features/byop/adyen"}]},{"title":"스토어프론트","icon":"store","href":"/ko/features/storefront"},{"title":"제휴사","icon":"users-line","href":"/ko/features/affiliates"},{"title":"Moderation API","icon":"shield-check","tag":"NEW","href":"/ko/features/moderation"},{"title":"iOS에서 디지털 상품 판매하기","icon":"mobile","href":"/ko/features/appstore-digital-goods"},{"title":"대시보드 분석","sidebarTitle":"대시보드 분석","icon":"chart-line","href":"/ko/features/analytics-and-reporting"},{"title":"보고서","sidebarTitle":"보고서","icon":"file-invoice","href":"/ko/features/reports"}]},{"group":"Integrate","pages":[{"group":"SDKs","icon":"box-open","pages":[{"sidebarTitle":"개요","title":"공식 SDK","icon":"box","href":"/ko/developer-resources/dodo-payments-sdks"},{"title":"TypeScript","icon":"js","href":"/ko/developer-resources/sdks/typescript"},{"title":"Python","icon":"python","href":"/ko/developer-resources/sdks/python"},{"title":"Go","icon":"golang","href":"/ko/developer-resources/sdks/go"},{"title":"루비","icon":"gem","href":"/ko/developer-resources/sdks/ruby"},{"title":"자바","icon":"java","href":"/ko/developer-resources/sdks/java"},{"title":"Kotlin","icon":"k","href":"/ko/developer-resources/sdks/kotlin"},{"title":"PHP","icon":"php","href":"/ko/developer-resources/sdks/php"},{"title":"C#","icon":"c","href":"/ko/developer-resources/sdks/csharp"},{"title":"Rust","icon":"rust","href":"/ko/developer-resources/sdks/rust"}]},{"group":"Mobile Checkout SDKs","icon":"mobile","pages":[{"title":"Mobile Integration Guide","sidebarTitle":"Integration Guide","icon":"mobile","href":"/ko/developer-resources/mobile-integration"},{"title":"Android","sidebarTitle":"Android","tag":"NEW","icon":"android","href":"/ko/developer-resources/sdks/android"},{"title":"iOS","sidebarTitle":"iOS","tag":"NEW","icon":"apple","href":"/ko/developer-resources/sdks/ios"},{"title":"React Native","sidebarTitle":"React Native","tag":"NEW","icon":"react","href":"/ko/developer-resources/sdks/react-native"},{"title":"Flutter","sidebarTitle":"Flutter","tag":"NEW","icon":"layer-group","href":"/ko/developer-resources/sdks/flutter"}]},{"group":"Framework Adaptors","icon":"frame","pages":[{"sidebarTitle":"개요","title":"프레임워크 어댑터 개요","icon":"box","href":"/ko/developer-resources/framework-adaptors"},{"title":"Next.js Adaptor","icon":"code-merge","href":"/ko/developer-resources/nextjs-adaptor"},{"title":"Better Auth 어댑터","icon":"code-merge","href":"/ko/developer-resources/better-auth-adaptor"},{"title":"Convex Component","icon":"code-merge","href":"/ko/developer-resources/convex-component"},{"title":"TanStack Adaptor","icon":"code-merge","href":"/ko/developer-resources/tanstack-adaptor"},{"title":"Nuxt 어댑터","icon":"code-merge","href":"/ko/developer-resources/nuxt-adaptor"},{"title":"Express 어댑터","icon":"code-merge","href":"/ko/developer-resources/express-adaptor"},{"title":"Astro Adaptor","icon":"code-merge","href":"/ko/developer-resources/astro-adaptor"},{"title":"SvelteKit Adaptor","icon":"code-merge","href":"/ko/developer-resources/sveltekit-adaptor"},{"title":"Hono Adaptor","icon":"code-merge","href":"/ko/developer-resources/hono-adaptor"},{"title":"Remix Adaptor","icon":"code-merge","href":"/ko/developer-resources/remix-adaptor"},{"title":"Fastify 어댑터","icon":"code-merge","href":"/ko/developer-resources/fastify-adaptor"},{"title":"Bun Adaptor","icon":"code-merge","href":"/ko/developer-resources/bun-adaptor"}]},{"group":"Webhooks","icon":"webhook","pages":[{"sidebarTitle":"개요","title":"Webhooks","icon":"webhook","href":"/ko/developer-resources/webhooks"},{"title":"Webhook Events Guide","icon":"bell","href":"/ko/developer-resources/webhooks/intents/webhook-events-guide"},{"group":"Webhook Payloads","icon":"code","pages":[{"title":"결제","icon":"credit-card","href":"/ko/developer-resources/webhooks/intents/payment"},{"sidebarTitle":"구독","title":"구독 웹훅","icon":"repeat","href":"/ko/developer-resources/webhooks/intents/subscription"},{"title":"환불","icon":"rotate-left","href":"/ko/developer-resources/webhooks/intents/refund"},{"sidebarTitle":"분쟁","title":"분쟁 Webhooks","icon":"circle-exclamation","href":"/ko/developer-resources/webhooks/intents/dispute"},{"title":"라이센스 키","icon":"key","href":"/ko/developer-resources/webhooks/intents/license-key"},{"title":"자격 부여","icon":"gift","href":"/ko/developer-resources/webhooks/intents/entitlement-grant"},{"sidebarTitle":"크레딧 기반 청구","title":"크레딧 기반 청구 웹훅","icon":"coins","href":"/ko/developer-resources/webhooks/intents/credit"},{"title":"Recovery","icon":"rotate","href":"/ko/developer-resources/webhooks/intents/recovery"},{"sidebarTitle":"Payout","title":"Payout Webhooks","icon":"money-bill-transfer","href":"/ko/developer-resources/webhooks/intents/payout"}]},{"group":"Deploy to Cloud","icon":"rocket","pages":[{"title":"Vercel Functions","icon":"triangle","href":"/ko/developer-resources/webhooks/examples/vercel-example"},{"title":"Cloudflare Workers","icon":"cloud","href":"/ko/developer-resources/webhooks/examples/cloudflare-example"},{"title":"Supabase Edge Functions","icon":"bolt","href":"/ko/developer-resources/webhooks/examples/supabase-example"},{"title":"Netlify Functions","icon":"diamond","href":"/ko/developer-resources/webhooks/examples/netlify-example"}]}]},{"group":"Testing \u0026 Demo Tools","icon":"flask","pages":[{"title":"테스트 모드 vs 라이브 모드","icon":"toggle-on","href":"/ko/miscellaneous/test-mode-vs-live-mode"},{"title":"테스트 프로세스","icon":"flask","href":"/ko/miscellaneous/testing-process"},{"title":"Atlas Demo Product","icon":"palette","href":"/ko/features/atlas-demo-website"}]},{"group":"Boilerplates","icon":"box-open","pages":[{"sidebarTitle":"Expo","title":"Expo Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/expo.svg","tag":"NEW","href":"/ko/developer-resources/expo-boilerplate"},{"sidebarTitle":"Supabase","title":"Supabase 보일러플레이트","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/supabase.svg","href":"/ko/developer-resources/supabase-boilerplate"},{"sidebarTitle":"피그마 플러그인","title":"Figma 플러그인","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/figma.svg","href":"/ko/integrations/figma-plugin"},{"sidebarTitle":"Next.js","title":"Next.js Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/nextjs.svg","href":"/ko/developer-resources/nextjs-boilerplate"},{"sidebarTitle":"Astro","title":"Astro Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/astro.svg","href":"/ko/developer-resources/astro-boilerplate"},{"sidebarTitle":"FastAPI","title":"FastAPI 보일러플레이트","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/fastapi.svg","tag":"NEW","href":"/ko/developer-resources/fastapi-boilerplate"},{"sidebarTitle":"Go","title":"Go 보일러플레이트","icon":"golang","tag":"NEW","href":"/ko/developer-resources/go-boilerplate"}]},{"title":"Dodo CLI","icon":"terminal","tag":"NEW","href":"/ko/developer-resources/sdks/cli"},{"title":"오버레이 체크아웃","icon":"cart-shopping","href":"/ko/developer-resources/overlay-checkout"},{"title":"인라인 체크아웃","icon":"credit-card","href":"/ko/developer-resources/inline-checkout"},{"title":"청구 SDK","icon":"boxes-stacked","href":"/ko/developer-resources/billingsdk"},{"title":"Dodo Payments MCP Server","icon":"server","href":"/ko/developer-resources/mcp-server"},{"title":"Agent Skills","icon":"wand-magic-sparkles","href":"/ko/developer-resources/agent-skills"},{"sidebarTitle":"데이터베이스 동기화","title":"데이터베이스와 동기화","icon":"database","href":"/ko/developer-resources/dodo-sync"},{"sidebarTitle":"구독 마이그레이션","title":"Dodo Payments로의 구독 마이그레이션","icon":"file-import","href":"/ko/miscellaneous/subscription-migration"}]},{"group":"Merchant of Record","pages":[{"sidebarTitle":"MoR이란 무엇인가요?","title":"소개","icon":"building-columns","href":"/ko/features/mor-introduction"},{"title":"MoR vs PG","icon":"scale-balanced","href":"/ko/features/mor-vs-pg"},{"title":"가맹점 등록이 가능한 국가","icon":"globe","href":"/ko/miscellaneous/accepted-countries-and-territories"},{"title":"검토 및 모니터링 정책","icon":"magnifying-glass","href":"/ko/miscellaneous/review-monitoring-policy"},{"sidebarTitle":"App Store 수수료 우회","title":"Dodo Payments를 사용하여 App Store 및 Play Store 수수료 우회하기","icon":"shield-check","href":"/ko/features/bypassing-app-store-fees"}]},{"group":"Miscellaneous","pages":[{"group":"Support Channels","icon":"headset","pages":[{"title":"도움 및 지원","icon":"headset","href":"/ko/miscellaneous/help-support"},{"title":"기능 요청 및 로드맵","icon":"lightbulb","href":"/ko/features/feature-request"}]},{"title":"모바일 및 데스크톱 앱","icon":"mobile","href":"/ko/features/mobile-app"},{"title":"보안 보고 정책","icon":"shield","href":"/ko/miscellaneous/security-policy"}]}]},{"tab":"Guides","icon":"compass","pages":[{"title":"Guides","href":"/ko/developer-resources/integration-guide"}]},{"tab":"API Reference","icon":"rectangle-code","pages":[{"title":"API Reference","href":"/ko/api-reference/introduction"}]},{"tab":"External Integrations","icon":"plug","pages":[{"title":"External Integrations","href":"/ko/integrations/introduction"}]},{"tab":"Changelog","icon":"calendar-days","pages":[{"title":"Changelog","href":"/ko/changelog/introduction"}]},{"tab":"Community Projects","icon":"users","pages":[{"title":"Community Projects","href":"/ko/community/overview"}]}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/features/entitlements/discord"}]},{"language":"vi","pages":[{"title":"vi","href":"/vi/features/entitlements/discord"}]},{"language":"cn","pages":[{"title":"cn","href":"/cn/features/entitlements/discord"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/features/entitlements/discord"}]},{"language":"it","pages":[{"title":"it","href":"/it/features/entitlements/discord"}]},{"language":"sv","pages":[{"title":"sv","href":"/sv/features/entitlements/discord"}]}]},"basePath":"","title":"Discord Entitlement - Dodo Payments Documentation","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-rZ_6yn08.js","DynamicMarkdown-D3RQ-fEj.js","zoom-image-lightbox-CMHgNu49.js","lightbox-handle-r17bVUz3.js"]}