Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.
The Telegram entitlement gives paying customers access to a private Telegram group or channel. The customer links their Telegram account in the Customer Portal, and the Dodo Payments Telegram bot sends them a join request link that it approves only for that account. When the grant is revoked, the bot removes the customer from the chat.
The grant is created in Pending. It stays Pending after the customer links their Telegram account and the bot issues the join request link.
In the Customer Portal, the customer clicks Connect, sends /start to the Dodo Payments bot to get their Telegram user ID, enters it, and clicks Link account.
The bot sends the customer a join request link in Telegram. When the customer requests to join, the bot approves the request for their linked account only.
On cancellation, refund, or manual revoke, the bot removes the customer from the chat and bans them. If they buy again, the bot lifts the ban before it sends a new link.
Common uses include private alpha channels, paid signal groups, and community-tier perks.
In the Dodo Payments dashboard, go to Entitlements and click +, then choose Telegram Access as the integration. The dashboard asks for your Telegram user ID, which links the chats you add the bot to with your business.
New Entitlement → Telegram Access. The dashboard needs your Telegram user ID before it lists chats.
The next two steps happen in Telegram, and you can do them in either order: get your user ID, and add the bot to your chat as an admin. When both are done, return to the dashboard for the final step.
2
Get Your Telegram User ID
In Telegram, send /start to:
@dodo_payments_bot if you’re using Live Mode
@DodoPaymentsTestBot if you’re using Test Mode
The bot replies with your numeric Telegram user ID. Copy it. You paste it into the dashboard in the last step.
3
Add the Bot to Your Chat as an Admin
From the same Telegram account, open the group or channel you want to gate and add the same bot as an admin (@dodo_payments_bot for live mode, @DodoPaymentsTestBot for test mode). Enable these two permissions:
Ban Users: required to remove members on revocation.
Add Users: required to invite paying customers.
Leave every other admin permission off.
Telegram → Promote to admin. Only Ban Users and Add Users need to be enabled.
4
Connect Telegram and Pick the Chat
Back in the dashboard, paste the user ID from step 2 into Telegram User ID and click Connect Telegram. The Chat picker lists the groups and channels you added the bot to from that account. Pick the chat you want to gate, enter a Name for the entitlement, and click Create Entitlement.
Dodo Payments creates a Pending grant. No invite link exists yet.
The payment confirmation email lists the entitlement as Action Required and links to the Customer Portal. In the portal, the customer clicks Connect, sends /start to the bot, enters their Telegram user ID, and clicks Link account.
The bot sends the customer a join request link in Telegram. The customer opens the link and requests to join, and the bot approves the request.
On revocation, the bot removes the customer from the chat.
The bot approves join requests only from the Telegram account the customer linked. A forwarded link doesn’t give anyone else access. The linked account can’t be changed on an existing grant.
// 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("Premium Signals Group"), IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeTelegram), IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam]( dodopayments.IntegrationConfigTelegramConfigParam{ ChatID: dodopayments.F("-1001234567890"), }, ),})
See entitlement_grant.* webhook events. Telegram grants arrive Pending and stay Pending after the customer links their Telegram account. If a customer with a delivered grant leaves the chat, Dodo Payments revokes the grant with revocation_reason: platform_external.
Add the Dodo Payments bot to the chat as an admin with Add Users enabled, from the Telegram account whose user ID you entered in the dashboard. The chat appears in the picker once the bot is an admin.
Customer says the invite link doesn't work
The bot approves join requests only from the linked Telegram account. Ask the customer to open the link from that account.Revoking a grant is final. You can’t reissue a revoked grant, so the customer needs a new purchase to get a new grant.
Customer cancelled but is still in the chat
The bot needs the Ban Users admin permission to remove members. Open the chat settings and confirm that both Ban Users and Add Users are enabled for the Dodo Payments bot.
Last modified on September 26, 2026
Was this page helpful?
⌘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":"6af2d0a118316a0dfc1e077b","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"API Reference","count":181},{"language":"en","tag":"Docs","count":175},{"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":85},{"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":74},{"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":23},{"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":"llms-txt-v2","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}],"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":"features/entitlements/telegram","slug":"/features/entitlements/telegram","pageMetadata":{"title":"Telegram Entitlement","sidebarTitle":"Telegram","description":"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.","icon":"telegram","keywords":["Dodo Payments","Telegram","entitlement","private channel","community"],"href":"/features/entitlements/telegram"},"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: \"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\"\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:`The Telegram entitlement gives paying customers access to a private Telegram group or channel. The customer links their Telegram account in the Customer Portal, and the Dodo Payments Telegram bot sends them a join request link that it approves only for that account. When the grant is revoked, the bot removes the customer from the chat.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-gets-delivered`,children:`What Gets Delivered`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The grant is created in `,_jsx(_components.code,{children:`Pending`}),`. It stays `,_jsx(_components.code,{children:`Pending`}),` after the customer links their Telegram account and the bot issues the join request link.`]}),`\n`,_jsxs(_components.li,{children:[`In the Customer Portal, the customer clicks `,_jsx(_components.strong,{children:`Connect`}),`, sends `,_jsx(_components.code,{children:`/start`}),` to the Dodo Payments bot to get their Telegram user ID, enters it, and clicks `,_jsx(_components.strong,{children:`Link account`}),`.`]}),`\n`,_jsx(_components.li,{children:`The bot sends the customer a join request link in Telegram. When the customer requests to join, the bot approves the request for their linked account only.`}),`\n`,_jsx(_components.li,{children:`On cancellation, refund, or manual revoke, the bot removes the customer from the chat and bans them. If they buy again, the bot lifts the ban before it sends a new link.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Common uses include private alpha channels, paid signal groups, and community-tier perks.`}),`\n`,_jsx(Heading,{level:`2`,id:`connect-telegram`,children:`Connect Telegram`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open Entitlements`,children:[_jsxs(_components.p,{children:[`In the Dodo Payments dashboard, go to `,_jsx(_components.strong,{children:`Entitlements`}),` and click `,_jsx(_components.strong,{children:`+`}),`, then choose `,_jsx(_components.strong,{children:`Telegram Access`}),` as the integration. The dashboard asks for your Telegram user ID, which links the chats you add the bot to with your business.`]}),_jsx(Frame,{caption:`New Entitlement → Telegram Access. The dashboard needs your Telegram user ID before it lists chats.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=dbb8be6964b2cbfb9bbe9902944f3d5f`,alt:`New Entitlement Telegram Access form prompting for Telegram user ID and Connect Telegram button`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1131`,height:`1131`,\"data-path\":`images/entitlements/telegram/connect-prompt.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=317f1df03872390dfc3fa3d6e20468f7 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=819682081bfb0ed2ddfaaac3625f7854 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=31cfe6bc4a83f13118bf47d76297aa69 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=77e52b55b2e7fb8f0891be846c6c5485 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=f2c9fae4140681c0a04ee9e5c2080193 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/connect-prompt.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=13e721e4de88596bd1d873348598ea59 2500w`})}),_jsx(Tip,{children:_jsx(_components.p,{children:`The next two steps happen in Telegram, and you can do them in either order: get your user ID, and add the bot to your chat as an admin. When both are done, return to the dashboard for the final step.`})})]}),_jsxs(Step,{title:`Get Your Telegram User ID`,children:[_jsxs(_components.p,{children:[`In Telegram, send `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`/start`})}),` to:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`@dodo_payments_bot`})}),` if you’re using `,_jsx(_components.strong,{children:`Live Mode`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`@DodoPaymentsTestBot`})}),` if you’re using `,_jsx(_components.strong,{children:`Test Mode`})]}),`\n`]}),_jsx(_components.p,{children:`The bot replies with your numeric Telegram user ID. Copy it. You paste it into the dashboard in the last step.`})]}),_jsxs(Step,{title:`Add the Bot to Your Chat as an Admin`,children:[_jsxs(_components.p,{children:[`From the same Telegram account, open the group or channel you want to gate and `,_jsx(_components.strong,{children:`add the same bot as an admin`}),` (`,_jsx(_components.code,{children:`@dodo_payments_bot`}),` for live mode, `,_jsx(_components.code,{children:`@DodoPaymentsTestBot`}),` for test mode). Enable these two permissions:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ban Users`}),`: required to remove members on revocation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Add Users`}),`: required to invite paying customers.`]}),`\n`]}),_jsx(_components.p,{children:`Leave every other admin permission off.`}),_jsx(Frame,{caption:`Telegram → Promote to admin. Only Ban Users and Add Users need to be enabled.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=bf927f2ee98616b671257d246de06cd3`,alt:`Telegram Promote to admin screen showing Ban Users and Add Users enabled for the Dodo Payments bot`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`734`,width:`734`,\"data-og-height\":`1626`,height:`1626`,\"data-path\":`images/entitlements/telegram/promote-bot-admin.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=19a2f1f1a4ef5834556c71a9db69a9b1 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=9672c40ac89058300839de704a75c8ab 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=9b9d4371e65ad9879d73f7a25adb068b 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=d84504b000b97efb22007e05e2ac3f22 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=aaf6f80f17981d4e966c517498bbc47e 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/telegram/promote-bot-admin.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=2e1aa1b3a5e544800bdf63924cabb7fa 2500w`})})]}),_jsx(Step,{title:`Connect Telegram and Pick the Chat`,children:_jsxs(_components.p,{children:[`Back in the dashboard, paste the user ID from step 2 into `,_jsx(_components.strong,{children:`Telegram User ID`}),` and click `,_jsx(_components.strong,{children:`Connect Telegram`}),`. The `,_jsx(_components.strong,{children:`Chat`}),` picker lists the groups and channels you added the bot to from that account. Pick the chat you want to gate, enter a `,_jsx(_components.strong,{children:`Name`}),` for the entitlement, and click `,_jsx(_components.strong,{children:`Create Entitlement`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`customer-flow`,children:`Customer Flow`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`The customer completes checkout.`}),`\n`,_jsxs(_components.li,{children:[`Dodo Payments creates a `,_jsx(_components.code,{children:`Pending`}),` grant. No invite link exists yet.`]}),`\n`,_jsxs(_components.li,{children:[`The payment confirmation email lists the entitlement as `,_jsx(_components.strong,{children:`Action Required`}),` and links to the Customer Portal. In the portal, the customer clicks `,_jsx(_components.strong,{children:`Connect`}),`, sends `,_jsx(_components.code,{children:`/start`}),` to the bot, enters their Telegram user ID, and clicks `,_jsx(_components.strong,{children:`Link account`}),`.`]}),`\n`,_jsx(_components.li,{children:`The bot sends the customer a join request link in Telegram. The customer opens the link and requests to join, and the bot approves the request.`}),`\n`,_jsx(_components.li,{children:`On revocation, the bot removes the customer from the chat.`}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`The bot approves join requests only from the Telegram account the customer linked. A forwarded link doesn’t give anyone else access. The linked account can’t be changed on an existing grant.`})}),`\n`,_jsx(Heading,{level:`2`,id:`required-configuration`,children:`Required Configuration`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chat_id`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`The Telegram chat ID (numeric, and often negative for groups and channels). The dashboard’s chat picker fills this in for you.`})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`create-via-api`,children:`Create via API`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,expandable:`true`,numberOfLines:`14`,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:`14`,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:` 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\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`new`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` DodoPayments({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` bearerToken: process.env[`}),_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\":`#D4D4D4`},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\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` entitlement = `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` name: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Premium Signals Group'`}),_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\":`#D4D4D4`},children:` integration_type: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'telegram'`}),_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:` integration_config: {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` chat_id: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'-1001234567890'`}),_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:`13`,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:`13`,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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client = DodoPayments(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` bearer_token=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:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`entitlement = client.entitlements.create(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` name=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Premium Signals Group\"`}),_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\":`#D4D4D4`},children:` integration_type=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"telegram\"`}),_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\":`#D4D4D4`},children:` integration_config={`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"chat_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-1001234567890\"`}),_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:`11`,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:`11`,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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Name: dodopayments.F(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Premium Signals Group\"`}),_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:` IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeTelegram),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam](`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dodopayments.IntegrationConfigTelegramConfigParam{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ChatID: dodopayments.F(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-1001234567890\"`}),_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:[`See `,_jsxs(_components.a,{href:`/developer-resources/webhooks/intents/entitlement-grant`,children:[_jsx(_components.code,{children:`entitlement_grant.*`}),` webhook events`]}),`. Telegram grants arrive `,_jsx(_components.code,{children:`Pending`}),` and stay `,_jsx(_components.code,{children:`Pending`}),` after the customer links their Telegram account. If a customer with a delivered grant leaves the chat, Dodo Payments revokes the grant with `,_jsx(_components.code,{children:`revocation_reason: platform_external`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Chat doesn't appear in the picker`,id:`chat-doesnt-appear-in-the-picker`,children:_jsxs(_components.p,{children:[`Add the Dodo Payments bot to the chat `,_jsx(_components.strong,{children:`as an admin`}),` with `,_jsx(_components.strong,{children:`Add Users`}),` enabled, from the Telegram account whose user ID you entered in the dashboard. The chat appears in the picker once the bot is an admin.`]})}),_jsxs(Accordion,{title:`Customer says the invite link doesn't work`,id:`customer-says-the-invite-link-doesnt-work`,children:[_jsx(_components.p,{children:`The bot approves join requests only from the linked Telegram account. Ask the customer to open the link from that account.`}),_jsx(_components.p,{children:`Revoking a grant is final. You can’t reissue a revoked grant, so the customer needs a new purchase to get a new grant.`})]}),_jsx(Accordion,{title:`Customer cancelled but is still in the chat`,id:`customer-cancelled-but-is-still-in-the-chat`,children:_jsxs(_components.p,{children:[`The bot needs the `,_jsx(_components.strong,{children:`Ban Users`}),` admin permission to remove members. Open the chat settings and confirm that both `,_jsx(_components.strong,{children:`Ban Users`}),` and `,_jsx(_components.strong,{children:`Add Users`}),` are enabled for the Dodo Payments bot.`]})})]})]})}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":"Telegram Entitlement","sidebarTitle":"Telegram","description":"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.","icon":"telegram","keywords":["Dodo Payments","Telegram","entitlement","private channel","community"],"href":"/features/entitlements/telegram"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What Gets Delivered","slug":"what-gets-delivered","depth":2,"children":[]},{"title":"Connect Telegram","slug":"connect-telegram","depth":2,"children":[]},{"title":"Customer Flow","slug":"customer-flow","depth":2,"children":[]},{"title":"Required Configuration","slug":"required-configuration","depth":2,"children":[]},{"title":"Create via API","slug":"create-via-api","depth":2,"children":[]},{"title":"Webhooks","slug":"webhooks","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","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":"Telegram Entitlement - Dodo Payments Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/entitlements/telegram","matchLevel":0},"es":{"href":"/es/features/entitlements/telegram","matchLevel":1},"ar":{"href":"/ar/features/entitlements/telegram","matchLevel":1},"fr":{"href":"/fr/features/entitlements/telegram","matchLevel":1},"de":{"href":"/de/features/entitlements/telegram","matchLevel":1},"id":{"href":"/id/features/entitlements/telegram","matchLevel":1},"ja":{"href":"/ja/features/entitlements/telegram","matchLevel":1},"ko":{"href":"/ko/features/entitlements/telegram","matchLevel":1},"pt-BR":{"href":"/pt-BR/features/entitlements/telegram","matchLevel":1},"vi":{"href":"/vi/features/entitlements/telegram","matchLevel":1},"cn":{"href":"/cn/features/entitlements/telegram","matchLevel":1},"hi":{"href":"/hi/features/entitlements/telegram","matchLevel":1},"it":{"href":"/it/features/entitlements/telegram","matchLevel":1},"sv":{"href":"/sv/features/entitlements/telegram","matchLevel":1}}},"lastModified":"2026-09-26T19:24:15.204Z","gitLastModified":"2026-09-26T19:21:21.000Z","originalFileLocation":"features/entitlements/telegram.mdx","locale":"en"},"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=\"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\">\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=\"Telegram Entitlement - Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dodopayments.com/features/entitlements/telegram\">\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=Telegram+Entitlement\u0026amp;description=Add+paying+customers+to+a+private+Telegram+group+or+channel+when+they+subscribe+or+purchase%2C+and+remove+them+automatically+when+access+ends.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=fab98c597d8ffe5de381c2c8d9fda48ec6873a3766cc77558e663a0d9089ebd3\">\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=\"Telegram Entitlement - Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Telegram+Entitlement\u0026amp;description=Add+paying+customers+to+a+private+Telegram+group+or+channel+when+they+subscribe+or+purchase%2C+and+remove+them+automatically+when+access+ends.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=fab98c597d8ffe5de381c2c8d9fda48ec6873a3766cc77558e663a0d9089ebd3\">\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/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/entitlements/telegram.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.dodopayments.com/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.dodopayments.com/es/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.dodopayments.com/ar/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.dodopayments.com/fr/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.dodopayments.com/de/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.dodopayments.com/id/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.dodopayments.com/ja/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.dodopayments.com/ko/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.dodopayments.com/pt-BR/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://docs.dodopayments.com/vi/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.dodopayments.com/cn/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.dodopayments.com/hi/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.dodopayments.com/it/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"sv\" href=\"https://docs.dodopayments.com/sv/features/entitlements/telegram\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.dodopayments.com/features/entitlements/telegram\">\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/features/entitlements/telegram#webpage\",\"url\":\"https://docs.dodopayments.com/features/entitlements/telegram\",\"name\":\"Telegram Entitlement\",\"description\":\"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\",\"dateModified\":\"2026-09-26T19:21:21.000Z\",\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dodopayments.com/features/entitlements/telegram#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dodopayments.com/features/entitlements/telegram#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.dodopayments.com/features/products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entitlements\",\"item\":\"https://docs.dodopayments.com/features/entitlements/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Telegram Entitlement\",\"item\":\"https://docs.dodopayments.com/features/entitlements/telegram\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dodopayments.com/features/entitlements/telegram#article\",\"headline\":\"Telegram Entitlement\",\"name\":\"Telegram Entitlement\",\"description\":\"Add paying customers to a private Telegram group or channel when they subscribe or purchase, and remove them automatically when access ends.\",\"url\":\"https://docs.dodopayments.com/features/entitlements/telegram\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dodopayments.com/features/entitlements/telegram#webpage\"},\"dateModified\":\"2026-09-26T19:21:21.000Z\",\"keywords\":\"Dodo Payments, Telegram, entitlement, private channel, community\",\"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":"/features/entitlements/telegram.md","siteName":"Dodo Payments Documentation","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to Dodo Payments","sidebarTitle":"Introduction","icon":"rocket","href":"/introduction"},{"title":"Build with AI Coding Agents","sidebarTitle":"AI Coding Agents","icon":"robot","href":"/developer-resources/build-with-ai-coding-agents"},{"title":"Migrate to Dodo Payments","icon":"arrow-right-arrow-left","href":"/migrate-to-dodo"},{"title":"Account Verification","icon":"id-card","href":"/miscellaneous/verification-process"}]},{"group":"Features","pages":[{"sidebarTitle":"Products","title":"Products","icon":"box","href":"/features/products"},{"sidebarTitle":"Product Collections","title":"Product Collections","icon":"layer-group","href":"/features/product-collections"},{"sidebarTitle":"One-Time Payments","title":"One-Time Payments","icon":"credit-card","href":"/features/one-time-payment-products"},{"group":"Subscriptions","icon":"infinity","pages":[{"sidebarTitle":"Subscriptions","title":"Subscriptions","icon":"repeat","href":"/features/subscription"},{"sidebarTitle":"Add-ons","title":"Add-ons for Subscriptions","icon":"puzzle","href":"/features/addons"},{"title":"On-Demand Subscriptions","icon":"bolt","href":"/developer-resources/ondemand-subscriptions"}]},{"group":"Usage Based Billing","icon":"arrow-trend-up","pages":[{"sidebarTitle":"Introduction","title":"Usage-Based Billing","icon":"box","href":"/features/usage-based-billing/introduction"},{"sidebarTitle":"Meters","title":"Meters","icon":"sliders","href":"/features/usage-based-billing/meters"},{"sidebarTitle":"Event Ingestion","title":"Event Ingestion","icon":"bolt","href":"/features/usage-based-billing/event-ingestion"},{"group":"Ingestion Blueprints","icon":"copy","pages":[{"sidebarTitle":"Introduction","title":"Ingestion Blueprints","icon":"box","href":"/features/usage-based-billing/ingestion-blueprints"},{"title":"LLM Blueprint","icon":"brain-circuit","href":"/developer-resources/ingestion-blueprints/llm"},{"title":"API Gateway Blueprint","icon":"cloud","href":"/developer-resources/ingestion-blueprints/api-gateway"},{"title":"Object Storage Blueprint","icon":"box-archive","href":"/developer-resources/ingestion-blueprints/object-storage"},{"title":"Stream Blueprint","icon":"tower-broadcast","href":"/developer-resources/ingestion-blueprints/stream"},{"title":"Time Range Blueprint","icon":"clock","href":"/developer-resources/ingestion-blueprints/time-range"}]}]},{"sidebarTitle":"Credit-Based Billing","title":"Credit-Based Billing","icon":"coins","href":"/features/credit-based-billing"},{"sidebarTitle":"Seat-Based Billing","title":"Seat-Based Billing","icon":"users","href":"/features/seat-based-billing"},{"sidebarTitle":"Hybrid Billing","title":"Hybrid Billing Models","icon":"layer-group","href":"/features/hybrid-billing"},{"title":"Upsells \u0026 Downsells","icon":"arrow-up-right-dots","href":"/features/upsells-and-downsells"},{"group":"Customers","icon":"user-group","pages":[{"title":"Customer Management","icon":"user-group","href":"/features/customers"},{"sidebarTitle":"Customer Portal","title":"Customer Portal","icon":"id-card","href":"/features/customer-portal"},{"title":"Customer Wallets","icon":"wallet","href":"/features/customer-wallet"},{"sidebarTitle":"Sent Emails","title":"Customer Email Logs","icon":"envelope","href":"/features/email-logs"},{"sidebarTitle":"Customer Blocklist","title":"Customer Blocklist","icon":"user-slash","href":"/features/customer-blocklist"}]},{"sidebarTitle":"Discounts","title":"Discounts","icon":"percent","href":"/features/discount-codes"},{"group":"Recovery","icon":"rotate","pages":[{"sidebarTitle":"Overview","title":"Revenue Recovery","icon":"rotate","href":"/features/recovery/overview"},{"sidebarTitle":"Abandoned Cart Recovery","title":"Abandoned Cart Recovery","icon":"cart-shopping","href":"/features/recovery/abandoned-cart-recovery"},{"sidebarTitle":"Subscription Dunning","title":"Subscription Dunning","icon":"repeat","href":"/features/recovery/subscription-dunning"},{"sidebarTitle":"Subscription Payment Retries","title":"Subscription Payment Retries","icon":"arrow-rotate-right","href":"/features/recovery/payment-retries"},{"sidebarTitle":"Manual Retry","title":"Manual Payment Retry","icon":"hand-pointer","href":"/features/recovery/manual-retry"}]},{"group":"Transactions","icon":"credit-card","pages":[{"title":"Payments","icon":"money-bill-transfer","href":"/features/transactions/payments"},{"title":"Refunds","icon":"rotate-left","href":"/features/transactions/refunds"},{"title":"Disputes","icon":"circle-exclamation","href":"/features/transactions/disputes"}]},{"group":"Entitlements","icon":"gift","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"box-archive","href":"/features/entitlements/introduction"},{"title":"License Keys","icon":"key","href":"/features/license-keys"},{"title":"Digital Product Delivery","sidebarTitle":"Digital Products","icon":"download","href":"/features/digital-product-delivery"},{"title":"Feature Flag Entitlement","sidebarTitle":"Feature Flags","icon":"flag","href":"/features/entitlements/feature-flags"},{"title":"Discord Entitlement","sidebarTitle":"Discord","icon":"discord","href":"/features/entitlements/discord"},{"title":"GitHub Entitlement","sidebarTitle":"GitHub","description":"Grant customers collaborator access to a private GitHub repository at the permission level you choose, and revoke it automatically on cancellation.","icon":"github","href":"/features/entitlements/github"},{"title":"Telegram Entitlement","sidebarTitle":"Telegram","icon":"telegram","href":"/features/entitlements/telegram"},{"title":"Framer Entitlement","sidebarTitle":"Framer","description":"Give paying customers the remix link of your Framer template, so they can remix it into their own Framer account after purchase.","icon":"puzzle-piece","href":"/features/entitlements/framer"},{"title":"Notion Entitlement","sidebarTitle":"Notion","icon":"book","href":"/features/entitlements/notion"}]},{"group":"Payouts and Balances","icon":"wallet","pages":[{"title":"Payouts Process","icon":"money-bill","href":"/features/payouts/payout-structure"},{"title":"Balances","icon":"file-invoice-dollar","href":"/features/account-summary-payout-wallet"}]},{"group":"Account Management","icon":"user","pages":[{"sidebarTitle":"Archive a Business","title":"Archiving a Business","icon":"box-archive","href":"/features/archive-business"},{"sidebarTitle":"Transfer Ownership","title":"Transferring Business Ownership","icon":"people-arrows","href":"/features/ownership-transfer"},{"sidebarTitle":"Entity Transfer","title":"Transferring Your Business to a New Entity","icon":"building","href":"/features/entity-transfer"},{"title":"Multi-Brand Setup","icon":"building-columns","href":"/features/multi-brands"},{"title":"Invoice Management","icon":"file-invoice-dollar","href":"/features/invoice-generation"},{"title":"Team Members","icon":"user-gear","href":"/features/team"},{"sidebarTitle":"Connected Apps","title":"Connected Apps","icon":"plug","href":"/features/connected-apps"},{"title":"Communication Preferences","sidebarTitle":"Communication Preferences","icon":"bell","href":"/features/communication-preferences"},{"title":"My Account","icon":"user-gear","href":"/miscellaneous/accounts"}]},{"group":"Pricing","icon":"dollar-sign","pages":[{"sidebarTitle":"Tax Inclusive Pricing","title":"Tax Inclusive Pricing","icon":"file-invoice","href":"/features/tax-inclusive-pricing"},{"sidebarTitle":"Pay What You Want","title":"Pay What You Want Pricing","icon":"dollar-sign","href":"/features/pay-what-you-want"},{"title":"B2B Payments","icon":"money-bills","href":"/features/b2b-payments"},{"title":"Localized Pricing","sidebarTitle":"Localized Pricing","icon":"earth-americas","href":"/features/localized-pricing"},{"sidebarTitle":"Purchasing Power Parity","title":"Purchasing Power Parity","icon":"money-bill-trend-up","href":"/features/purchasing-power-parity"},{"sidebarTitle":"Charm Pricing","title":"Charm Pricing","icon":"tag","href":"/features/charm-pricing"}]},{"sidebarTitle":"Checkout","title":"Checkout Features","icon":"cart-shopping","href":"/features/checkout"},{"sidebarTitle":"Single Page Checkout","title":"Single Page Checkout","icon":"window-maximize","tag":"BETA","href":"/features/single-page-checkout"},{"sidebarTitle":"Design","title":"Design \u0026 Theme Customization","icon":"palette","href":"/features/design"},{"group":"Payment Methods","icon":"money-bill-wave","pages":[{"title":"Payment Methods","sidebarTitle":"Overview","icon":"layer-group","href":"/features/payment-methods"},{"title":"Credit \u0026 Debit Cards","sidebarTitle":"Cards","icon":"credit-card","href":"/features/payment-methods/cards"},{"title":"Digital Wallets","sidebarTitle":"Digital Wallets","icon":"wallet","href":"/features/payment-methods/digital-wallets"},{"title":"Buy Now Pay Later (BNPL)","sidebarTitle":"BNPL","icon":"calendar-days","href":"/features/payment-methods/bnpl"},{"title":"ACH Direct Debit","sidebarTitle":"ACH Direct Debit","icon":"building-columns","href":"/features/payment-methods/ach"},{"title":"India Payment Methods","sidebarTitle":"India","icon":"indian-rupee-sign","href":"/features/payment-methods/india"},{"title":"European Payment Methods","sidebarTitle":"Europe","icon":"euro-sign","href":"/features/payment-methods/europe"},{"title":"South Korea Payment Methods","sidebarTitle":"South Korea","icon":"won-sign","href":"/features/payment-methods/south-korea"},{"title":"Asia-Pacific Payment Methods","sidebarTitle":"Asia-Pacific","icon":"earth-asia","href":"/features/payment-methods/asia-pacific"},{"title":"Pix","sidebarTitle":"Pix","icon":"brazilian-real-sign","href":"/features/payment-methods/pix"},{"title":"Stablecoins","sidebarTitle":"Stablecoins","icon":"dollar-sign","href":"/features/payment-methods/stablecoins"},{"title":"WeChat Pay","sidebarTitle":"WeChat Pay","icon":"comment-dollar","href":"/features/payment-methods/wechat"}]},{"title":"Third-Party Analytics","sidebarTitle":"Third-Party Analytics","icon":"chart-line","href":"/features/analytics"},{"sidebarTitle":"Adaptive Currency","title":"Adaptive Currency","icon":"money-bill-transfer","href":"/features/adaptive-currency"},{"group":"BYOP","icon":"shuffle","tag":"BETA","pages":[{"title":"Bring Your Own Processor (BYOP)","sidebarTitle":"Overview","tag":"BETA","icon":"boxes-stacked","href":"/features/byop"},{"title":"Stripe - Connect \u0026 Raw Card API Access","sidebarTitle":"Stripe","icon":"stripe","href":"/features/byop/stripe"},{"title":"Adyen - Connect \u0026 Raw Card API Access","sidebarTitle":"Adyen","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/adyen.svg","href":"/features/byop/adyen"}]},{"title":"Storefront","icon":"store","href":"/features/storefront"},{"title":"Affiliates","icon":"users-line","href":"/features/affiliates"},{"title":"Moderation API","icon":"shield-check","tag":"NEW","href":"/features/moderation"},{"title":"Selling Digital Goods on iOS","icon":"mobile","href":"/features/appstore-digital-goods"},{"title":"Dashboard Analytics","sidebarTitle":"Dashboard Analytics","icon":"chart-line","href":"/features/analytics-and-reporting"},{"title":"Reports","sidebarTitle":"Reports","icon":"file-invoice","href":"/features/reports"}]},{"group":"Integrate","pages":[{"group":"SDKs","icon":"box-open","pages":[{"sidebarTitle":"Overview","title":"Official SDKs","icon":"box","href":"/developer-resources/dodo-payments-sdks"},{"title":"TypeScript","icon":"js","href":"/developer-resources/sdks/typescript"},{"title":"Python","icon":"python","href":"/developer-resources/sdks/python"},{"title":"Go","icon":"golang","href":"/developer-resources/sdks/go"},{"title":"Ruby","icon":"gem","href":"/developer-resources/sdks/ruby"},{"title":"Java","icon":"java","href":"/developer-resources/sdks/java"},{"title":"Kotlin","icon":"k","href":"/developer-resources/sdks/kotlin"},{"title":"PHP","icon":"php","href":"/developer-resources/sdks/php"},{"title":"C#","icon":"c","href":"/developer-resources/sdks/csharp"},{"title":"Rust","icon":"rust","href":"/developer-resources/sdks/rust"}]},{"group":"Mobile Checkout SDKs","icon":"mobile","pages":[{"title":"Mobile Integration Guide","sidebarTitle":"Integration Guide","icon":"mobile","href":"/developer-resources/mobile-integration"},{"title":"Android","sidebarTitle":"Android","icon":"android","href":"/developer-resources/sdks/android"},{"title":"iOS","sidebarTitle":"iOS","icon":"apple","href":"/developer-resources/sdks/ios"},{"title":"React Native","sidebarTitle":"React Native","icon":"react","href":"/developer-resources/sdks/react-native"},{"title":"Flutter","sidebarTitle":"Flutter","icon":"layer-group","href":"/developer-resources/sdks/flutter"}]},{"group":"Framework Adaptors","icon":"frame","pages":[{"sidebarTitle":"Overview","title":"Framework Adaptors Overview","icon":"box","href":"/developer-resources/framework-adaptors"},{"title":"Next.js Adaptor","icon":"code-merge","href":"/developer-resources/nextjs-adaptor"},{"title":"Better Auth Adaptor","icon":"code-merge","href":"/developer-resources/better-auth-adaptor"},{"title":"Convex Component","icon":"code-merge","href":"/developer-resources/convex-component"},{"title":"TanStack Adaptor","icon":"code-merge","href":"/developer-resources/tanstack-adaptor"},{"title":"Nuxt Adaptor","icon":"code-merge","href":"/developer-resources/nuxt-adaptor"},{"title":"Express Adaptor","icon":"code-merge","href":"/developer-resources/express-adaptor"},{"title":"Astro Adaptor","icon":"code-merge","href":"/developer-resources/astro-adaptor"},{"title":"SvelteKit Adaptor","icon":"code-merge","href":"/developer-resources/sveltekit-adaptor"},{"title":"Hono Adaptor","icon":"code-merge","href":"/developer-resources/hono-adaptor"},{"title":"Remix Adaptor","icon":"code-merge","href":"/developer-resources/remix-adaptor"},{"title":"Fastify Adaptor","icon":"code-merge","href":"/developer-resources/fastify-adaptor"},{"title":"Bun Adaptor","icon":"code-merge","href":"/developer-resources/bun-adaptor"}]},{"group":"Apps","icon":"puzzle-piece","pages":[{"sidebarTitle":"Build an app","title":"Build an App","icon":"puzzle-piece","href":"/developer-resources/build-an-app"}]},{"group":"Webhooks","icon":"webhook","pages":[{"sidebarTitle":"Overview","title":"Webhooks","icon":"webhook","href":"/developer-resources/webhooks"},{"title":"Webhook Events Guide","icon":"bell","href":"/developer-resources/webhooks/intents/webhook-events-guide"},{"group":"Webhook Payloads","icon":"code","pages":[{"title":"Payment","icon":"credit-card","href":"/developer-resources/webhooks/intents/payment"},{"sidebarTitle":"Subscription","title":"Subscription Webhooks","icon":"repeat","href":"/developer-resources/webhooks/intents/subscription"},{"title":"Refund","icon":"rotate-left","href":"/developer-resources/webhooks/intents/refund"},{"sidebarTitle":"Dispute","title":"Dispute Webhooks","icon":"circle-exclamation","href":"/developer-resources/webhooks/intents/dispute"},{"title":"License Key","icon":"key","href":"/developer-resources/webhooks/intents/license-key"},{"title":"Entitlement Grant","icon":"gift","href":"/developer-resources/webhooks/intents/entitlement-grant"},{"sidebarTitle":"Credit-Based Billing","title":"Credit-Based Billing Webhooks","icon":"coins","href":"/developer-resources/webhooks/intents/credit"},{"title":"Recovery","icon":"rotate","href":"/developer-resources/webhooks/intents/recovery"},{"sidebarTitle":"Payout","title":"Payout Webhooks","icon":"money-bill-transfer","href":"/developer-resources/webhooks/intents/payout"}]},{"group":"Deploy to Cloud","icon":"rocket","pages":[{"title":"Vercel Functions","icon":"triangle","href":"/developer-resources/webhooks/examples/vercel-example"},{"title":"Cloudflare Workers","icon":"cloud","href":"/developer-resources/webhooks/examples/cloudflare-example"},{"title":"Supabase Edge Functions","icon":"bolt","href":"/developer-resources/webhooks/examples/supabase-example"},{"title":"Netlify Functions","icon":"diamond","href":"/developer-resources/webhooks/examples/netlify-example"}]}]},{"group":"Workload Identity","icon":"id-badge","tag":"NEW","pages":[{"sidebarTitle":"Overview","title":"Workload Identity Federation","icon":"id-badge","tag":"NEW","href":"/developer-resources/workload-identity/overview"},{"sidebarTitle":"Dashboard Setup","title":"Set Up Workload Identity in the Dashboard","icon":"sliders","href":"/developer-resources/workload-identity/dashboard-setup"},{"sidebarTitle":"SDK Usage","title":"Use Workload Identity with the SDKs","icon":"code","href":"/developer-resources/workload-identity/sdk-usage"},{"sidebarTitle":"Terraform","title":"Use Workload Identity with the Terraform Provider","icon":"code-branch","href":"/developer-resources/workload-identity/terraform"},{"group":"Provider Guides","icon":"list-check","pages":[{"sidebarTitle":"GitHub Actions","title":"Workload Identity for GitHub Actions","icon":"github","href":"/developer-resources/workload-identity/providers/github-actions"},{"sidebarTitle":"GitLab","title":"Workload Identity for GitLab CI/CD","icon":"gitlab","href":"/developer-resources/workload-identity/providers/gitlab"},{"sidebarTitle":"Terraform Cloud","title":"Workload Identity for HCP Terraform","icon":"cloud","href":"/developer-resources/workload-identity/providers/terraform-cloud"},{"sidebarTitle":"Google Cloud","title":"Workload Identity for Google Cloud","icon":"google","href":"/developer-resources/workload-identity/providers/google-cloud"},{"sidebarTitle":"Vercel","title":"Workload Identity for Vercel","icon":"triangle","href":"/developer-resources/workload-identity/providers/vercel"},{"sidebarTitle":"Kubernetes and EKS","title":"Workload Identity for Kubernetes and Amazon EKS","icon":"dharmachakra","href":"/developer-resources/workload-identity/providers/kubernetes"},{"sidebarTitle":"AWS","title":"Workload Identity for AWS","icon":"aws","href":"/developer-resources/workload-identity/providers/aws"},{"sidebarTitle":"Custom OIDC","title":"Workload Identity for a Custom OIDC Issuer","icon":"key","href":"/developer-resources/workload-identity/providers/custom-oidc"}]}]},{"group":"Testing \u0026 Demo Tools","icon":"flask","pages":[{"title":"Test Mode vs Live Mode","icon":"toggle-on","href":"/miscellaneous/test-mode-vs-live-mode"},{"title":"Testing Process","icon":"flask","href":"/miscellaneous/testing-process"},{"title":"Atlas Demo Product","icon":"palette","href":"/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","href":"/developer-resources/expo-boilerplate"},{"sidebarTitle":"Supabase","title":"Supabase Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/supabase.svg","href":"/developer-resources/supabase-boilerplate"},{"sidebarTitle":"Figma Plugin","title":"Figma Plugin","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/figma.svg","href":"/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":"/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":"/developer-resources/astro-boilerplate"},{"sidebarTitle":"FastAPI","title":"FastAPI Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/fastapi.svg","href":"/developer-resources/fastapi-boilerplate"},{"sidebarTitle":"Go","title":"Go Boilerplate","icon":"golang","href":"/developer-resources/go-boilerplate"}]},{"title":"Dodo CLI","icon":"terminal","href":"/developer-resources/sdks/cli"},{"sidebarTitle":"Terraform Provider","title":"Pricing as Code with Terraform","icon":"code-branch","tag":"NEW","href":"/developer-resources/terraform-provider"},{"title":"Overlay Checkout","icon":"cart-shopping","href":"/developer-resources/overlay-checkout"},{"title":"Inline Checkout","icon":"credit-card","href":"/developer-resources/inline-checkout"},{"title":"Billing SDK","icon":"boxes-stacked","href":"/developer-resources/billingsdk"},{"title":"Dodo Payments MCP Server","icon":"server","href":"/developer-resources/mcp-server"},{"title":"Agent Skills","icon":"wand-magic-sparkles","href":"/developer-resources/agent-skills"},{"sidebarTitle":"Database Sync","title":"Sync with Your Database","icon":"database","href":"/developer-resources/dodo-sync"},{"sidebarTitle":"Subscription Migration","title":"Subscription Migration to Dodo Payments","icon":"file-import","href":"/miscellaneous/subscription-migration"},{"sidebarTitle":"Card Data Export","title":"Request a Card Data Export","icon":"file-export","href":"/miscellaneous/card-data-export"}]},{"group":"Merchant of Record","pages":[{"sidebarTitle":"What Is MoR?","title":"Introduction","icon":"building-columns","href":"/features/mor-introduction"},{"title":"MoR vs PG","icon":"scale-balanced","href":"/features/mor-vs-pg"},{"title":"Countries Eligible for Payment Acceptance","icon":"globe","href":"/miscellaneous/list-of-countries-we-accept-payments-from"},{"title":"Merchant Acceptance Policy","icon":"building-shield","href":"/miscellaneous/merchant-acceptance"},{"title":"Countries Eligible for Merchant Acceptance","icon":"globe","href":"/miscellaneous/accepted-countries-and-territories"},{"title":"Review \u0026 Monitoring Policy","icon":"magnifying-glass","href":"/miscellaneous/review-monitoring-policy"},{"sidebarTitle":"Bypass of App Store Fees","title":"Bypassing App Store \u0026 Play Store Fees Using Dodo Payments","icon":"shield-check","href":"/features/bypassing-app-store-fees"}]},{"group":"Miscellaneous","pages":[{"group":"Support Channels","icon":"headset","pages":[{"title":"Help and Support","icon":"headset","href":"/miscellaneous/help-support"},{"title":"Feature Request and Roadmap","icon":"lightbulb","href":"/features/feature-request"}]},{"title":"Mobile \u0026 Desktop Apps","icon":"mobile","href":"/features/mobile-app"},{"title":"FAQs","icon":"circle-question","href":"/miscellaneous/faq"},{"title":"Security Reporting Policy","icon":"shield","href":"/miscellaneous/security-policy"}]}]},{"tab":"Guides","icon":"compass","pages":[{"title":"Guides","href":"/developer-resources/integration-guide"}]},{"tab":"API Reference","icon":"rectangle-code","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"External Integrations","icon":"plug","pages":[{"title":"External Integrations","href":"/integrations/introduction"}]},{"tab":"Changelog","icon":"calendar-days","pages":[{"title":"Changelog","href":"/changelog/introduction"}]},{"tab":"Community Projects","icon":"users","pages":[{"title":"Community Projects","href":"/community/overview"}]}]},{"language":"es","pages":[{"title":"es","href":"/es/features/entitlements/telegram"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/features/entitlements/telegram"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/features/entitlements/telegram"}]},{"language":"de","pages":[{"title":"de","href":"/de/features/entitlements/telegram"}]},{"language":"id","pages":[{"title":"id","href":"/id/features/entitlements/telegram"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/features/entitlements/telegram"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/features/entitlements/telegram"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/features/entitlements/telegram"}]},{"language":"vi","pages":[{"title":"vi","href":"/vi/features/entitlements/telegram"}]},{"language":"cn","pages":[{"title":"cn","href":"/cn/features/entitlements/telegram"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/features/entitlements/telegram"}]},{"language":"it","pages":[{"title":"it","href":"/it/features/entitlements/telegram"}]},{"language":"sv","pages":[{"title":"sv","href":"/sv/features/entitlements/telegram"}]}]},"basePath":"","title":"Telegram Entitlement - Dodo Payments Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BXrZabKK.js","DynamicMarkdown-CtasenyM.js","zoom-image-lightbox-C5F0mVLH.js","lightbox-handle-r17bVUz3.js"]}