Skip to main content
As chaves de licença são o tipo de direito de Chave de Licença. Crie um direito de Chave de Licença uma vez com o limite de ativação, expiração e instruções desejadas, anexe a qualquer produto, e o Dodo Payments gera e entrega uma chave por compra ou assento de assinatura, automaticamente.

O que são Chaves de Licença?

Chaves de licença são tokens únicos que autorizam o acesso ao seu produto. Elas são ideais para:
  • Licenciamento de software: Aplicativos de desktop, plugins e CLIs
  • Controles por usuário: Limitar ativações por usuário ou dispositivo
  • Bens digitais: Restringir downloads, atualizações ou recursos premium
Dentro do Dodo Payments, as chaves de licença são gerenciadas através do sistema de Entitlements, o que significa que o ciclo de vida de cada chave (criação, expiração, revogação, reatribuição) é conduzido pelos mesmos eventos de pagamento e assinatura que seus outros produtos.

Criar um Direito de Chave de Licença

1

Open Entitlements

Vá para Entitlements no seu painel do Dodo Payments e clique em + para criar um novo direito.
2

Choose License Key

Selecione License Key como a integração. Configure como cada chave emitida deve se comportar:
  • Limite de Ativações: Máximo de ativações simultâneas por chave (por exemplo, 1 para usuário único, 5 para licenças de equipe, deixar em branco para ilimitado).
  • Duração: Quanto tempo a chave permanece válida após a emissão (por exemplo, 30 dias, 1 ano). Para chaves emitidas por assinatura, deixe em branco; as chaves permanecem válidas enquanto a assinatura estiver ativa.
  • Instruções de Ativação: Instruções orientadas ao cliente enviadas por e-mail com a chave. Exemplos: Paste the key in Settings → License ou Run: mycli activate <key>.
Novo formulário de direitos de Chave de Licença com nome, modo de cumprimento, duração da licença, limite de ativações e mensagem de ativação
3

Save the entitlement

Salvar. O direito agora está disponível para ser anexado a qualquer produto.

Anexar a Produtos

Abra um produto, expanda Configurações Avançadas → Direitos & Créditos, e selecione seu direito de Chave de Licença. Um único produto pode entregar uma chave de licença junto com outros direitos (acesso ao Discord, downloads de arquivos, acesso ao repositório do GitHub, etc.) na mesma compra.
Painel de direitos do produto com Chave de Licença selecionada

Selecting the License Key entitlement in the product entitlements panel.


Como as Chaves são Emitidas

A emissão de chaves segue o ciclo de concessão padrão:

Comportamento de Quantidade

  • Produtos por assinatura emitem uma chave por assento (subscriptions.quantity).
  • Produtos únicos emitem uma chave por item de linha do carrinho (product_cart.quantity).
  • Concessões manuais de API emitem exatamente uma chave.

Modo de cumprimento

Cada direito de Chave de Licença tem um fulfillment_mode que controla quem fornece a chave:
  • auto (padrão): Dodo Payments gera e envia a chave automaticamente por e-mail após o pagamento ou a assinatura. Esse é o comportamento descrito acima e se aplica quando fulfillment_mode não é especificado.
  • manual: a compra cria uma concessão Pending sem chave, e você fornece cada valor de chave manualmente. Consulte Atendimento manual abaixo.

Cumprimento Manual

Por padrão, Dodo Payments gera e envia uma chave de licença por e-mail assim que o cliente efetua o pagamento. Com o atendimento manual, você fornece a chave: a compra cria uma concessão Pending sem chave, notifica você e aguarda o envio do valor da chave. Use essa opção quando as chaves vierem do seu próprio sistema, de um fornecedor terceirizado ou de um conjunto limitado de códigos pré-impressos.
Procurando uma construção passo a passo? Veja o Guia de Integração de Cumprimento Manual de Chave de Licença para um passo a passo completo desde a criação do produto até a entrega da chave.

Quando usar

A execução automática é o padrão adequado para a maioria das licenças de software. Escolha o cumprimento manual quando o Dodo Payments não puder gerar a chave por conta própria:
  • Traga suas próprias chaves: A chave é gerada por seu aplicativo, um produto de desktop ou seu próprio servidor de licenças.
  • Fornecedores terceiros: Você revende chaves emitidas por um fornecedor upstream (uma chave de jogo, uma credencial de API, uma plataforma parceira).
  • Inventário finito: Você distribui códigos de um pool pré-alocado e deseja atribuí-los um a um.
  • Revisão humana: Você quer verificar uma compra antes de liberar o acesso.

Habilitar cumprimento manual

Defina fulfillment_mode: "manual" na configuração de integração do direito da Chave de Licença:
fulfillment_mode é compatível com versões anteriores. Direitos criados antes de essa configuração existir não têm fulfillment_mode e continuam a se comportar como auto. A mudança para manual só afeta concessões criadas após a alteração; chaves já entregues não são tocadas.

Encontrar concessões aguardando cumprimento

Quando um cliente compra um produto no modo manual, a concessão é criada com o status Pending e sem chave, e um webhook entitlement_grant.created é acionado com integration_type: "license_key" e status: "Pending". Você pode reagir a esse webhook ou consultar o endpoint Listar concessões do cliente usando os filtros integration_type e status:

Entregar a chave

Envie a chave usando o endpoint Cumprir concessão de chave de licença. A concessão passa para Delivered, e a chave é enviada automaticamente ao cliente — no mesmo e-mail que ele receberia no atendimento automático.
cURL
activations_limit e expires_at são opcionais e voltam à configuração do direito quando omitidos. Cada concessão pode ser cumprida uma vez; tentar cumprir novamente uma concessão já cumprida retorna 409 em vez de emitir uma segunda chave.
Você não precisa enviar a chave por e-mail — a entrega acontece automaticamente quando a concessão é cumprida. Isso difere de importar chaves via POST /license_keys, que intencionalmente não notifica o cliente.

Ativação, Validação, Desativação

Os endpoints de ativação/validação/desativação da API são públicos e não requerem chave de API. Use-os diretamente a partir de software de desktop, CLIs ou clientes baseados em navegador para verificar chaves em tempo de execução.
Endpoints Públicos: Os endpoints de ativação, desativação e validação de licença são públicos e não exigem chave de API. Chame-os diretamente de suas aplicações clientes sem expor suas credenciais de API.

Ativar uma licença

Validar uma licença

Desativar uma instância de ativação


Gerenciar Chaves

Abra o direito de Chave de Licença no seu dashboard para ver cada concessão (uma linha por chave de cliente) com data de entrega, contagem de ativações e uma ação de revogação. Cada detalhe da concessão revela a chave de licença subjacente, validade, ativações usadas e o limite de ativações. Você também pode listar concessões programaticamente:

Importar Chaves de Licença Existentes via API

Já tem chaves de licença em outro sistema? Use a API Create License Key para importá-las para o Dodo Payments. Isso permite migrar chaves existentes sem interromper seus clientes — eles continuam a ativar, validar e desativar usando as mesmas strings de chaves sem reemissão.
Chaves de licença criadas ou atualizadas através da API não disparam notificações de e-mail para os clientes. Se precisar notificar os clientes sobre uma chave importada, cuide disso separadamente em sua aplicação.

Como as chaves diferem por fonte

Use the source field on license-key records to distinguish migrated inventory and manually fulfilled keys from organically issued keys when reconciling or auditing. Read it from the license_key object on grants returned by List Grants; the legacy GET /license_keys endpoint is deprecated.
Migrando do Polar.sh ou Lemon Squeezy? O dodo-migrate CLI automatiza importações em massa de produtos, clientes, descontos e chaves de licença em um único comando e mapeia IDs externos para IDs do Dodo automaticamente.

Chaves de Licença na URL de Retorno

Quando um cliente conclui uma compra de um produto com direito a Chave de Licença, a chave gerada é automaticamente anexada à sua return_url como um parâmetro de consulta. Isso permite exibir a chave imediatamente na sua página de sucesso sem fazer uma chamada de API extra.
Se a compra gerar várias chaves (quantidade > 1), elas serão separadas por vírgulas:
Para assinaturas, subscription_id é usado em vez de payment_id:
Analise o parâmetro license_key na sua página de retorno para mostrar a chave imediatamente, melhorando a experiência pós-compra.

Gerenciamento de API

Ativação, desativação e validação são públicas; não é necessária chave de API.

Activate License

Crie ou registre uma instância de ativação para uma chave de licença.

Deactivate License

Revogue uma ativação anterior para liberar capacidade.

Validate License

Verifique a autenticidade, status e restrições antes de conceder acesso.
Crie, liste, recupere e atualize registros individuais de chaves de licença. Use-os para importar chaves existentes ou buscar detalhes de uso.
GET /license_keys, GET /license_keys/{id} and PATCH /license_keys/{id} are deprecated. Use the entitlement grant endpoints (List Grants, List Customer Grants) for reads. POST /license_keys remains supported for importing existing keys.

Create License Key

Create a new license key or import an existing one.

List License Keys

Browse all keys with status and usage details.

Get License Key

Retrieve a specific key and its metadata.

Update License Key

Modify expiry, activation limits, or enable/disable a key.
Manage the License Key entitlement itself: its activation limit, duration, and instructions.

Create Entitlement

Create a License Key entitlement.

Update Entitlement

Update the entitlement’s configuration.

List Grants

List the keys issued for an entitlement.

Revoke Grant

Manually revoke a customer’s key.

Webhooks

License-key delivery and revocation fire the four entitlement_grant.* webhook events. The grant payload includes a populated license_key object with the key, expiry, activations used, and limit. The legacy license_key.* events (license_key.created) continue to fire for the underlying license-key record lifecycle; see the License Key webhook payload page.
For new integrations, listen to entitlement_grant.delivered rather than license_key.created. The entitlement event tells you delivery is complete across all integrations on the product, not just the license key.

Legacy License Keys

Products created with the older license_key_enabled flag have been automatically migrated to a License Key entitlement. The migration is transparent: existing customers’ keys continue to work unchanged, the public /licenses/activate, /licenses/validate, /licenses/deactivate endpoints continue to function, and the /license_keys/* API endpoints continue to read and write to the same key store.The standalone License Keys dashboard section remains available as a flat list of every key issued, useful for audit and search. New configuration (changing activation limits, durations, or instructions) should be done by editing the migrated License Key entitlement under Entitlements.

Best Practices

  • Keep activation limits clear: Choose sensible defaults (1 for single-user apps, 3–5 for team licenses) and document them.
  • Provide precise activation instructions: Customers paste these from their email, so exact paths and commands save support tickets.
  • Validate keys server-side: For network-connected products, validate via /licenses/validate rather than caching activation locally.
  • Use webhooks for revocation: Listen to entitlement_grant.revoked to disable in-app features immediately when a customer cancels or refunds.
  • Test with subscriptions and one-times: License key behavior differs subtly between the two, so test both before going live.
Última modificação em 21 de agosto de 2026