Skip to main content
Entitlements transformam um pagamento bem-sucedido ou uma assinatura ativa em acesso: uma chave de licença na caixa de entrada do seu cliente, uma feature flag que seu aplicativo verifica, uma função no Discord, um repositório do GitHub, um template do Notion, um link de remix do Framer, um convite para um chat do Telegram ou um pacote de arquivos para download. O Dodo Payments emite, acompanha e revoga esse acesso automaticamente conforme o ciclo de vida do pagamento muda.
Entitlements dashboard with a list of entitlements on the left and grant activity on the right

The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.

O que são Entitlements?

Um entitlement é uma definição reutilizável de algo que você entrega a um cliente, como uma chave de licença Pro, uma função “Patrons” no Discord, acesso ao seu repositório privado do GitHub ou um pacote de e-books para download. Você associa entitlements a produtos, e o Dodo Payments os entrega quando um cliente paga. Quando um cliente compra o produto, o Dodo Payments cria um grant: a emissão desse entitlement para um cliente. Um grant tem um de quatro status: Pending enquanto a entrega está em andamento, Delivered quando o cliente obtém acesso, Failed se a entrega não puder ser concluída e Revoked quando o acesso é retirado.
Entitlements controlam o fulfillment (o cliente tem acesso?). Credits controlam o consumption (quanto o cliente pode usar?). Você pode associar ambos ao mesmo produto. Consulte Credit-Based Billing para saber mais sobre credits.

Available Integrations

Cada entitlement é entregue por meio de uma integração. Escolha a integração que corresponde ao que você vende.

License Keys

Generate unique license keys with activation limits and expiry. Best for software, plugins, and CLIs.

Digital Files

Entregue arquivos para download, como e-books, templates e mídia, com URLs de download pré-assinadas e instruções opcionais.

Feature Flags

Controle funcionalidades no seu próprio aplicativo com base em uma compra. Entregue na criação, verifique por meio da API e revogue no cancelamento.

Discord

Dê uma função a um cliente no seu servidor do Discord quando ele comprar. A função será removida automaticamente no cancelamento.

GitHub

Add customers as collaborators to a private repository at the permission level you choose.

Telegram

Add customers to a private Telegram chat or channel after purchase.

Framer

Unlock a Framer template remix link for paying customers.

Notion

Duplicate a Notion template into the customer’s workspace on purchase.

How Grants Work

Os grants seguem os mesmos eventos de pagamento e assinatura que você recebe como webhooks. O Dodo Payments cria e revoga grants automaticamente para compras, com base no ciclo de vida do pagamento, portanto você não precisa chamar a grant API por conta própria.

Grant Lifecycle

Um grant passa pelos seguintes status:
1

Created

O Dodo Payments cria um grant quando um pagamento é concluído ou quando uma assinatura se torna ativa. Grants de feature flags começam como Delivered. Grants de chaves de licença também começam como Delivered quando o entitlement usa fulfillment_mode: auto (o padrão). Em fulfillment_mode: manual, o grant começa como Pending sem uma chave, até que você forneça uma usando Fulfill License Key Grant. Todas as outras integrações começam como Pending.Integrações baseadas em OAuth (Discord, GitHub, Notion) expõem um oauth_url que o cliente acessa para dar consentimento. O Dodo Payments tenta gerar essa URL quando cria o grant. Se falhar, o campo permanece como null até que o cliente inicie o fluxo de aceitação pelo e-mail de entrega ou pelo Customer Portal. Integrações diretas da plataforma (Telegram, Framer, Digital Files) permanecem como Pending apenas enquanto a entrega é provisionada e depois passam para Delivered.
2

Delivered

Quando a entrega é concluída, o grant passa para Delivered e delivered_at é definido. A entrega é concluída quando a chave de licença é gerada, a função é atribuída, o acesso ao repositório é concedido, os links dos arquivos são resolvidos ou o fluxo OAuth é finalizado.
3

Failed

Se a chamada da integração retornar um erro que não pode ser repetido, como um token OAuth revogado, uma permissão negada ou um arquivo que não existe mais, o grant passará para Failed. Os campos error_code e error_message registram o motivo.
4

Revoked

Quando o acesso é retirado, por exemplo porque uma assinatura foi cancelada, um reembolso foi emitido ou você revogou o grant, o grant passa para Revoked. O campo revocation_reason registra o gatilho.

Comportamento dos Grants por Evento

Cada evento de pagamento e assinatura altera os grants da seguinte forma:
Grants controlados por assinatura são idempotentes por (entitlement, customer, subscription), portanto renovações e reativações não criam grants duplicados. Grants únicos são idempotentes por (entitlement, customer, payment).

Crie seu primeiro entitlement

1

Open Entitlements

Acesse Entitlements no dashboard e clique em + para criar um entitlement.
2

Pick an Integration

Escolha o tipo de integração: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer ou Notion. Para uma integração de plataforma, conecte sua conta primeiro, caso ainda não tenha feito isso.
3

Configure Delivery

Preencha os campos da integração. Por exemplo, o GitHub solicita um repositório e um nível de permissão, o Discord solicita um servidor e uma função opcional, e License Key solicita um limite de ativações e uma duração da licença.
Formulário New Entitlement com seletor de integração e campos de configuração

Creating a GitHub entitlement. Each integration shows the fields it needs.

4

Save

Clique em Create Entitlement. Agora você pode associar o entitlement a qualquer produto.

Associe Entitlements a Produtos

Abra um produto, acesse a seção Entitlements e selecione os entitlements a serem entregues quando o produto for comprado. Um produto pode entregar vários entitlements ao mesmo tempo. Por exemplo, um plano Pro pode incluir uma chave de licença, acesso ao GitHub e uma função no Discord.
Painel de seleção de entitlements do produto mostrando caixas de seleção para cada entitlement disponível

Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.


Experiência do Cliente

E-mail e Customer Portal

Após uma compra, o cliente recebe um e-mail de entrega com a chave de licença, links para download, links de convite OAuth ou o convite da plataforma aplicável aos entitlements do produto. Os mesmos detalhes continuam disponíveis no Customer Portal, no histórico de pedidos, enquanto o grant estiver ativo.

Entrega baseada em OAuth

O acesso de assinantes ao Discord, GitHub e Notion exige que o cliente autorize o Dodo Payments a conceder esse acesso. Esses grants permanecem como Pending até que o cliente conclua o fluxo OAuth pelo link no e-mail ou no Customer Portal. Depois que o cliente autoriza, o grant passa para Delivered e o Dodo Payments provisiona o acesso à plataforma.

Revogação

Quando um grant é revogado, o Dodo Payments remove o acesso na plataforma: remove a função do Discord, remove o colaborador do GitHub ou desativa a chave de licença. O cliente vê a alteração no Customer Portal.
Para Digital Files, a revogação impede novos URLs de download pré-assinados, mas não invalida cópias que o cliente já tenha baixado. Planeje o controle de acesso ao seu conteúdo levando isso em consideração.

Gerenciar Grants

Abra qualquer entitlement no dashboard para ver seus grants. O painel de detalhes mostra o total concedido, um filtro de status e uma linha por grant com o cliente, a data de acesso, o status e uma ação Revoke. Para gerenciar grants programaticamente, liste-os com o filtro status e revogue um único grant pelo ID:

Gerenciamento pela API

Create Entitlement

Crie um entitlement de qualquer tipo de integração.

List Entitlements

Liste entitlements filtrados por tipo de integração.

Get Entitlement

Recupere um entitlement e sua configuração resolvida.

Update Entitlement

Atualize o nome, a descrição ou a configuração da integração.

Delete Entitlement

Exclua logicamente um entitlement. Os grants existentes não são revogados, mas o Dodo Payments deixa de gerenciá-los.

Upload File

Faça upload de um arquivo de até 500 MiB para um entitlement de Digital Files.

List Grants

Liste os grants de um entitlement, filtrados por status e cliente.

Revoke Grant

Revogue um único grant manualmente.

Webhooks

O Dodo Payments envia quatro eventos de webhook para o ciclo de vida do grant. Inscreva-se neles para manter seu aplicativo sincronizado com aquilo a que cada cliente pode ter acesso.

Entitlement Grant Webhook Payloads

Veja o schema completo do payload, exemplos de eventos e a referência de revocation_reason.

Boas práticas

  • Use um entitlement por canal de entrega. Não compartilhe um entitlement do Discord entre produtos com intenções de função diferentes. Crie um entitlement por função para que a revogação permaneça limpa.
  • Faça testes primeiro no modo de teste. Crie o entitlement, associe-o a um produto de teste, execute um checkout e observe o grant passar de Pending para Delivered. Depois, cancele a assinatura de teste e confirme que o grant foi revogado.
  • Escute entitlement_grant.delivered, não payment.succeeded. Um pagamento pode ser bem-sucedido antes que o fulfillment seja concluído, especialmente em fluxos OAuth. Aguarde o grant chegar a Delivered antes de desbloquear funcionalidades dependentes em seus próprios sistemas. Um grant entregue na criação, como uma chave de licença preenchida automaticamente ou uma feature flag, chega como entitlement_grant.created com status: "Delivered".
  • Trate entitlement_grant.failed como acionável. Um grant com falha significa que um cliente pagou, mas não obteve acesso. Apresente esses grants à sua equipe de suporte ou acione uma nova emissão.
  • Mapeie revocation_reason para seus fluxos de retenção. Uma revogação subscription_on_hold pode ser recuperada, pois o cliente pode atualizar o cartão. Uma revogação manual é intencional. Trate-as de forma diferente nas mensagens aos clientes.
  • Não revogue o acesso em subscription.past_due. Esse evento inicia um período de carência, e o cliente mantém o acesso até o fim da janela. Aguarde subscription.on_hold ou subscription.cancelled.
Última modificação em 26 de setembro de 2026